John Barratt wrote:
Chris Withers wrote:
John Barratt wrote:
docs = container.portal_catalog(meta_type='Document', ...) for doc in docs: obj = doc.aq_parent.unrestrictedTraverse(doc.getPath()) was_ghost = obj._p_changed is None value = obj.attr if was_ghost:obj._p_deactivate()
Bear in mind though, that you can only do this in an external method...
..or product code ;-)
Why can you only do this in an external method? This idea (deactivating objects) is used quite a extensively in many parts of core zope such as OFS.ObjectManager as I mentioned in another post, and we use it in our product code quite a bit as well.
Nguyen was asking about a python script, you can't do these things there as the necessary methods don't have security declarations, and the methods start with '_', which I think the Zope Security Policy denies access to... Chris