Table of Properties from a Set of Dexterity Objects

I'm trying to tabulate (i.e., create a dynamically-generated table using) the properties from set of custom Dexterity objects. Is there a way to do that? Collections allow adding properties, but not properties from custom Dexterity objects. Is there some way to add (custom Dexterity) properties to the list of fields for the table in Collections?

There is a difference between all the fields (what you call properties) that are available on each content type and the fields that are available on the collection edit page to list them in the collection its table view.

The collection (and other) search results all use the portal_catalog, a tool in the root of every Plone site that creates and updates indexes on fields of all content objects in the Plone site. when you query the catalog however it does not return a list with the real objects, but lightweight representations: so called brains. This is dome because 'waking up' the real objects costs much more resources then generating the brains.

Here is the catch: the catalog stores a subset of the most used fields as metadata in the catalog. (Title, description, some dates, etc) And you can add more fields to the catalog metadata, but should do so sparingly. The default set of metadata fields are selected for what Plone should do out of the box as a CMS. The navigatioj, folder_contents and the global search are all generated through the catalog.

And the 'fields you can select to list on a collection result are those metadata fields.

If you want to extend the cms for fields, you have to

  • add them to the portal_metadata
  • update the catalog to have updated brains
  • add some registry settings that the collection edit page uses to list the available catalog metadata fields.

All three steps are done using Generic Setup in many add'ons that are available for Plone.

There is is no full user interface to do this manually, You can do a part through the ZMI, but adding to the collection setting is very tricky through the configuration registry control panel.

If you follow through the Mastering Plone training, around chapter 16 the techniques to extend Plone are introduced. The training only talks about adding an index though, you are after adding info to the search results.

https://docs.plone.org/develop/plone/searching_and_indexing/indexing.html

For 'unknown reasons', I think this is easier to do this if you use a behavior (at least it was for me). Maybe you can use some code from GitHub - espenmn/medialog.iconpicker: Font awsome iconpicker for Plone , if I remember right, the 'icon' propery appears in 'table properties'.

A behavior is a convenient 'bundle' to apply or reuse a group of fields and extra code / 'behavior' to multiple content types in a separate package.

But that has nothing specific to do with this question: the extra indexer & metadata could be added to the place where @ronc has defined its dexterity content type or in a policy/site package for the project. Sticking this in a behavior will only complicate theings and require more knowledge.

Still, if you created the custom contenttype in Plone 5.2 through the web on a stock setup, there is you cannot really add these configurations all through the web in the configuration registry.

Although I agree, I tried to make the same without a behavior, and I could not figure out why it did not work (frankly, I dont even understand why the behavior works, since there are nothing (related) in /profiles, I think: medialog.iconpicker/medialog/iconpicker/profiles/default/registry.xml at master · espenmn/medialog.iconpicker · GitHub
) .