def test_transitionHistory(self): wf_tool = self.portal.portal_workflow request = self.app.REQUEST context = getattr(self.folder, 'd1') self.loginAsPortalOwner() wf_tool.doActionFor(context, 'publish') viewlet = WorkflowHistoryViewlet(context, request, None, None) viewlet.update() history = viewlet.workflowHistory() self.assertEqual(len(history), 2) self.assertEqual(history[0]['action'], 'publish') # add a temporary user to perform a transition self.addMember('tempuser', roles=('Member', 'Manager')) self.login('tempuser') wf_tool.doActionFor(context, action='retract', actor=None) self.logout() self.loginAsPortalOwner() # remove the user self.delMember('tempuser') # if the user that performed the transition no longer exists, the link # shouldn't be included. viewlet = WorkflowHistoryViewlet(context, request, None, None) viewlet.update() history = viewlet.workflowHistory() self.assertEqual(len(history), 3) self.assertEqual(history[0]['actor_home'], '')
def test_initHistory(self): request = self.app.REQUEST context = getattr(self.folder, 'd1') viewlet = WorkflowHistoryViewlet(context, request, None, None) viewlet.update() history = viewlet.workflowHistory() self.assertEqual(len(history), 1) self.assertEqual(history[0]['action'], None)
def test_transitionHistory(self): wf_tool = self.portal.portal_workflow request = self.app.REQUEST context = getattr(self.folder, "d1") self.loginAsPortalOwner() wf_tool.doActionFor(context, "publish") viewlet = WorkflowHistoryViewlet(context, request, None, None) viewlet.update() history = viewlet.workflowHistory() self.assertEqual(len(history), 2) self.assertEqual(history[0]["action"], "publish") # add a temporary user to perform a transition self.addMember("tempuser", roles=("Member", "Manager")) self.login("tempuser") wf_tool.doActionFor(context, action="retract", actor=None) self.logout() self.loginAsPortalOwner() # remove the user self.delMember("tempuser") # if the user that performed the transition no longer exists, the link # shouldn't be included. viewlet = WorkflowHistoryViewlet(context, request, None, None) viewlet.update() history = viewlet.workflowHistory() self.assertEqual(len(history), 3) self.assertEqual(history[0]["actor_home"], "")
def getWorkflowHistory(item): """ In contrary to 'context.workflowHistory()', of plone.app.viewlets, we can get the wf-history not only of the given context, but of any passed obj, by passing a fake REQUEST-var and overcome permission-restrictions, see: http://docs.plone.org/develop/plone/content/history.html """ workflow_history = None request = TestRequest() # TODO: user must exist in plonsite ! Zopeadmin can watch anyway. #admin = portal().acl_users.getUser('siteadmin') #newSecurityManager(request, admin) chv = WorkflowHistoryViewlet(item, request, None, None) # These attributes are needed, the fullHistory() call fails otherwise chv.navigation_root_url = chv.site_url = 'http://www.example.org' workflow_history = chv.workflowHistory() return workflow_history