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">
8 <state state_id=
"m_initial" title=
"">
9 <exit-transition transition_id=
"create"/>
10 <exit-transition transition_id=
"silent_register"/>
12 <state state_id=
"m_pending" title=
"">
13 <exit-transition transition_id=
"register"/>
14 <exit-transition transition_id=
"reject"/>
16 <state state_id=
"m_registered" title=
"">
18 <state state_id=
"m_rejected" title=
"">
20 <transition transition_id=
"create" title=
""
21 new_state=
"m_pending" trigger=
"AUTOMATIC"
22 before_script=
"" after_script=
"">
25 <guard-expression>python:state_change.getPortal().portal_membership.isAnonymousUser()
</guard-expression>
28 <transition transition_id=
"register"
29 title=
"Register member"
30 new_state=
"m_registered" trigger=
"USER"
31 before_script=
"before_register"
32 after_script=
"sendNotificationEmail">
35 <guard-permission>Manage Groups
</guard-permission>
36 <guard-permission>Set Member Properties
</guard-permission>
39 <transition transition_id=
"reject"
40 title=
"Reviewer rejects registration"
41 new_state=
"" trigger=
"USER" before_script=
""
42 after_script=
"after_reject">
45 <guard-permission>Manage Groups
</guard-permission>
46 <guard-permission>Set Member Properties
</guard-permission>
47 <guard-permission>Remove member
</guard-permission>
50 <transition transition_id=
"silent_register" title=
""
51 new_state=
"m_registered" trigger=
"AUTOMATIC"
52 before_script=
"before_register" after_script=
"">
55 <guard-permission>Manage Groups
</guard-permission>
56 <guard-permission>Set Member Properties
</guard-permission>
59 <worklist worklist_id=
"reviewer_queue" title=
"">
60 <description>Reviewer tasks
</description>
61 <action url=
"%(portal_url)s/pending_members"
62 category=
"global">Membres en attente (%(count)d)
</action>
64 <guard-permission>Set Member Properties
</guard-permission>
66 <match name=
"review_state" values=
"m_pending"/>
68 <variable variable_id=
"action" for_catalog=
"False"
69 for_status=
"True" update_always=
"True">
70 <description>The last transition
</description>
73 <expression>transition/getId|nothing
</expression>
78 <variable variable_id=
"actor" for_catalog=
"False"
79 for_status=
"True" update_always=
"True">
80 <description>The ID of the user who performed the last transition
</description>
83 <expression>user/getId
</expression>
88 <variable variable_id=
"comments" for_catalog=
"False"
89 for_status=
"True" update_always=
"True">
90 <description>Comments about the last transition
</description>
93 <expression>python:state_change.kwargs.get('comment', '')
</expression>
98 <variable variable_id=
"review_history" for_catalog=
"False"
99 for_status=
"False" update_always=
"False">
100 <description>Provides access to workflow history
</description>
103 <expression>state_change/getHistory
</expression>
106 <guard-permission>Request review
</guard-permission>
107 <guard-permission>Review portal content
</guard-permission>
110 <variable variable_id=
"time" for_catalog=
"False"
111 for_status=
"True" update_always=
"True">
112 <description>Time of the last transition
</description>
115 <expression>state_change/getDateTime
</expression>
120 <script script_id=
"after_reject" type=
"Script (Python)"
121 filename=
"workflows/member_workflow/scripts/after_reject.py"
122 module=
"" function=
""/>
123 <script script_id=
"before_register" type=
"Script (Python)"
124 filename=
"workflows/member_workflow/scripts/before_register.py"
125 module=
"" function=
""/>
126 <script script_id=
"sendNotificationEmail"
127 type=
"Script (Python)"
128 filename=
"workflows/member_workflow/scripts/sendNotificationEmail.py"
129 module=
"" function=
""/>