Idea summary
What is the problem to solve?
I tried to build a workflow solution based on drupal which can create complex documents, revisionable, referencing each other. And I failed, because references are not really revisionable.
In a more complex enterprise environment we do need a lot of entity relationships. The bigger picture usually comprises different content types which reference each other. The bigger picture has to be managed individually e.g. when the master document gets published, or a sub content type gets changed one has to adjust the same setting on the referenced entites. Revisions can even confuse the picture because they are not managed together.
Who is this for?
(Evaluators, site visitors, content authors, site managers, (advanced) site builders, frontend developers, backend developers, core developers, site owners, other?)
Result: what will be the outcome?
Introduce the concept of composite Entities. Composite entities comprise entities, their relations and their revisions. I like the mentioned idea of composite entities very much. I think it should be a central concept of a revisionable workflow. It promises an entire new field for building complex applications using drupal.
How can we know the desired result is achieved?
(Usability test, a metric to track, feedback)
--- Original report ---
As a follow up to an improved workflow initiative I'd like to bring the idea of "Composite Entities" to everybody's attention:
Composite Entities comprise entities, their relations and their revisions .
In a more complex enterprise environment we do need a lot of entity relationships. The bigger picture usually comprises different content types which reference each other. The bigger picture has to be managed individually e.g. when the master document gets published, or a sub content type gets changed one has to adjust the same setting on the referenced entites. Revisions can even confuse the picture because they are not managed together.
There are some VERY useful modules but the references as they exist now lack an integrated approach for a workflow comprising referenced entities. They also require a lot of manual work instead of supporting the user by automating a lot of repeat work (like updating references manually):
1) Inline Entity Form helps A LOT! (https://www.drupal.org/project/inline_entity_form)
2) Relationships that reference each other. Automatically makes a lot of sence. (see https://www.drupal.org/project/cer )
3) Relationships that keep track of the referenced revisions! (see https://www.drupal.org/project/entity_reference_revisions )
4) Relationships that update their revision when one of the referenced entities gets a new revision - more of this idea found here:
https://www.drupal.org/node/2800893 Better define and support composite entities
and here https://www.drupal.org/node/2726013 New revisions of a child entity should create new revisions for its parent
I like the mentioned idea of composite entities very much. I think it should be a central concept of a revisionable workflow. It promises an entire new field for building complex applications using drupal.
I posted here, because I tried to build a workflow solution based on drupal which can create complex documents, revisionable, referencing each other. And I failed, because references are not really revisionable.
Comments
Comment #2
maxilein commentedComment #3
jmuzz commentedI like this idea too, and I believe there could be a place for this in core some day. I am not sure the current solutions are quite ready yet.
It has actually been getting talked about, for 7 years in fact. #607396: Killer feature: Fieldable Fields in core (I just moved it to this issue queue) The popular "solution" to the difficult problems these modules need to solve seems to be to start over with a new project, so as you can imagine progress has been slow.
The existing projects such as paragraphs, entity reference revisions, and field collection could certainly benefit from more collaboration.
Comment #4
maxilein commentedI'd like to add the DER module as well: I think it offers a very powerful approach in terms of usablity!
Comment #5
yoroy commentedThis sounds like a big one! :)
I added the idea proposal template and put in the bits from the original post that seemed to provide part of the answers we need to review this as product managers. Please edit and add as needed. Thanks!
Comment #6
maxilein commentedI added a description of the an essential functionality in the referenced issue.
I think that cer module would be a great starting point for composite entities: https://www.drupal.org/node/2822476
Comment #7
catchIf this is for publishing changes, then the workspaces module handles some or most of what's in the issue summary - e.g. being able to update multiple different related (or unrelated) content items all together and track those changes.
Workspaces does not use entity reference revisions, which for me are suitable only for auditing use-cases like Drupal commerce orders.
The ideas queue is deprecated now, so moving this to core, but I think this needs updating to indicate a bit more above about which of the two use-cases above it's trying to solve.