1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <dc-workflow workflow_id=
"member_workflow"
3 title=
"Plinn member registration workflow"
4 description=
"" state_variable=
"review_state"
5 initial_state=
"m_initial"
6 manager_bypass=
"False">
7 <state state_id=
"m_initial" title=
"">
8 <exit-transition transition_id=
"create"/>
9 <exit-transition transition_id=
"silent_register"/>
11 <state state_id=
"m_pending" title=
"">
12 <exit-transition transition_id=
"register"/>
13 <exit-transition transition_id=
"reject"/>
15 <state state_id=
"m_registered" title=
"">
17 <state state_id=
"m_rejected" title=
"">
19 <transition transition_id=
"create" title=
""
20 new_state=
"m_pending" trigger=
"AUTOMATIC"
21 before_script=
"" after_script=
"">
24 <guard-expression>python:state_change.getPortal().portal_membership.isAnonymousUser()
</guard-expression>
27 <transition transition_id=
"register"
28 title=
"Register member"
29 new_state=
"m_registered" trigger=
"USER"
30 before_script=
"before_register"
31 after_script=
"sendNotificationEmail">
34 <guard-permission>Manage Groups
</guard-permission>
35 <guard-permission>Set Member Properties
</guard-permission>
38 <transition transition_id=
"reject"
39 title=
"Reviewer rejects registration"
40 new_state=
"" trigger=
"USER" before_script=
""
41 after_script=
"after_reject">
44 <guard-permission>Manage Groups
</guard-permission>
45 <guard-permission>Set Member Properties
</guard-permission>
46 <guard-permission>Remove member
</guard-permission>
49 <transition transition_id=
"silent_register" title=
""
50 new_state=
"m_registered" trigger=
"AUTOMATIC"
51 before_script=
"before_register" after_script=
"">
54 <guard-permission>Manage Groups
</guard-permission>
55 <guard-permission>Set Member Properties
</guard-permission>
58 <worklist worklist_id=
"reviewer_queue" title=
"">
59 <description>Reviewer tasks
</description>
60 <action url=
"%(portal_url)s/pending_members"
61 category=
"global" icon=
"">Membres en attente (%(count)d)
</action>
63 <guard-permission>Set Member Properties
</guard-permission>
65 <match name=
"review_state" values=
"m_pending"/>
67 <variable variable_id=
"action" for_catalog=
"False"
68 for_status=
"True" update_always=
"True">
69 <description>The last transition
</description>
72 <expression>transition/getId|nothing
</expression>
77 <variable variable_id=
"actor" for_catalog=
"False"
78 for_status=
"True" update_always=
"True">
79 <description>The ID of the user who performed the last transition
</description>
82 <expression>user/getId
</expression>
87 <variable variable_id=
"comments" for_catalog=
"False"
88 for_status=
"True" update_always=
"True">
89 <description>Comments about the last transition
</description>
92 <expression>python:state_change.kwargs.get('comment', '')
</expression>
97 <variable variable_id=
"review_history" for_catalog=
"False"
98 for_status=
"False" update_always=
"False">
99 <description>Provides access to workflow history
</description>
102 <expression>state_change/getHistory
</expression>
105 <guard-permission>Request review
</guard-permission>
106 <guard-permission>Review portal content
</guard-permission>
109 <variable variable_id=
"time" for_catalog=
"False"
110 for_status=
"True" update_always=
"True">
111 <description>Time of the last transition
</description>
114 <expression>state_change/getDateTime
</expression>
119 <script script_id=
"after_reject" type=
"Script (Python)"
120 filename=
"workflows/member_workflow/scripts/after_reject.py"
121 module=
"" function=
""/>
122 <script script_id=
"before_register" type=
"Script (Python)"
123 filename=
"workflows/member_workflow/scripts/before_register.py"
124 module=
"" function=
""/>
125 <script script_id=
"sendNotificationEmail"
126 type=
"Script (Python)"
127 filename=
"workflows/member_workflow/scripts/sendNotificationEmail.py"
128 module=
"" function=
""/>