root/CPS3/products/CPSDefault/trunk/profiles/default/workflows/workspace_content_wf/definition.xml

Revision 53248, 11.1 kB (checked in by gracinet, 7 months ago)

#1945: Draft checkin now freeze the version

Line 
1 <?xml version="1.0"?>
2 <cps-workflow workflow_id="workspace_content_wf"
3               title="CPS Workflow Definition"
4               state_variable="review_state"
5               meta_type="CPS Workflow">
6  <permission>Modify portal content</permission>
7  <permission>View</permission>
8  <permission>WebDAV Lock items</permission>
9  <permission>WebDAV Unlock items</permission>
10  <state state_id="draft" title="Draft">
11   <exit-transition transition_id="modify"/>
12   <exit-transition transition_id="checkin_draft"/>
13   <exit-transition transition_id="abandon_draft"/>
14   <exit-transition transition_id="unlock"/>
15   <permission-map name="Modify portal content"
16                   acquired="False">
17    <permission-role>Manager</permission-role>
18    <permission-role>WorkspaceManager</permission-role>
19    <permission-role>Owner</permission-role>
20   </permission-map>
21   <permission-map name="View" acquired="False">
22    <permission-role>Manager</permission-role>
23    <permission-role>WorkspaceManager</permission-role>
24    <permission-role>WorkspaceMember</permission-role>
25    <permission-role>Owner</permission-role>
26   </permission-map>
27   <permission-map name="WebDAV Lock items" acquired="False">
28    <permission-role>Manager</permission-role>
29    <permission-role>WorkspaceManager</permission-role>
30    <permission-role>Owner</permission-role>
31   </permission-map>
32   <permission-map name="WebDAV Unlock items"
33                   acquired="False">
34    <permission-role>Manager</permission-role>
35    <permission-role>WorkspaceManager</permission-role>
36    <permission-role>Owner</permission-role>
37   </permission-map>
38  </state>
39  <state state_id="locked" title="Locked">
40   <exit-transition transition_id="unlock"/>
41   <permission-map name="Modify portal content"
42                   acquired="False">
43   </permission-map>
44   <permission-map name="View" acquired="False">
45    <permission-role>Manager</permission-role>
46    <permission-role>WorkspaceManager</permission-role>
47    <permission-role>WorkspaceMember</permission-role>
48    <permission-role>WorkspaceReader</permission-role>
49   </permission-map>
50   <permission-map name="WebDAV Lock items" acquired="False">
51   </permission-map>
52   <permission-map name="WebDAV Unlock items"
53                   acquired="False">
54   </permission-map>
55  </state>
56  <state state_id="work" title="Work">
57   <exit-transition transition_id="copy_submit"/>
58   <exit-transition transition_id="checkout_draft"/>
59   <exit-transition transition_id="cut_copy_paste"/>
60   <exit-transition transition_id="modify"/>
61   <exit-transition transition_id="translate"/>
62   <exit-transition transition_id="delete_translation"/>
63   <permission-map name="Modify portal content"
64                   acquired="False">
65    <permission-role>Manager</permission-role>
66    <permission-role>Owner</permission-role>
67    <permission-role>WorkspaceManager</permission-role>
68    <permission-role>WorkspaceMember</permission-role>
69   </permission-map>
70   <permission-map name="View" acquired="False">
71    <permission-role>Manager</permission-role>
72    <permission-role>WorkspaceManager</permission-role>
73    <permission-role>WorkspaceMember</permission-role>
74    <permission-role>WorkspaceReader</permission-role>
75   </permission-map>
76   <permission-map name="WebDAV Lock items" acquired="False">
77    <permission-role>Manager</permission-role>
78    <permission-role>Owner</permission-role>
79    <permission-role>WorkspaceManager</permission-role>
80    <permission-role>WorkspaceMember</permission-role>
81   </permission-map>
82   <permission-map name="WebDAV Unlock items"
83                   acquired="False">
84    <permission-role>Manager</permission-role>
85    <permission-role>Owner</permission-role>
86    <permission-role>WorkspaceManager</permission-role>
87    <permission-role>WorkspaceMember</permission-role>
88   </permission-map>
89  </state>
90  <transition transition_id="abandon_draft"
91              title="Abandon draft" new_state=""
92              trigger="USER"
93              before_script="unlock_locked_before_abandon"
94              after_script="">
95   <action url="%(content_url)s/content_abandon_draft_form"
96           category="workflow">action_abandon_draft</action>
97   <guard>
98    <guard-role>Manager</guard-role>
99    <guard-role>WorkspaceManager</guard-role>
100    <guard-role>Owner</guard-role>
101   </guard>
102   <transition-behavior behavior_id="delete"/>
103  </transition>
104  <transition transition_id="checkin_draft"
105              title="Checkin draft" new_state="locked"
106              trigger="USER" before_script="" after_script="">
107   <action url="%(content_url)s/content_checkin_draft_form"
108           category="workflow">action_checkin_draft</action>
109   <guard>
110    <guard-role>Manager</guard-role>
111    <guard-role>WorkspaceManager</guard-role>
112    <guard-role>Owner</guard-role>
113   </guard>
114   <transition-behavior behavior_id="checkin"/>
115   <transition-behavior behavior_id="freeze"/>
116   <checkin-allowed-transition transition_id="unlock"/>
117  </transition>
118  <transition transition_id="checkout_draft"
119              title="Checkout content into a draft"
120              new_state="locked" trigger="USER"
121              before_script="" after_script="">
122   <action url="%(content_url)s/content_checkout_draft_form"
123           category="workflow">action_checkout_draft</action>
124   <guard>
125    <guard-role>Manager</guard-role>
126    <guard-role>WorkspaceManager</guard-role>
127    <guard-role>WorkspaceMember</guard-role>
128   </guard>
129   <transition-behavior behavior_id="checkout"/>
130   <checkout-allowed-initial-transition
131     transition_id="checkout_draft_in"/>
132  </transition>
133  <transition transition_id="checkout_draft_in"
134              title="Draft is created" new_state="draft"
135              trigger="USER" before_script="" after_script="">
136
137   <guard>
138   </guard>
139   <transition-behavior behavior_id="initial-checkout"/>
140   <transition-behavior behavior_id="freeze"/>
141  </transition>
142  <transition transition_id="copy_submit"
143              title="Copy content into a section for Publishing"
144              new_state="" trigger="USER" before_script=""
145              after_script="">
146   <action url="%(content_url)s/content_submit_form"
147           category="workflow">action_submit</action>
148   <guard>
149    <guard-role>Manager</guard-role>
150    <guard-role>WorkspaceManager</guard-role>
151    <guard-role>WorkspaceMember</guard-role>
152   </guard>
153   <transition-behavior behavior_id="clone"/>
154   <clone-allowed-transition transition_id="submit"/>
155   <clone-allowed-transition transition_id="publish"/>
156  </transition>
157  <transition transition_id="create" title="Initial creation"
158              new_state="work" trigger="USER"
159              before_script="" after_script="">
160
161   <guard>
162    <guard-role>Manager</guard-role>
163    <guard-role>WorkspaceManager</guard-role>
164    <guard-role>WorkspaceMember</guard-role>
165   </guard>
166   <transition-behavior behavior_id="initial-create"/>
167  </transition>
168  <transition transition_id="cut_copy_paste"
169              title="Cut/Copy/Paste" new_state=""
170              trigger="USER" before_script="" after_script="">
171
172   <guard>
173    <guard-role>Manager</guard-role>
174    <guard-role>WorkspaceManager</guard-role>
175    <guard-role>WorkspaceMember</guard-role>
176   </guard>
177   <transition-behavior behavior_id="allow-sub-move"/>
178   <transition-behavior behavior_id="allow-sub-delete"/>
179   <transition-behavior behavior_id="allow-sub-copy"/>
180  </transition>
181  <transition transition_id="delete_translation"
182              title="Delete a translation" new_state=""
183              trigger="USER"
184              before_script="delete_language_from_proxy"
185              after_script="">
186   <guard>
187    <guard-permission>Modify portal content</guard-permission>
188    <guard-expression>python:not state_change.object.isDefaultLanguage()</guard-expression>
189   </guard>
190  </transition>
191
192  <transition transition_id="modify" title="Modify content"
193              new_state="" trigger="USER" before_script=""
194              after_script="">
195   <description>This transition controls whether a user can modify a content and also provides a specific entry in status history</description>
196   <guard>
197    <guard-permission>Modify portal content</guard-permission>
198   </guard>
199   <action url="%(content_url)s/cpsdocument_edit_form"
200           category="object">action_edit</action>
201  </transition>
202
203  <transition transition_id="translate"
204              title="Add translation" new_state=""
205              trigger="USER"
206              before_script="add_language_to_proxy"
207              after_script="">
208   <guard>
209    <guard-permission>Modify portal content</guard-permission>
210   </guard>
211  </transition>
212  <transition transition_id="unlock"
213              title="Unlock content after a draft is done"
214              new_state="work" trigger="USER"
215              before_script="" after_script="">
216
217   <guard>
218   </guard>
219   <transition-behavior behavior_id="allow-checkin"/>
220  </transition>
221  <variable variable_id="action" for_catalog="False"
222            for_status="True" update_always="True">
223   <description>The last transition</description>
224   <default>
225
226    <expression>transition/getId|nothing</expression>
227   </default>
228   <guard>
229   </guard>
230  </variable>
231  <variable variable_id="actor" for_catalog="False"
232            for_status="True" update_always="True">
233   <description>The ID of the user who performed</description>
234   <default>
235
236    <expression>user/getId</expression>
237   </default>
238   <guard>
239   </guard>
240  </variable>
241  <variable variable_id="comments" for_catalog="False"
242            for_status="True" update_always="True">
243   <description>Comments about the last transition</description>
244   <default>
245
246    <expression>python:state_change.kwargs.get('comment', '')</expression>
247   </default>
248   <guard>
249   </guard>
250  </variable>
251  <variable variable_id="dest_container" for_catalog="False"
252            for_status="True" update_always="True">
253   <description>Destination container for the last paste/publish</description>
254   <default>
255
256    <expression>python:state_change.kwargs.get('dest_container', '')</expression>
257   </default>
258   <guard>
259   </guard>
260  </variable>
261  <variable variable_id="language_revs" for_catalog="False"
262            for_status="True" update_always="True">
263   <description>The language revisions of the proxy</description>
264   <default>
265
266    <expression>state_change/getLanguageRevisions</expression>
267   </default>
268   <guard>
269   </guard>
270  </variable>
271  <variable variable_id="review_history" for_catalog="False"
272            for_status="False" update_always="False">
273   <description>Provides access to workflow history</description>
274   <default>
275
276    <expression>state_change/getHistory</expression>
277   </default>
278   <guard>
279    <guard-role>Manager</guard-role>
280    <guard-role>WorkspaceManager</guard-role>
281    <guard-role>WorkspaceMember</guard-role>
282    <guard-role>WorkspaceReader</guard-role>
283   </guard>
284  </variable>
285  <variable variable_id="time" for_catalog="True"
286            for_status="True" update_always="True">
287   <description>Time of the last transition</description>
288   <default>
289
290    <expression>state_change/getDateTime</expression>
291   </default>
292   <guard>
293   </guard>
294  </variable>
295  <script script_id="add_language_to_proxy"
296          type="Script (Python)"
297          filename="workflows/workspace_content_wf/scripts/add_language_to_proxy.py"/>
298  <script script_id="delete_language_from_proxy"
299          type="Script (Python)"
300          filename="workflows/workspace_content_wf/scripts/delete_language_from_proxy.py"/>
301  <script script_id="unlock_locked_before_abandon"
302          type="Script (Python)"
303          filename="workflows/workspace_content_wf/scripts/unlock_locked_before_abandon.py"/>
304 </cps-workflow>
Note: See TracBrowser for help on using the browser.