def __call__(self): self.errors = {} if self.request.get('form.actions.add', False) == 'Add': self.authorize() am = ActionManager() rule = am.get_rule(self.selected_transition) if rule is None: id = generateRuleName(self.selected_transition) r = Rule() r.title = u"%s transition content rule" % ( self.selected_transition.id) r.description = """This content rule was automatically created by the workflow manager to support actions on workflow transitions. If you want the behavior to work as expected, do not modify this outside of the workflow manager.""" am.storage[id] = r rule = RuleAdapter(r, self.selected_transition) rule.activate() editurl = '%s/%s/+action' % (self.portal.absolute_url(), rule.id) data = urlencode({ ':action': self.request.get('action-type', 'plone.actions.Mail'), 'form.button.AddAction': 'Add' }) return self.handle_response(load=editurl + '?' + data) else: return self.handle_response(tmpl=self.template)
def __call__(self): self.errors = {} if self.request.get('form.actions.add', False): self.authorize() am = ActionManager() rule = am.get_rule(self.selected_transition) if rule is None: rule_id = generateRuleName(self.selected_transition) r = Rule() r.title = u"%s transition content rule" % ( self.selected_transition.id) r.description = """This content rule was automatically created by the workflow manager to support actions on workflow transitions. If you want the behavior to work as expected, do not modify this outside of the workflow manager.""" am.storage[rule_id] = r rule = RuleAdapter(r, self.selected_transition) rule.activate() editurl = '%s/%s/+action' % (self.portal.absolute_url(), rule.id) data = urlencode({ ':action': self.request.get('action-type', 'plone.actions.Mail'), 'form.button.AddAction': 'Add'}) return self.handle_response(load=editurl + '?' + data) else: return self.handle_response(tmpl=self.template)
def setUp(self): portal = self.layer['portal'] req = self.getRequest( { 'workflow-name': 'workflow-1', 'form.actions.add': 'create', 'clone-from-workflow': 'simple_publication_workflow' }, True) alsoProvides(req, IAttributeAnnotatable) AddWorkflow(portal, req)() # add some rules/actions req = self.getRequest( { 'form.actions.add': 'Add', 'selected-transition': 'publish', 'selected-state': 'published', 'selected-workflow': 'workflow-1' }, True) view = AddActionView(portal, req) view() self.selected_workflow = view.selected_workflow self.selected_transition = view.selected_transition self.selected_state = view.selected_state am = ActionManager() rule = am.get_rule(self.selected_transition) action = NotifyAction() action.message = 'foobar' action.message_type = 'info' rule.actions.append(action)
def setUp(self): portal = self.layer['portal'] req = self.getRequest({'workflow-name': 'workflow-1', 'form.actions.add': 'create', 'clone-from-workflow': 'simple_publication_workflow'}, True) alsoProvides(req, IAttributeAnnotatable) AddWorkflow(portal, req)() # add some rules/actions req = self.getRequest({ 'form.actions.add': 'Add', 'selected-transition': 'publish', 'selected-state': 'published', 'selected-workflow': 'workflow-1'}, True) view = AddActionView(portal, req) view() self.selected_workflow = view.selected_workflow self.selected_transition = view.selected_transition self.selected_state = view.selected_state am = ActionManager() rule = am.get_rule(self.selected_transition) action = NotifyAction() action.message = 'foobar' action.message_type = 'info' rule.actions.append(action)
def test_action_manager_delete_rule(self): portal = self.layer['portal'] am = ActionManager() pw = getToolByName(portal, 'portal_workflow') workflow = pw['simple_publication_workflow'] transition = workflow.transitions['publish'] am.create(transition) am.delete_rule_for(transition) self.assertEquals(am.get_rule(transition), None)
def test_action_manager_delete_rule(self): portal = self.layer["portal"] am = ActionManager() pw = getToolByName(portal, "portal_workflow") workflow = pw["simple_publication_workflow"] transition = workflow.transitions["publish"] am.create(transition) am.delete_rule_for(transition) self.assertEquals(am.get_rule(transition), None)
def test_adding_action(self): portal = self.layer["portal"] login(portal, TEST_USER_NAME) req = self.getRequest( {"form.actions.add": "Add", "selected-transition": "retract", "selected-workflow": "workflow-1"}, True ) view = AddActionView(portal, req) view() am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertTrue(rule is not None)
def test_adding_action(self): portal = self.layer['portal'] login(portal, TEST_USER_NAME) req = self.getRequest({ 'form.actions.add': 'Add', 'selected-transition': 'retract', 'selected-workflow': 'workflow-1'}, True) view = AddActionView(portal, req) view() am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertTrue(rule is not None)
def test_cancel_removing_action(self): portal = self.layer["portal"] login(portal, TEST_USER_NAME) req = self.getRequest( {"form.actions.cancel": "Cancel", "selected-transition": "publish", "selected-workflow": "workflow-1"}, True ) view = DeleteActionView(portal, req) view() am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertEquals(len(rule.actions), 1)
def test_cancel_removing_action(self): portal = self.layer['portal'] login(portal, TEST_USER_NAME) req = self.getRequest({ 'form.actions.cancel': 'Cancel', 'selected-transition': 'publish', 'selected-workflow': 'workflow-1'}, True) view = DeleteActionView(portal, req) view() am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertEquals(len(rule.actions), 1)
@unittest.skip("'rule' is None before and after calling view.") def test_accessing_adding_action(self): portal = self.layer['portal'] login(portal, TEST_USER_NAME) req = self.getRequest({ 'selected-transition': 'publish', 'selected-workflow': 'workflow-1'}, True) view = DeleteActionView(portal, req) try: view() except AttributeError, ex: self.assertTrue("'TestRequest' object has no attribute 'RESPONSE'" in str(ex)) am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertTrue(len(rule.actions) == 1) def test_removing_action(self): portal = self.layer['portal'] login(portal, TEST_USER_NAME) req = self.getRequest({ 'form.actions.delete': 'Delete', 'selected-transition': 'publish', 'selected-workflow': 'workflow-1', 'action_index': '0'}, True) view = DeleteActionView(portal, req) view() am = ActionManager() rule = am.get_rule(view.selected_transition)
am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertTrue(rule is None) def test_accessing_adding_action(self): portal = self.layer["portal"] login(portal, TEST_USER_NAME) req = self.getRequest({"selected-transition": "publish", "selected-workflow": "workflow-1"}, True) view = DeleteActionView(portal, req) try: view() except AttributeError, ex: self.assertTrue(str(ex) == "'TestRequest' object has no attribute 'RESPONSE'") am = ActionManager() rule = am.get_rule(view.selected_transition) self.assertTrue(len(rule.actions) == 1) def test_removing_action(self): portal = self.layer["portal"] login(portal, TEST_USER_NAME) req = self.getRequest( { "form.actions.delete": "Delete", "selected-transition": "publish", "selected-workflow": "workflow-1", "action_index": "0", }, True, )