- 🇺🇸United States emanaton
Of possible interest, we solved this issue on our suite of sites by applying the patch found at: https://www.drupal.org/project/drupal/issues/2845144#comment-14574850 🐛 User can't reference unpublished content even when they have access to it Needs work
Regarding #19 🐛 Content moderation workflow changes against one language affect translations too Needs work
We are also experiencing an issue at random, I believe it is what you are referring to. Moving translated content through content moderation workflow sets the current published default language material to not published seemingly at random. This is obvious on our site as there is a contextual filter set to create anchor links to paragraphs on each node. Occasionally a node will have its default status set to unpublished because multilingual content is being moved through workflow. Still trying to determine exactly what set of parameters triggers this.
- Status changed to Active
10 months ago 7:37pm 7 January 2024 - 🇺🇸United States dww
There's no code started here, so this is more accurately "active" not "needs work". All issues should target version 11.x for now, and will be backported to the right branch(es) as needed by the core committers.
Sounds like this is still an issue, although based on #21 this might be duplicate with 🐛 User can't reference unpublished content even when they have access to it Needs work ? Adding to the pile of related issues.
Regardless, tagging to be smashed...
- 🇦🇺Australia pameeela
We are a bit puzzled by the suggestion that this is a duplicate of 🐛 User can't reference unpublished content even when they have access to it Needs work as it does not seem related at all. Just in case, we tried the patch from there and it did not resolve our issue.
Yes I do think this is a critical issue, still active. Last and current project still have same exact problem.
I wanted to post again to try to be more succint and to describe it from the content manager's perspective.
Assume you have two languages, EN and ES, you have workflows, moderation states, translatable entities, etc:
1. Save a draft of a node in EN.
2. Save a draft of the same node in ES.
3. Publish the ES draft.
4. Content manager no longer has access to edit the EN draft in step 1, because it is no longer the "latest revision". They can still see this draft in the revision history but it's not editable. They essentially lose all their work.Hope this helps.
- 🇦🇺Australia pameeela
@mdranove I see, thanks, that does sound like it relates to 🐛 User can't reference unpublished content even when they have access to it Needs work but I think that's not the same as the issue here.
Our issue is simply with the publish status of translations being updated. If you have a node with two translations, updating the publish status of one translation has unexpected effects on the other.
There are a few ways that this plays out, depending on whether publish status is translatable, but it doesn't relate at all to editors being able to access the content or not.
I am also facing this issue with D 10.2.4. Can anyone help us to fix this problem.
Steps to reproduce the issue:
1. Multi-lingual site with Custom Languages , enabled Workflows module to have draft, published & Unpublished states.
2. Create English content as published.
3. Translated English content to Portuguese and Published.
4. Trasnlated English content to French and Published.
5. Made some changes to Portuguese content saved as Draft.
6. Made some changes to French content saved as Draft. Portuguese Draft content changes are not showing now, showing published content.- 🇺🇸United States charginghawk
If anybody else is banging their head against this issue, here was my quick fix, assuming that you only want unidirectional updates from English to other languages:
/** * Implements hook_ENTITY_presave(). * * @param \Drupal\Core\Entity\EntityInterface $entity * * @throws \Exception */ function my_module_node_presave(EntityInterface $entity) { // Don't let non-english content disrupt any other languages. $active_langcode = $entity->language()->getId(); if ($entity instanceof NodeInterface && $entity->isTranslatable() && !$entity->isNew() && ($active_langcode !== 'en') ) { $translations = $entity->getTranslationLanguages(); foreach ($translations as $translation_langcode => $translation_language) { if ($translation_langcode !== $active_langcode) { $translation = $entity->getTranslation($translation_language->getId()); $translation->setRevisionTranslationAffected(FALSE); } } } }