def setUp(self): self.portal = self.layer['portal'] self.request = self.layer['request'] login(self.portal, TEST_USER_NAME) setRoles(self.portal, TEST_USER_ID, ['Manager']) self.portal.invokeFactory('Folder', 'news') self.portal.invokeFactory('Folder', 'events') applyProfile(self.portal, 'plone.app.contentrules:testing') edit_rule_assignment(self.portal, 'test4', bubbles=1, enabled=1) edit_rule_assignment(self.portal, 'test5', bubbles=1, enabled=1)
def afterSetUp(self): self.storage = getUtility(IRuleStorage) self.loginAsPortalOwner() if 'news' not in self.portal: self.portal.invokeFactory('Folder', 'news') self.portal.news.setLocallyAllowedTypes(['News Item', 'Event']) if 'events' not in self.portal: self.portal.invokeFactory('Folder', 'events') portal_setup = self.portal.portal_setup portal_setup.runAllImportStepsFromProfile('profile-plone.app.contentrules:testing') edit_rule_assignment(self.portal, 'test4', bubbles=1, enabled=1) edit_rule_assignment(self.portal, 'test5', bubbles=1, enabled=1)
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()
def testRuleAssignmentEditedAPI(self): self.assertTrue(self.f11a['r1'].bubbles) self.assertTrue(self.f11a['r1'].enabled) api.edit_rule_assignment(self.folder.f1.f11, 'r1', bubbles=False, enabled=False) self.assertFalse(self.f11a['r1'].bubbles) self.assertFalse(self.f11a['r1'].enabled) api.edit_rule_assignment(self.folder.f1.f11, 'r1', bubbles=True, enabled=True) self.assertTrue(self.f11a['r1'].bubbles) self.assertTrue(self.f11a['r1'].enabled)