예제 #1
0
def container_moved_update_used_space(content, event):
    """Event called on folder, when they are moved, we want to update
    the quota on parents folders.
    """
    if content != event.object or IRoot.providedBy(content):
        # Root is being destroyed, we don't care about quota anymore.
        return

    if event.newParent is event.oldParent:
        # For rename event, we don't need to do something.
        return

    service = queryUtility(IExtensionService)
    if service is None:
        return
    verify = service.get_quota_subsystem_status()
    if verify is None:
        # Quota accounting is disabled.
        return

    size = content.used_space
    if not size or size < 0:
        return
    if event.oldParent and IQuotaContainer.providedBy(event.oldParent):
        event.oldParent.update_used_space(-size, verify)
    if event.newParent and IQuotaContainer.providedBy(event.newParent):
        event.newParent.update_used_space(size, verify)
예제 #2
0
def container_moved_update_used_space(content, event):
    """Event called on folder, when they are moved, we want to update
    the quota on parents folders.
    """
    if content != event.object or IRoot.providedBy(content):
        # Root is being destroyed, we don't care about quota anymore.
        return

    if event.newParent is event.oldParent:
        # For rename event, we don't need to do something.
        return

    service = queryUtility(IExtensionService)
    if service is None:
        return
    verify = service.get_quota_subsystem_status()
    if verify is None:
        # Quota accounting is disabled.
        return

    size = content.used_space
    if not size or size < 0:
        return
    if event.oldParent and IQuotaContainer.providedBy(event.oldParent):
        event.oldParent.update_used_space(-size, verify)
    if event.newParent and IQuotaContainer.providedBy(event.newParent):
        event.newParent.update_used_space(size, verify)
예제 #3
0
def content_moved_update_quota(content, event):
    """Event called on a quotable when they are moved to update quota
    on parents folders.
    """
    if content != event.object or event.newParent is event.oldParent:
        return

    service = queryUtility(IExtensionService)
    if service is None:
        return

    verify = service.get_quota_subsystem_status()
    if verify is None:
        # Quota accouting is disabled
        return

    size = content.get_quota_usage()
    if not size or size < 0:
        return

    if event.oldParent and IQuotaContainer.providedBy(event.oldParent):
        event.oldParent.update_used_space(-size, verify)
    if event.newParent and IQuotaContainer.providedBy(event.newParent):
        event.newParent.update_used_space(size, verify)
예제 #4
0
def content_moved_update_quota(content, event):
    """Event called on a quotable when they are moved to update quota
    on parents folders.
    """
    if content != event.object or event.newParent is event.oldParent:
        return

    service = queryUtility(IExtensionService)
    if service is None:
        return

    verify = service.get_quota_subsystem_status()
    if verify is None:
        # Quota accouting is disabled
        return

    size = content.get_quota_usage()
    if not size or size < 0:
        return

    if event.oldParent and IQuotaContainer.providedBy(event.oldParent):
        event.oldParent.update_used_space(-size, verify)
    if event.newParent and IQuotaContainer.providedBy(event.newParent):
        event.newParent.update_used_space(size, verify)
예제 #5
0
    def update_quota(self):
        parent = aq_parent(self)
        if IQuotaContainer.providedBy(parent):
            service = queryUtility(IExtensionService)
            if service is None:
                return
            verify = service.get_quota_subsystem_status()
            if verify is None:
                return

            # Every content must be inside a container (unless they
            # are inside an image ...).
            new_size = self.get_quota_usage()
            if new_size < 0:
                # Broken quota usage
                return
            delta = new_size - self._old_size
            if delta:
                parent.update_used_space(delta, verify)
                self._old_size = new_size
예제 #6
0
    def update_quota(self):
        parent = aq_parent(self)
        if IQuotaContainer.providedBy(parent):
            service = queryUtility(IExtensionService)
            if service is None:
                return
            verify = service.get_quota_subsystem_status()
            if verify is None:
                return

            # Every content must be inside a container (unless they
            # are inside an image ...).
            new_size = self.get_quota_usage()
            if new_size < 0:
                # Broken quota usage
                return
            delta = new_size - self._old_size
            if delta:
                parent.update_used_space(delta, verify)
                self._old_size = new_size