Setting the modification date

The documentation

https://docs.plone.org/develop/plone/content/timestamps.html#setting-modification-date-explicitly

is in general right but in reality it is wrong.

You usually need to call reindexObject() for object updates. And reindexObject() implicitly triggers an update of the modification_date property with the current timestamp. So it seems to be impossible to explicitly set the modification date.

-aj

  /home/vmadmin/share-migration/eggs/zope.component-3.12.1-py2.7.egg/zope/component/_api.py(136)subscribers()
-> return sitemanager.subscribers(objects, interface)
  /home/vmadmin/share-migration/eggs/zope.interface-4.2.0-py2.7-linux-x86_64.egg/zope/interface/registry.py(328)subscribers()
-> return self.adapters.subscribers(objects, provided)
  /home/vmadmin/share-migration/eggs/zope.interface-4.2.0-py2.7-linux-x86_64.egg/zope/interface/adapter.py(596)subscribers()
-> subscription(*objects)
  /home/vmadmin/share-migration/eggs/zope.component-3.12.1-py2.7.egg/zope/component/event.py(32)objectEventNotify()
-> zope.component.subscribers((event.object, event), None)
  /home/vmadmin/share-migration/eggs/zope.component-3.12.1-py2.7.egg/zope/component/_api.py(136)subscribers()
-> return sitemanager.subscribers(objects, interface)
  /home/vmadmin/share-migration/eggs/zope.interface-4.2.0-py2.7-linux-x86_64.egg/zope/interface/registry.py(328)subscribers()
-> return self.adapters.subscribers(objects, provided)
  /home/vmadmin/share-migration/eggs/zope.interface-4.2.0-py2.7-linux-x86_64.egg/zope/interface/adapter.py(596)subscribers()
-> subscription(*objects)
  /home/vmadmin/share-migration/eggs/plone.dexterity-2.5.1-py2.7.egg/plone/dexterity/content.py(784)reindexOnModify()
-> content.reindexObject()
  /home/vmadmin/share-migration/eggs/Products.CMFCore-2.2.11-py2.7.egg/Products/CMFCore/CMFCatalogAware.py(85)reindexObject()
-> self.notifyModified()
  /home/vmadmin/share-migration/eggs/plone.dexterity-2.5.1-py2.7.egg/plone/dexterity/content.py(381)notifyModified()
-> self.setModificationDate()
> /home/vmadmin/share-migration/eggs/plone.dexterity-2.5.1-py2.7.egg/plone/dexterity/content.py(405)setModificationDate()
-> self.modification_date = DateTime()
1 Like

Just reindex the modification date, this will not reindex the object IIRC:

reindexObject(idxs=['modified'])
2 Likes