예제 #1
0
    def __call__(self):
        context = aq_inner(self.context)
        request = aq_inner(self.request)
        form = request.form
        status = IStatusMessage(self.request)

        operation = request.get('operation', None)

        if operation == 'move_up':
            assignable = IRuleAssignmentManager(context)
            rule_id = request.get('rule_id')
            keys = list(assignable.keys())
            idx = keys.index(rule_id)
            del keys[idx]
            keys.insert(idx - 1, rule_id)
            assignable.updateOrder(keys)
        elif operation == 'move_down':
            assignable = IRuleAssignmentManager(context)
            rule_id = request.get('rule_id')
            keys = list(assignable.keys())
            idx = keys.index(rule_id)
            del keys[idx]
            keys.insert(idx + 1, rule_id)
            assignable.updateOrder(keys)
        elif 'form.button.AddAssignment' in form:
            rule_id = form.get('rule_id')
            api.assign_rule(self.context, rule_id)
        elif 'form.button.Delete' in form:
            rule_ids = form.get('rule_ids', ())
            for r in rule_ids:
                api.unassign_rule(self.context, r)

            status.addStatusMessage(_(u'Assignments deleted.'), type='info')
        elif 'form.button.Enable' in form:
            rule_ids = form.get('rule_ids', ())
            for r in rule_ids:
                api.edit_rule_assignment(context, r, enabled=True)

            status.addStatusMessage(_(u'Assignments enabled.'), type='info')
        elif 'form.button.Disable' in form:
            rule_ids = form.get('rule_ids', ())
            for r in rule_ids:
                api.edit_rule_assignment(context, r, enabled=False)

            status.addStatusMessage(_(u'Assignments disabled.'), type='info')
        elif 'form.button.Bubble' in form:
            rule_ids = form.get('rule_ids', ())
            for r in rule_ids:
                api.edit_rule_assignment(
                    context, r, bubbles=True, enabled=True)

            status.addStatusMessage(_(u'Changes saved.'), type='info')
        elif 'form.button.NoBubble' in form:
            rule_ids = form.get('rule_ids', ())
            for r in rule_ids:
                api.edit_rule_assignment(context, r, bubbles=False)

            status.addStatusMessage(_(u'Changes saved.'), type='info')

        return self.template()
예제 #2
0
    def testRuleAssignmentRemovedAPI(self):
        self.assertTrue('r1' in self.f11a)
        self.assertTrue('r1' in self.f12a)

        api.unassign_rule(self.folder.f1.f11, 'r1')

        self.assertFalse('r1' in self.f11a)
        self.assertTrue('r1' in self.f12a)
예제 #3
0
def remove_content_rules(portal):
    """ Remove content rules on uninstall
    """
    storage = queryUtility(IRuleStorage)
    if not storage:
        return
    ids = ["eea-asyncmove-rule-fail", "eea-asyncmove-rule-success",
           "eea-asyncmove-rename-rule-fail", "eea-asyncmove-rule-added",
           "eea-asyncmove-rename-rule-success"]
    for i in ids:
        found = storage.get(i)
        if found:
            api.unassign_rule(portal, i)
            del storage[i]
예제 #4
0
def remove_content_rules(portal):
    """ Remove content rules on uninstall
    """
    storage = queryUtility(IRuleStorage)
    if not storage:
        return
    ids = [
        "eea-asyncmove-rule-fail", "eea-asyncmove-rule-success",
        "eea-asyncmove-rename-rule-fail", "eea-asyncmove-rule-added",
        "eea-asyncmove-rename-rule-success"
    ]
    for i in ids:
        found = storage.get(i)
        if found:
            api.unassign_rule(portal, i)
            del storage[i]