def handleCookieCrumblerEvent(ob, event): """ Event subscriber for (un)registering a CC as a before traverse hook. """ if not ICookieCrumbler.providedBy(ob): return if IObjectMovedEvent.providedBy(event): if event.newParent is not None: # register before traverse hook handle = ob.meta_type + '/' + ob.getId() nc = BeforeTraverse.NameCaller(ob.getId()) BeforeTraverse.registerBeforeTraverse(event.newParent, nc, handle) elif IObjectWillBeMovedEvent.providedBy(event): if event.oldParent is not None: # unregister before traverse hook handle = ob.meta_type + '/' + ob.getId() BeforeTraverse.unregisterBeforeTraverse(event.oldParent, handle)
def manage_afterAdd(self, item, container): if item is self: handle = self.meta_type + '/' + self.getId() container = container.this() nc = BeforeTraverse.NameCaller(self.getId()) BeforeTraverse.registerBeforeTraverse(container, nc, handle)
def addedNySite(ob, event): """ A NySite was added """ handle = ob.meta_type + '/' + ob.getId() nc = BeforeTraverse.NameCaller(ob.getId()) BeforeTraverse.registerBeforeTraverse(ob, nc, handle)