[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