def dispatchObjectClonedEvent(ob, event): """Multi-subscriber for IItem + IObjectClonedEvent. """ # First, do the manage_afterClone dance callManageAfterClone(ob, event.object) # Next, dispatch to sublocations if OFS.interfaces.IObjectManager.providedBy(ob): dispatchToSublocations(ob, event)
def dispatchObjectWillBeMovedEvent(ob, event): """Multi-subscriber for IItem + IObjectWillBeMovedEvent. """ # First, dispatch to sublocations if OFS.interfaces.IObjectManager.providedBy(ob): dispatchToSublocations(ob, event) # Next, do the manage_beforeDelete dance callManageBeforeDelete(ob, event.object, event.oldParent)
def objectMoved(ev): if ev.newParent is None or ev.oldParent is None: # it's an IObjectRemovedEvent or IObjectAddedEvent return if ev.newParent is ev.oldParent: # it's a renaming operation dispatchToSublocations(ev.object, ev) obj = filterTemporaryItems(ev.object) indexer = getQueue() if obj is not None and indexer is not None: indexer.index(obj)
def objectModified(ev): obj = filterTemporaryItems(ev.object) if obj is None: return indexer = getQueue() if getattr(ev, 'descriptions', None): # not used by archetypes/plone atm # build the list of to be updated attributes attrs = [] for desc in ev.descriptions: if isinstance(desc, Attributes): attrs.extend(desc.attributes) indexer.reindex(obj, attrs) if 'allow' in attrs: # dispatch to sublocations on security changes dispatchToSublocations(ev.object, ev) else: # with no descriptions (of changed attributes) just reindex all indexer.reindex(obj)
def objectModified(ev): obj = filterTemporaryItems(ev.object) indexer = getQueue() if obj is None or indexer is None: return if getattr(ev, 'descriptions', None): # not used by archetypes/plone atm # build the list of to be updated attributes attrs = [] for desc in ev.descriptions: if isinstance(desc, Attributes): attrs.extend(desc.attributes) indexer.reindex(obj, attrs) if 'allow' in attrs: # dispatch to sublocations on security changes dispatchToSublocations(ev.object, ev) else: # with no descriptions (of changed attributes) just reindex all indexer.reindex(obj)
def dispatchObjectCopiedEvent(ob, event): """Multi-subscriber for IItem + IObjectCopiedEvent. """ # Dispatch to sublocations if OFS.interfaces.IObjectManager.providedBy(ob): dispatchToSublocations(ob, event)