Example #1
0
    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'], '')
Example #2
0
 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)
Example #3
0
    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"], "")
Example #4
0
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