Exemple #1
0
    def manage_beforeDelete(self, item, container):
        if item is self:
            try:
                del container.__allow_groups__
            except:
                pass

            handle = self.meta_type + '/' + self.getId()
            BeforeTraverse.unregisterBeforeTraverse(container, handle)
Exemple #2
0
 def _cleanupBeforeTraverseHooks(self):
   # unregister all before traversal hooks that do not belong to us.
   my_handle = self.meta_type + '/' + self.getId()
   handle_to_unregister_list = []
   for (priority, handle), hook in self.__before_traverse__.items():
     if isinstance(hook, self._getTraversalHookClass()) and handle != my_handle:
       handle_to_unregister_list.append(handle)
   for handle in handle_to_unregister_list:
     BeforeTraverse.unregisterBeforeTraverse(self, handle)
Exemple #3
0
def movedNySite(ob, event):
    """ A NySite was moved """
    if IObjectAddedEvent.providedBy(event):

        #Hadled by addedNySite
        return
    elif IObjectRemovedEvent.providedBy(event):

        #Hadled by removedNySite
        return
    else:
        old_handle = ob.meta_type + '/' + event.oldName
        BeforeTraverse.unregisterBeforeTraverse(ob, old_handle)
        handle = ob.meta_type + '/' + event.newName
        nc = BeforeTraverse.NameCaller(event.newName)
        BeforeTraverse.registerBeforeTraverse(ob, nc, handle)
Exemple #4
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)
Exemple #5
0
 def manage_beforeDelete(self, item, container):
     if item is self:
         BeforeTraverse.unregisterBeforeTraverse(container, self.meta_type)
Exemple #6
0
 def manage_beforeDelete(self, item, container):
     if item is self:
         handle = self.meta_type + '/' + self.getId()
         BeforeTraverse.unregisterBeforeTraverse(container, handle)
Exemple #7
0
 def manage_beforeDelete(self, item, container):
   if item is self and self.getPortalType() == 'Web Section':
     handle = self.meta_type + '/' + self.getId()
     BeforeTraverse.unregisterBeforeTraverse(item, handle)
   super(WebSection, self).manage_beforeDelete(item, container)
Exemple #8
0
 def manage_beforeDelete(self, item, container):
     """ This method is called, when the object is deleted. """
     if item is self:
         handle = self.meta_type + '/' + self.getId()
         BeforeTraverse.unregisterBeforeTraverse(container, handle)
     Folder.inheritedAttribute('manage_beforeDelete')(self, item, container)
Exemple #9
0
def removedNySite(ob, event):
    """ A NySite was removed """
    handle = ob.meta_type + '/' + ob.getId()
    BeforeTraverse.unregisterBeforeTraverse(ob, handle)
Exemple #10
0
 def manage_beforeDelete(self, item, container):
     if item is self:
         BeforeTraverse.unregisterBeforeTraverse(container, self.meta_type)
Exemple #11
0
 def manage_beforeDelete(self, item, container):
     if item is self:
         handle = self.meta_type + '/' + self.getId()
         BeforeTraverse.unregisterBeforeTraverse(item, handle)
     super(WebSection, self).manage_beforeDelete(item, container)
Exemple #12
0
 def manage_beforeDelete(self, item, container):
     if item is self:
         handle = self.meta_type + '/' + self.getId()
         BeforeTraverse.unregisterBeforeTraverse(container, handle)