[CMF-checkins] SVN: CMF/branches/yuppie-workflow_setup/ - replaced
hardcoded 'Revision 2' workflow by revision2 profile
Yvo Schubbe
y.2005- at wcm-solutions.de
Mon Nov 21 10:57:07 EST 2005
Log message for revision 40298:
- replaced hardcoded 'Revision 2' workflow by revision2 profile
- removed 'Classic' workflow (this is already in the CMFDefault profile)
Changed:
U CMF/branches/yuppie-workflow_setup/CMFSetup/workflow.py
U CMF/branches/yuppie-workflow_setup/DCWorkflow/DEPENDENCIES.txt
D CMF/branches/yuppie-workflow_setup/DCWorkflow/Default.py
U CMF/branches/yuppie-workflow_setup/DCWorkflow/__init__.py
A CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/
A CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/
A CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/
A CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/default_workflow/
A CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/default_workflow/definition.xml
A CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows.xml
-=-
Modified: CMF/branches/yuppie-workflow_setup/CMFSetup/workflow.py
===================================================================
--- CMF/branches/yuppie-workflow_setup/CMFSetup/workflow.py 2005-11-21 15:00:36 UTC (rev 40297)
+++ CMF/branches/yuppie-workflow_setup/CMFSetup/workflow.py 2005-11-21 15:57:05 UTC (rev 40298)
@@ -302,6 +302,8 @@
return val
def _convertBindings(self, val):
+ if not val[0]:
+ return {}
result = {}
Modified: CMF/branches/yuppie-workflow_setup/DCWorkflow/DEPENDENCIES.txt
===================================================================
--- CMF/branches/yuppie-workflow_setup/DCWorkflow/DEPENDENCIES.txt 2005-11-21 15:00:36 UTC (rev 40297)
+++ CMF/branches/yuppie-workflow_setup/DCWorkflow/DEPENDENCIES.txt 2005-11-21 15:57:05 UTC (rev 40298)
@@ -1,3 +1,4 @@
Zope >= 2.8.2
Five >= 1.2
CMFCore
+GenericSetup
Deleted: CMF/branches/yuppie-workflow_setup/DCWorkflow/Default.py
===================================================================
--- CMF/branches/yuppie-workflow_setup/DCWorkflow/Default.py 2005-11-21 15:00:36 UTC (rev 40297)
+++ CMF/branches/yuppie-workflow_setup/DCWorkflow/Default.py 2005-11-21 15:57:05 UTC (rev 40298)
@@ -1,321 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001 Zope Corporation and Contributors. All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-""" Programmatically creates a workflow.
-
-$Id$
-"""
-
-from Products.CMFCore.WorkflowTool import addWorkflowFactory
-
-from DCWorkflow import DCWorkflowDefinition
-from permissions import AccessContentsInformation
-from permissions import ModifyPortalContent
-from permissions import RequestReview
-from permissions import ReviewPortalContent
-from permissions import View
-
-p_access = AccessContentsInformation
-p_modify = ModifyPortalContent
-p_request = RequestReview
-p_review = ReviewPortalContent
-p_view = View
-
-r_anon = 'Anonymous'
-r_manager = 'Manager'
-r_reviewer = 'Reviewer'
-r_owner = 'Owner'
-r_member = 'Member'
-
-
-
-def setupDefaultWorkflowRev2(wf):
- '''
- Sets up a DCWorkflow with the addition of a visible state,
- the show and hide transitions, and corresponding changes.
- wf is a DCWorkflow instance.
- '''
- wf.setProperties(title='CMF default workflow [Revision 2]')
-
- for s in ('private', 'visible', 'pending', 'published'):
- wf.states.addState(s)
- for t in ('publish', 'reject', 'retract', 'submit', 'hide', 'show'):
- wf.transitions.addTransition(t)
- for v in ('action', 'actor', 'comments', 'review_history', 'time'):
- wf.variables.addVariable(v)
- for l in ('reviewer_queue',):
- wf.worklists.addWorklist(l)
- for p in (p_access, p_modify, p_view):
- wf.addManagedPermission(p)
-
- wf.states.setInitialState('visible')
-
- sdef = wf.states['private']
- sdef.setProperties(
- title='Visible and editable only by owner',
- transitions=('show',))
- sdef.setPermission(p_access, 0, (r_manager, r_owner))
- sdef.setPermission(p_view, 0, (r_manager, r_owner))
- sdef.setPermission(p_modify, 0, (r_manager, r_owner))
-
- sdef = wf.states['pending']
- sdef.setProperties(
- title='Waiting for reviewer',
- transitions=('hide', 'publish', 'reject', 'retract',))
- sdef.setPermission(p_access, 1, (r_manager, r_owner, r_reviewer))
- sdef.setPermission(p_view, 1, (r_manager, r_owner, r_reviewer))
- sdef.setPermission(p_modify, 0, (r_manager, r_reviewer))
-
- sdef = wf.states['published']
- sdef.setProperties(
- title='Public',
- transitions=('reject', 'retract',))
- sdef.setPermission(p_access, 1, (r_anon, r_manager))
- sdef.setPermission(p_view, 1, (r_anon, r_manager))
- sdef.setPermission(p_modify, 0, (r_manager,))
-
- sdef = wf.states['visible']
- sdef.setProperties(
- title='Visible but not published',
- transitions=('hide', 'publish', 'submit',))
- sdef.setPermission(p_access, 1, (r_anon, r_manager, r_reviewer))
- sdef.setPermission(p_view, 1, (r_anon, r_manager, r_reviewer))
- sdef.setPermission(p_modify, 0, (r_manager, r_owner))
-
- tdef = wf.transitions['hide']
- tdef.setProperties(
- title='Member makes content private',
- new_state_id='private',
- actbox_name='Make private',
- actbox_url='%(content_url)s/content_hide_form',
- props={'guard_roles':r_owner})
-
- tdef = wf.transitions['publish']
- tdef.setProperties(
- title='Reviewer publishes content',
- new_state_id='published',
- actbox_name='Publish',
- actbox_url='%(content_url)s/content_publish_form',
- props={'guard_permissions':p_review})
-
- tdef = wf.transitions['reject']
- tdef.setProperties(
- title='Reviewer rejects submission',
- new_state_id='visible',
- actbox_name='Reject',
- actbox_url='%(content_url)s/content_reject_form',
- props={'guard_permissions':p_review})
-
- tdef = wf.transitions['retract']
- tdef.setProperties(
- title='Member retracts submission',
- new_state_id='visible',
- actbox_name='Retract',
- actbox_url='%(content_url)s/content_retract_form',
- props={'guard_permissions':p_request})
-
- tdef = wf.transitions['show']
- tdef.setProperties(
- title='Member makes content visible',
- new_state_id='visible',
- actbox_name='Make visible',
- actbox_url='%(content_url)s/content_show_form',
- props={'guard_roles':r_owner})
-
- tdef = wf.transitions['submit']
- tdef.setProperties(
- title='Member requests publishing',
- new_state_id='pending',
- actbox_name='Submit',
- actbox_url='%(content_url)s/content_submit_form',
- props={'guard_permissions':p_request})
-
- wf.variables.setStateVar('review_state')
-
- vdef = wf.variables['action']
- vdef.setProperties(description='The last transition',
- default_expr='transition/getId|nothing',
- for_status=1, update_always=1)
-
- vdef = wf.variables['actor']
- vdef.setProperties(description='The ID of the user who performed '
- 'the last transition',
- default_expr='user/getId',
- for_status=1, update_always=1)
-
- vdef = wf.variables['comments']
- vdef.setProperties(description='Comments about the last transition',
- default_expr="python:state_change.kwargs.get('comment', '')",
- for_status=1, update_always=1)
-
- vdef = wf.variables['review_history']
- vdef.setProperties(description='Provides access to workflow history',
- default_expr="state_change/getHistory",
- props={'guard_permissions':
- p_request + ';' + p_review})
-
- vdef = wf.variables['time']
- vdef.setProperties(description='Time of the last transition',
- default_expr="state_change/getDateTime",
- for_status=1, update_always=1)
-
- ldef = wf.worklists['reviewer_queue']
- ldef.setProperties(description='Reviewer tasks',
- actbox_name='Pending (%(count)d)',
- actbox_url='%(portal_url)s/search?review_state=pending',
- props={'var_match_review_state':'pending',
- 'guard_permissions':p_review})
-
-
-def createDefaultWorkflowRev2(id):
- '''
- '''
- ob = DCWorkflowDefinition(id)
- setupDefaultWorkflowRev2(ob)
- return ob
-
-addWorkflowFactory(createDefaultWorkflowRev2, id='default_workflow',
- title='Web-configurable workflow [Revision 2]')
-
-
-
-
-
-
-
-
-
-def setupDefaultWorkflowClassic(wf):
- '''
- Sets up a DCWorkflow as close as possible to the old DefaultWorkflow,
- with only the private, pending, and published states.
- wf is a DCWorkflow instance.
- '''
- wf.setProperties(title='CMF default workflow [Classic]')
-
- for s in ('private', 'pending', 'published'):
- wf.states.addState(s)
- for t in ('publish', 'reject', 'retract', 'submit'):
- wf.transitions.addTransition(t)
- for v in ('action', 'actor', 'comments', 'review_history', 'time'):
- wf.variables.addVariable(v)
- for l in ('reviewer_queue',):
- wf.worklists.addWorklist(l)
- for p in (p_access, p_modify, p_view):
- wf.addManagedPermission(p)
-
- wf.states.setInitialState('private')
-
- sdef = wf.states['private']
- sdef.setProperties(
- title='Non-visible and editable only by owner',
- transitions=('submit', 'publish',))
- sdef.setPermission(p_access, 0, (r_manager, r_owner))
- sdef.setPermission(p_view, 0, (r_manager, r_owner))
- sdef.setPermission(p_modify, 0, (r_manager, r_owner))
-
- sdef = wf.states['pending']
- sdef.setProperties(
- title='Waiting for reviewer',
- transitions=('publish', 'reject', 'retract',))
- sdef.setPermission(p_access, 0, (r_manager, r_owner, r_reviewer))
- sdef.setPermission(p_view, 0, (r_manager, r_owner, r_reviewer))
- sdef.setPermission(p_modify, 0, (r_manager, r_reviewer))
-
- sdef = wf.states['published']
- sdef.setProperties(
- title='Public',
- transitions=('reject', 'retract',))
- sdef.setPermission(p_access, 1, (r_anon, r_manager))
- sdef.setPermission(p_view, 1, (r_anon, r_manager))
- sdef.setPermission(p_modify, 0, (r_manager,))
-
- tdef = wf.transitions['publish']
- tdef.setProperties(
- title='Reviewer publishes content',
- new_state_id='published',
- actbox_name='Publish',
- actbox_url='%(content_url)s/content_publish_form',
- props={'guard_permissions':p_review})
-
- tdef = wf.transitions['reject']
- tdef.setProperties(
- title='Reviewer rejects submission',
- new_state_id='private',
- actbox_name='Reject',
- actbox_url='%(content_url)s/content_reject_form',
- props={'guard_permissions':p_review})
-
- tdef = wf.transitions['retract']
- tdef.setProperties(
- title='Member retracts submission',
- new_state_id='private',
- actbox_name='Retract',
- actbox_url='%(content_url)s/content_retract_form',
- props={'guard_permissions':p_request})
-
- tdef = wf.transitions['submit']
- tdef.setProperties(
- title='Member requests publishing',
- new_state_id='pending',
- actbox_name='Submit',
- actbox_url='%(content_url)s/content_submit_form',
- props={'guard_permissions':p_request})
-
- wf.variables.setStateVar('review_state')
-
- vdef = wf.variables['action']
- vdef.setProperties(description='The last transition',
- default_expr='transition/getId|nothing',
- for_status=1, update_always=1)
-
- vdef = wf.variables['actor']
- vdef.setProperties(description='The ID of the user who performed '
- 'the last transition',
- default_expr='user/getId',
- for_status=1, update_always=1)
-
- vdef = wf.variables['comments']
- vdef.setProperties(description='Comments about the last transition',
- default_expr="python:state_change.kwargs.get('comment', '')",
- for_status=1, update_always=1)
-
- vdef = wf.variables['review_history']
- vdef.setProperties(description='Provides access to workflow history',
- default_expr="state_change/getHistory",
- props={'guard_permissions':
- p_request + ';' + p_review})
-
- vdef = wf.variables['time']
- vdef.setProperties(description='Time of the last transition',
- default_expr="state_change/getDateTime",
- for_status=1, update_always=1)
-
- ldef = wf.worklists['reviewer_queue']
- ldef.setProperties(description='Reviewer tasks',
- actbox_name='Pending (%(count)d)',
- actbox_url='%(portal_url)s/search?review_state=pending',
- props={'var_match_review_state':'pending',
- 'guard_permissions':p_review})
-
-
-
-def createDefaultWorkflowClassic(id):
- '''
- '''
- ob = DCWorkflowDefinition(id)
- setupDefaultWorkflowClassic(ob)
- return ob
-
-addWorkflowFactory(createDefaultWorkflowClassic, id='default_workflow',
- title='Web-configurable workflow [Classic]')
-
Modified: CMF/branches/yuppie-workflow_setup/DCWorkflow/__init__.py
===================================================================
--- CMF/branches/yuppie-workflow_setup/DCWorkflow/__init__.py 2005-11-21 15:00:36 UTC (rev 40297)
+++ CMF/branches/yuppie-workflow_setup/DCWorkflow/__init__.py 2005-11-21 15:57:05 UTC (rev 40298)
@@ -16,8 +16,10 @@
"""
from Products.CMFCore.utils import registerIcon
+from Products.GenericSetup import EXTENSION
+from Products.GenericSetup import profile_registry
+
import DCWorkflow, States, Transitions, Variables, Worklists, Scripts
-import Default
def initialize(context):
@@ -41,3 +43,10 @@
Worklists.WorklistDefinition.icon = Worklists.Worklists.icon
registerIcon(Scripts.Scripts,
'images/script.gif', globals())
+
+ profile_registry.registerProfile('revision2',
+ 'CMF Default Workflow [Revision 2]',
+ 'Adds revision 2 of default workflow.',
+ 'profiles/revision2',
+ 'DCWorkflow',
+ EXTENSION)
Added: CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/default_workflow/definition.xml
===================================================================
--- CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/default_workflow/definition.xml 2005-11-21 15:00:36 UTC (rev 40297)
+++ CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/default_workflow/definition.xml 2005-11-21 15:57:05 UTC (rev 40298)
@@ -0,0 +1,223 @@
+<?xml version="1.0"?>
+<dc-workflow workflow_id="default_workflow"
+ title="CMF default workflow [Revision 2]"
+ state_variable="review_state"
+ initial_state="visible">
+ <permission>Access contents information</permission>
+ <permission>Modify portal content</permission>
+ <permission>View</permission>
+ <state state_id="pending" title="Waiting for reviewer">
+ <exit-transition transition_id="hide"/>
+ <exit-transition transition_id="publish"/>
+ <exit-transition transition_id="reject"/>
+ <exit-transition transition_id="retract"/>
+ <permission-map name="Access contents information"
+ acquired="True">
+ <permission-role>Manager</permission-role>
+ <permission-role>Owner</permission-role>
+ <permission-role>Reviewer</permission-role>
+ </permission-map>
+ <permission-map name="Modify portal content"
+ acquired="False">
+ <permission-role>Manager</permission-role>
+ <permission-role>Reviewer</permission-role>
+ </permission-map>
+ <permission-map name="View" acquired="True">
+ <permission-role>Manager</permission-role>
+ <permission-role>Owner</permission-role>
+ <permission-role>Reviewer</permission-role>
+ </permission-map>
+
+
+ </state>
+ <state state_id="private"
+ title="Visible and editable only by owner">
+ <exit-transition transition_id="show"/>
+ <permission-map name="Access contents information"
+ acquired="False">
+ <permission-role>Manager</permission-role>
+ <permission-role>Owner</permission-role>
+ </permission-map>
+ <permission-map name="Modify portal content"
+ acquired="False">
+ <permission-role>Manager</permission-role>
+ <permission-role>Owner</permission-role>
+ </permission-map>
+ <permission-map name="View" acquired="False">
+ <permission-role>Manager</permission-role>
+ <permission-role>Owner</permission-role>
+ </permission-map>
+
+
+ </state>
+ <state state_id="published" title="Public">
+ <exit-transition transition_id="reject"/>
+ <exit-transition transition_id="retract"/>
+ <permission-map name="Access contents information"
+ acquired="True">
+ <permission-role>Anonymous</permission-role>
+ <permission-role>Manager</permission-role>
+ </permission-map>
+ <permission-map name="Modify portal content"
+ acquired="False">
+ <permission-role>Manager</permission-role>
+ </permission-map>
+ <permission-map name="View" acquired="True">
+ <permission-role>Anonymous</permission-role>
+ <permission-role>Manager</permission-role>
+ </permission-map>
+
+
+ </state>
+ <state state_id="visible" title="Visible but not published">
+ <exit-transition transition_id="hide"/>
+ <exit-transition transition_id="publish"/>
+ <exit-transition transition_id="submit"/>
+ <permission-map name="Access contents information"
+ acquired="True">
+ <permission-role>Anonymous</permission-role>
+ <permission-role>Manager</permission-role>
+ <permission-role>Reviewer</permission-role>
+ </permission-map>
+ <permission-map name="Modify portal content"
+ acquired="False">
+ <permission-role>Manager</permission-role>
+ <permission-role>Owner</permission-role>
+ </permission-map>
+ <permission-map name="View" acquired="True">
+ <permission-role>Anonymous</permission-role>
+ <permission-role>Manager</permission-role>
+ <permission-role>Reviewer</permission-role>
+ </permission-map>
+
+
+ </state>
+ <transition transition_id="hide"
+ title="Member makes content private"
+ new_state="private" trigger="USER"
+ before_script="" after_script="">
+ <action url="%(content_url)s/content_hide_form"
+ category="workflow">Make private</action>
+ <guard>
+ <guard-role>Owner</guard-role>
+ </guard>
+
+ </transition>
+ <transition transition_id="publish"
+ title="Reviewer publishes content"
+ new_state="published" trigger="USER"
+ before_script="" after_script="">
+ <action url="%(object_url)s/content_publish_form"
+ category="workflow">Publish</action>
+ <guard>
+ <guard-permission>Review portal content</guard-permission>
+ </guard>
+
+ </transition>
+ <transition transition_id="reject"
+ title="Reviewer rejects submission"
+ new_state="visible" trigger="USER"
+ before_script="" after_script="">
+ <action url="%(object_url)s/content_reject_form"
+ category="workflow">Reject</action>
+ <guard>
+ <guard-permission>Review portal content</guard-permission>
+ </guard>
+
+ </transition>
+ <transition transition_id="retract"
+ title="Member retracts submission"
+ new_state="visible" trigger="USER"
+ before_script="" after_script="">
+ <action url="%(object_url)s/content_retract_form"
+ category="workflow">Retract</action>
+ <guard>
+ <guard-permission>Request review</guard-permission>
+ </guard>
+
+ </transition>
+ <transition transition_id="show"
+ title="Member makes content visible"
+ new_state="visible" trigger="USER"
+ before_script="" after_script="">
+ <action url="%(content_url)s/content_show_form"
+ category="workflow">Make visible</action>
+ <guard>
+ <guard-role>Owner</guard-role>
+ </guard>
+
+ </transition>
+ <transition transition_id="submit"
+ title="Member requests publishing"
+ new_state="pending" trigger="USER"
+ before_script="" after_script="">
+ <action url="%(object_url)s/content_submit_form"
+ category="workflow">Submit</action>
+ <guard>
+ <guard-permission>Request review</guard-permission>
+ </guard>
+
+ </transition>
+ <worklist worklist_id="reviewer_queue" title="">
+ <description>Reviewer tasks</description>
+ <action url="%(portal_url)s/search?review_state=pending"
+ category="global">Pending (%(count)d)</action>
+ <guard>
+ <guard-permission>Review portal content</guard-permission>
+ </guard>
+ <match name="review_state" values="pending"/>
+ </worklist>
+ <variable variable_id="action" for_catalog="False"
+ for_status="True" update_always="True">
+ <description>The last transition</description>
+ <default>
+
+ <expression>transition/getId|nothing</expression>
+ </default>
+ <guard>
+ </guard>
+ </variable>
+ <variable variable_id="actor" for_catalog="False"
+ for_status="True" update_always="True">
+ <description>The ID of the user who performed the last transition</description>
+ <default>
+
+ <expression>user/getId</expression>
+ </default>
+ <guard>
+ </guard>
+ </variable>
+ <variable variable_id="comments" for_catalog="False"
+ for_status="True" update_always="True">
+ <description>Comments about the last transition</description>
+ <default>
+
+ <expression>python:state_change.kwargs.get('comment', '')</expression>
+ </default>
+ <guard>
+ </guard>
+ </variable>
+ <variable variable_id="review_history" for_catalog="False"
+ for_status="False" update_always="False">
+ <description>Provides access to workflow history</description>
+ <default>
+
+ <expression>state_change/getHistory</expression>
+ </default>
+ <guard>
+ <guard-permission>Request review</guard-permission>
+ <guard-permission>Review portal content</guard-permission>
+ </guard>
+ </variable>
+ <variable variable_id="time" for_catalog="False"
+ for_status="True" update_always="True">
+ <description>Time of the last transition</description>
+ <default>
+
+ <expression>state_change/getDateTime</expression>
+ </default>
+ <guard>
+ </guard>
+ </variable>
+
+</dc-workflow>
Property changes on: CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows/default_workflow/definition.xml
___________________________________________________________________
Name: svn:eol-style
+ native
Added: CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows.xml
===================================================================
--- CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows.xml 2005-11-21 15:00:36 UTC (rev 40297)
+++ CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows.xml 2005-11-21 15:57:05 UTC (rev 40298)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<workflow-tool>
+ <workflow workflow_id="default_workflow"
+ meta_type="Workflow"
+ filename="workflows/default_workflow/definition.xml"/>
+ <bindings>
+ </bindings>
+</workflow-tool>
Property changes on: CMF/branches/yuppie-workflow_setup/DCWorkflow/profiles/revision2/workflows.xml
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the CMF-checkins
mailing list