# # Generated by dumpDCWorkflow.py written by Sebastien Bigaret # Original workflow id/title: simpleblog_workflow/SimpleBlog Workflow # Date: 2003/11/06 09:34:25.960 GMT+1 # # WARNING: this dumps does NOT contain any scripts you might have added to # the workflow, IT IS YOUR RESPONSABILITY TO MAKE BACKUPS FOR THESE SCRIPTS. # # No script detected in this workflow # """ Programmatically creates a workflow type """ script_sbPublishEntry = """## Script (Python) "sbPublishEntry" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters=change_state=None ##title=Change an entrys' state to publish ## obj = change_state.object if obj.restrictedTraverse('portal_pingtool',None): obj.portal_pingtool.pingFeedReader(obj) tbping=obj.sendTrackBack() return tbping """ __version__ = "$Revision: 12627 $"[11:-2] from Products.CMFCore.WorkflowTool import addWorkflowFactory from Products.DCWorkflow.DCWorkflow import DCWorkflowDefinition def createSimpleblog_workflow(id): "..." ob = DCWorkflowDefinition(id) setupSimpleblog_workflow(ob) return ob def setupSimpleblog_workflow(wf): "..." wf.setProperties(title='SimpleBlog Workflow') for s in ['published', 'draft']: wf.states.addState(s) for t in ['publish', 'retract']: wf.transitions.addTransition(t) for v in ['review_history', 'comments', 'time', 'actor', 'action']: wf.variables.addVariable(v) for l in []: wf.worklists.addWorklist(l) for p in ('Access contents information', 'Modify portal content', 'View'): wf.addManagedPermission(p) from Products.PythonScripts.PythonScript import manage_addPythonScript for p in ['sbPublishEntry']: manage_addPythonScript(wf.scripts, p) srcdef = wf.scripts['sbPublishEntry'] srcdef.ZPythonScript_edit('', script_sbPublishEntry) ## Initial State wf.states.setInitialState('draft') ## States initialization sdef = wf.states['published'] sdef.setProperties(title="""Public""", transitions=('retract',)) sdef.setPermission('Access contents information', 1, ['Anonymous', 'Manager']) sdef.setPermission('Modify portal content', 0, ['Manager', 'Owner']) sdef.setPermission('View', 0, ['Anonymous', 'Authenticated', 'Manager']) sdef = wf.states['draft'] sdef.setProperties(title="""""", transitions=('publish',)) sdef.setPermission('Access contents information', 0, ['Manager', 'Owner']) sdef.setPermission('Modify portal content', 0, ['Manager', 'Owner']) sdef.setPermission('View', 0, ['Manager', 'Owner']) ## Transitions initialization tdef = wf.transitions['publish'] tdef.setProperties(title="""Reviewer publishes content""", new_state_id="""published""", trigger_type=1, script_name="""""", after_script_name='sbPublishEntry', actbox_name="""Publish""", actbox_url="""%(content_url)s/content_publish_form""", actbox_category="""workflow""", props={'guard_roles': 'Manager; Owner'}, ) tdef = wf.transitions['retract'] tdef.setProperties(title="""Member retracts published item""", new_state_id="""draft""", trigger_type=1, script_name="""""", after_script_name="""""", actbox_name="""Retract""", actbox_url="""%(content_url)s/content_retract_form""", actbox_category="""workflow""", props={'guard_roles': 'Owner; Manager'}, ) ## State Variable wf.variables.setStateVar('review_state') ## Variables initialization vdef = wf.variables['review_history'] vdef.setProperties(description="""Provides access to workflow history""", default_value="""""", default_expr="""state_change/getHistory""", for_catalog=0, for_status=0, update_always=0, props={'guard_permissions': 'Request review; Review portal content'}) vdef = wf.variables['comments'] vdef.setProperties(description="""Comments about the last transition""", default_value="""""", default_expr="""python:state_change.kwargs.get('comment', '')""", for_catalog=0, for_status=1, update_always=1, props=None) vdef = wf.variables['time'] vdef.setProperties(description="""Time of the last transition""", default_value="""""", default_expr="""state_change/getDateTime""", for_catalog=0, for_status=1, update_always=1, props=None) vdef = wf.variables['actor'] vdef.setProperties(description="""The ID of the user who performed the last transition""", default_value="""""", default_expr="""user/getId""", for_catalog=0, for_status=1, update_always=1, props=None) vdef = wf.variables['action'] vdef.setProperties(description="""The last transition""", default_value="""""", default_expr="""transition/getId|nothing""", for_catalog=0, for_status=1, update_always=1, props=None) ## Worklists Initialization def wfTest(): return 'ok' addWorkflowFactory(createSimpleblog_workflow, id='simpleblog_workflow', title='Workflow for Blog Entries')