Is there a decent strategy for managing forward revisions of embedded entities that are embedded in a workflow-controlled content type?

Scenario:

1. News article is published and has an embedded "Image" media entity. The media entity has just the image and a caption field.
2. An editor finds an error in the caption of the embedded image and creates a forward revision of the news article to fix it.
3. Editor edits the embedded entity to modify the caption and saves it. He/she moves the article to "needs review" moderation state.

The problem:

The update to the caption is updated immediately on the article, bypassing the moderation process, because the embedded entity is not actually "part of" the news article, it's just referenced by it.

Are there any solutions to this problem?

There's a similar problem with using Panelizer to manage landing pages composed of blocks, both custom blocks and blocks that reference other things. While you could apply workbench moderation to the landing page content type, you can really only make the arrangement and inclusion/exclusion of blocks part of the moderation process. The actual block content is completely detached from the landing page it's associated with.

I believe both of these problems are difficult to solve because you can't assume that the embedded entities or placed blocks are used only in that one news article or content type. They could be used elsewhere.

Comments

bkosborne created an issue. See original summary.

phenaproxima’s picture

My feeling is that any entity, embedded and not, should by default display the most recent revision that the user is permitted to see. That might be jarring for those with complex content models...but it's consistent behavior, and therefore configurable in a consistent fashion.

balsama’s picture

There isn't a silver bullet for these types of workflow problems, but we have been stewing on them for some time and came up with some potential solutions. What you're talking about sounds mostly like Master Entity as defined here Original comment in #2579433: [workbench_moderation] Workbench Moderation: https://www.drupal.org/node/2579433#comment-10625404

  • Workflow Lite
  • Master Entity
  • Election Night Scenario

...
Master Entity
This Tier makes use of Multiversion to create a new Workspace each time an entity is created. The workspace is created behind the scenes and not exposed to the user. Once created, Workbench Moderation will moderate the workspace as a whole (again, transparently to the user). The advantage being that entities associated with the "Master Entity" ("Master Entity" being the entity that initiated the creation of the workspace) are automatically put in the same moderation state as the Master Entity. So, for example, terms that are created when creating a blog post are not published on the live site until the Workspace as a whole is published.
...

I don't think any real progress towards Master Entity has been made since then, but contrib has come a long way towards the "Election Night Scenario" and we have a prototype of that in Lightning Preview, but that's still experimental.

Ultimately, I think WPS (aka Lightning Preview) will address this specific problem, but we're not quite there yet.

phenaproxima’s picture

Status: Active » Closed (outdated)

Lightning 2.x is no longer maintained, so I'm closing this issue.