コード例 #1
0
def _initDCWorkflowStates(workflow, states):
    """ Initialize DCWorkflow states
    """
    from Products.DCWorkflow.States import StateDefinition

    for s_info in states:

        id = str(s_info['state_id']) # no unicode!
        if not id in workflow.states:
            s = StateDefinition(id)
            workflow.states._setObject(id, s)
        s = workflow.states._getOb(id)

        s.setProperties(title=s_info['title'],
                        description=s_info['description'],
                        transitions=s_info['transitions'])

        for k, v in s_info['permissions'].items():
            s.setPermission(k, isinstance(v, list), v)

        gmap = s.group_roles = PersistentMapping()

        for group_id, roles in s_info['groups']:
            gmap[group_id] = roles

        vmap = s.var_values = PersistentMapping()

        for name, v_info in s_info['variables'].items():
            value = _convertVariableValue(v_info['value'], v_info['type'])
            vmap[name] = value
コード例 #2
0
def _initDCWorkflowStates(workflow, states):

    """ Initialize DCWorkflow states
    """
    from Globals import PersistentMapping
    from Products.DCWorkflow.States import StateDefinition

    for s_info in states:

        id = str(s_info["state_id"])  # no unicode!
        if not workflow.states.has_key(id):
            s = StateDefinition(id)
            workflow.states._setObject(id, s)
        s = workflow.states._getOb(id)

        s.setProperties(title=s_info["title"], description=s_info["description"], transitions=s_info["transitions"])

        for k, v in s_info["permissions"].items():
            s.setPermission(k, isinstance(v, list), v)

        gmap = s.group_roles = PersistentMapping()

        for group_id, roles in s_info["groups"]:
            gmap[group_id] = roles

        vmap = s.var_values = PersistentMapping()

        for name, v_info in s_info["variables"].items():

            value = _convertVariableValue(v_info["value"], v_info["type"])

            vmap[name] = value
コード例 #3
0
    def testListWFStatesByTitle(self):
        from Products.CMFPlone.WorkflowTool import WorkflowTool
        from Products.DCWorkflow.DCWorkflow import DCWorkflowDefinition
        from Products.DCWorkflow.States import StateDefinition

        tool = WorkflowTool()

        # Test without workflows
        self.assertListEqual(tool.listWFStatesByTitle(), [])
        self.assertListEqual(tool.listWFStatesByTitle(filter_similar=True), [])

        # Test with an empty workflow
        tool["foo"] = DCWorkflowDefinition("foo")

        self.assertListEqual(tool.listWFStatesByTitle(), [])
        self.assertListEqual(tool.listWFStatesByTitle(filter_similar=True), [])

        # Test with dummy states
        tool["foo"].states["private"] = StateDefinition("private")
        tool["foo"].states["published"] = StateDefinition("published")

        expected = [(
            "",
            "private",
        ), ("", "published")]
        self.assertListEqual(tool.listWFStatesByTitle(), expected)
        self.assertListEqual(tool.listWFStatesByTitle(filter_similar=True),
                             expected)

        # Test with concurrent states
        tool["bar"] = DCWorkflowDefinition("bar")
        tool["bar"].states["private"] = StateDefinition("private")
        tool["bar"].states["pending"] = StateDefinition("pending")
        tool["bar"].states["published"] = StateDefinition("published")
        tool["bar"].states["published"].setProperties(title="Published")
        expected = [
            (
                "",
                "private",
            ),
            ("", "published"),
            (
                "",
                "private",
            ),
            ("", "pending"),
            ("Published", "published"),
        ]
        self.assertListEqual(tool.listWFStatesByTitle(), expected)
        expected = [
            (
                "",
                "private",
            ),
            ("", "published"),
            ("", "pending"),
            ("Published", "published"),
        ]
        self.assertListEqual(tool.listWFStatesByTitle(filter_similar=True),
                             expected)
コード例 #4
0
ファイル: workflow.py プロジェクト: goschtl/zope
def _initDCWorkflowStates( workflow, states ):

    """ Initialize DCWorkflow states
    """
    from Globals import PersistentMapping
    from Products.DCWorkflow.States import StateDefinition

    for s_info in states:

        id = str( s_info[ 'state_id' ] ) # no unicode!
        s = StateDefinition( id )
        workflow.states._setObject( id, s )
        s = workflow.states._getOb( id )

        s.setProperties( title = s_info[ 'title' ]
                       , description = s_info[ 'description' ]
                       , transitions = s_info[ 'transitions' ]
                       )

        for k, v in s_info[ 'permissions' ].items():
            s.setPermission( k, type( v ) is type( [] ), v )

        vmap = s.var_values = PersistentMapping()

        for name, v_info in s_info[ 'variables' ].items():

            value = _convertVariableValue( v_info[ 'value' ]
                                         , v_info[ 'type' ] )

            vmap[ name ] = value
コード例 #5
0
ファイル: exportimport.py プロジェクト: bendavis78/zope
def _initDCWorkflowStates(workflow, states):
    """ Initialize DCWorkflow states
    """
    from Globals import PersistentMapping
    from Products.DCWorkflow.States import StateDefinition

    for s_info in states:

        id = str(s_info['state_id'])  # no unicode!
        if not workflow.states.has_key(id):
            s = StateDefinition(id)
            workflow.states._setObject(id, s)
        s = workflow.states._getOb(id)

        s.setProperties(title=s_info['title'],
                        description=s_info['description'],
                        transitions=s_info['transitions'])

        for k, v in s_info['permissions'].items():
            s.setPermission(k, isinstance(v, list), v)

        gmap = s.group_roles = PersistentMapping()

        for group_id, roles in s_info['groups']:
            gmap[group_id] = roles

        vmap = s.var_values = PersistentMapping()

        for name, v_info in s_info['variables'].items():

            value = _convertVariableValue(v_info['value'], v_info['type'])

            vmap[name] = value