Пример #1
0
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)
Пример #3
0
def addedNySite(ob, event):
    """ A NySite was added """
    handle = ob.meta_type + '/' + ob.getId()
    nc = BeforeTraverse.NameCaller(ob.getId())
    BeforeTraverse.registerBeforeTraverse(ob, nc, handle)