Make Relations First Class Citizens in Plone 6 And Volto

Plone relations are simply awesome (if you don't know what relations are, please see @pbauer 'Why Relations are awesome" talk). There isn't anything as powerful as relations any other open source frameworks out there. Yet, they are some obstacles in using relations in Plone 6 Volto.

  1. RelationList Widgets are not yet available.
    If you have custom content types that use relations, you won't be able to populate them using volto forms as there are no widgets available to handle listing relations and selecting them.

  2. Accessing Relations in Volto
    Unlike classic templates you can simply select and display relations in your views. I know there is way to create custom web service but we'll need something that is available as an external addon perhaps.

Am posting this topic to drive some conversation and hopeful find someone who bit more skilled than me to remedy these issues so that relations could simple work out of the box in future releases of Plone.


Looks related to issue

and also to this one

I can not find an issue related to editing. If this is true it would be great if you would add one.

I thought I had already filled the issues. Will double check and file new ones against Volto repo.

Sorry, I did not look at CMFPlone, which would be the next obvious place.

These are open tasks:

  • Relations-controlpanel
  • Support for StaticCatalogVocabulary-based Schema-Fields in Restapi and Volto
  • Relations-Endpoint (similar but not the same as the relations-module in plone.api). That needs to be specified first.

Maybe we'll find time during the Buschenschank-Sprint next week to work on that.

1 Like

Thank you @jensens @pbauer. It would be wonderful if you could get this fixed in Buschenschank-Sprint.

I think Relations + Custom content types makes Plone an attractive platform for modern data science projects that need to build new data model by aggregating data.

I have also filed a volto feature request to create necessary missing Relation List and Relation Choice (Not sure if it really work) widgets.

I started to draft architecture for the relation-endpoint: Add relations endpoint · Issue #1432 · plone/plone.restapi · GitHub

1 Like

@pbauer Does the new specification allow requesting relations of multiple pages by passing a list of objects/ids in a single call?

No, so far it only allows getting relations of one item (incoming or outgoing). There you can filter by relationship. Using a second endpoint (@relations-catalog) you can also get all relations of one type.

See Proposal for the relations-endpoint by pbauer · Pull Request #1431 · plone/plone.restapi · GitHub
I suggest we discuss that further in the pull-request instead of here.