Why is effectiveDate languageIndependent in Archetypes

We're using an ATContentTypes based content type and 'plone.app.multilingual[archetypes,dexterity] for managing translations.

when the client creates a translation for an already published content item, the effective date is set to the date given in the translated object.

this happens because effectiveDate is declared as a languageIndependent field

and plone.app.multilingual applies changes made to a languageIndependent field of a content item to all its translations.

the same problem has been outlined by @ichimdav in 2004 in a message to the plone-developers mailing list that has not been answered.

for my custom project i think i can work around this problem by adding a schemaextender that fiddles around with the effectiveDate and sets it to languageIndependent=False.

i'm still wondering why it was decided that effectiveDate should be language-independent field.

i'm also asking if this is something we should fix in Archetypes or if the frameworkteam feels like: better leave that as it is.

for dexterity it looks like the problem does not exist.

the field definition does not have any languageIndependent declarations

as this can be changes by adding the interface plone.multilingualbehavior.interfaces.ILanguageIndependentField in other modules i also tried it out in a project with dexterity types: it looks like the effective date is not changed when adding/editing translations.

Ha, I am an old plone user if I search for something regarding EffectiveDate and I find this message regarding my question from 2014.
I am starting to find more and more of these decisions regarding some plone feaures that are now close to impossible to find the reason for such as having an EffectiveDate set when we modify a content

1 Like

I am starting to find more and more of these decisions regarding some plone feaures that are now close to impossible to find the reason for such as having an EffectiveDate set when we modify a content

There is a subtle difference in what the script does. Only if no effective data has been set yet (so the item has never been published or sent in for review, so probay was in private workflow state, THEN an effective date is set.

This basically makes sure that when you publish an item, the EffectiveDate gets set on an item.

The script/code probably predates much more interesting workflows then the onces thought of and available in 2003....... (never mind plone.restapi)

Well I could have a draft content as the first state that is set by default and when I decide to modify it as soon as I've saved content_status_modify sees that there was no EffectiveDate set and decides to add it for me. My workflow probably has 5 - 6 stages before I can say it's ready for publishing, Plone shouldn't force set the EffectiveDate on me.

When you finally do publish the effective date will not be set to when you trigger the workflow transition to publish since that was already triggered either from modifying the content previously or triggering any transition as it happens in plone.app.content workflow.py.

You don't have to explain the problems and assumptions in a 2003 script to me. You asked for the 'thought' process' and I gave you some possible explanations, with the caveat that it was created in 2003.....

I'm not trying to-do that, I am trying to explain what happens to me now when I use Plone and my explanation was what is happening to me right now from several places such as:

  1. content_status_modify
  2. plone.app.content - browser/content/workflow.py
  3. plone.restapi - workflow.py
    At least Archetypes states that the EffectiveDate is the date when the object is published and that if nothing will be added by the user then the object will be published immediately, yet that happens
    from my point of view in much earlier situations rather then when we get to published state.
    Products.Archetypes/ExtensibleMetadata.py at f9f1dee1a6a8741c77f7250b86f863d2573e7f02 · plone/Products.Archetypes · GitHub

If we look at the description of the publishing date in Plone 5 no such information is given yet the same behavior happens which to me again is wrong

I would love to find out what was the reasoning for setting on any change or transition as again I don't even think that a lot of people are aware that this happens.
I worked with Plone from Plone 2 and I didn't realize that when you edit a content you get an effective date if none is set and I find this crazy for instance.

Am I right that this issue only appears with Archetypes?
If so i think we can live with it, since the days of Archetypes are over anyway. But sounds a bit strange behavior. But if it is not the case in Dexterity, I don't see a problem.

Same is true for Dexterity. Whatever workflow transition is triggered, the effective date is set when not available before. But it doesn’t happen on modify anymore as it did with Archetypes. But still annoying if you don’t expect it.

Plone Foundation Code of Conduct