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
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
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)
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
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