Commit | Line | Data |
---|---|---|
8fa94e8b OL |
1 | # -*- encoding: utf-8 -*- |
2 | ||
3 | from auf.django.workflow.models import WorkflowMixin | |
b31ce2d7 EMS |
4 | |
5 | from project.dae.utils import \ | |
6 | is_user_dans_services_centraux, is_user_dans_region | |
7 | from project.rh.groups import \ | |
8 | grp_drh, grp_drh2, grp_administrateurs, grp_service_utilisateurs, \ | |
9 | grp_correspondants_rh, grp_directeurs_bureau, grp_accior, grp_abf, \ | |
10 | grp_haute_direction | |
8fa94e8b | 11 | |
4ba84959 EMS |
12 | dae_groupes = ( |
13 | grp_correspondants_rh, | |
14 | grp_administrateurs, | |
15 | grp_directeurs_bureau, | |
16 | grp_drh, | |
17 | grp_drh2, | |
18 | grp_accior, | |
19 | grp_abf, | |
20 | grp_haute_direction, | |
21 | grp_service_utilisateurs, | |
22 | ) | |
23 | ||
8fa94e8b OL |
24 | # codes états |
25 | POSTE_ETAT_BROUILLON = 'BROUILLON' | |
1b217058 | 26 | POSTE_ETAT_ADMINISTRATEUR = 'ADMINISTRATEUR' |
d8cfc3d5 OL |
27 | POSTE_ETAT_DIRECTEUR_BUREAU = 'DIRECTEUR_BUREAU' |
28 | POSTE_ETAT_SERVICE_UTILISATEURS = 'SRV_UTILISATEURS' | |
1b217058 | 29 | POSTE_ETAT_DRH_CONTROLE = 'DRH_CONTROLE' |
5aaaef6b | 30 | POSTE_ETAT_DRH_2 = 'DRH_2' |
bbb2458d | 31 | POSTE_ETAT_DEMANDE_MODIF = 'DEMANDE_MODIF' |
d8cfc3d5 | 32 | POSTE_ETAT_ACCIOR = 'ACCIOR' |
9a62bc55 | 33 | POSTE_ETAT_ABF = 'ABF' |
1b217058 | 34 | POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION' |
bbb2458d | 35 | POSTE_ETAT_DEMANDE_JUSTIF = 'DEMANDE_JUSTIF' |
9536ea21 | 36 | POSTE_ETAT_REGION_FINALISATION = 'REGION_FINALISATION' |
1b217058 | 37 | POSTE_ETAT_DRH_FINALISATION = 'DRH_FINALISATION' |
9536ea21 | 38 | POSTE_ETAT_FINALISE = 'FINALISE' |
1b217058 OL |
39 | |
40 | #codes actions | |
41 | POSTE_ACTION_ENVOYER_BROUILLON = POSTE_ETAT_BROUILLON | |
1b217058 | 42 | POSTE_ACTION_ENVOYER_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR |
d8cfc3d5 OL |
43 | POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU |
44 | POSTE_ACTION_ENVOYER_SRV_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS | |
1b217058 | 45 | POSTE_ACTION_ENVOYER_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE |
5aaaef6b | 46 | POSTE_ACTION_ENVOYER_DRH_2 = POSTE_ETAT_DRH_2 |
bbb2458d EMS |
47 | POSTE_ACTION_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF |
48 | POSTE_ACTION_RETOUR_DEMANDE_MODIF = 'RETOUR_DEMANDE_MODIF' | |
d8cfc3d5 | 49 | POSTE_ACTION_ENVOYER_ACCIOR = POSTE_ETAT_ACCIOR |
9a62bc55 | 50 | POSTE_ACTION_ENVOYER_ABF = POSTE_ETAT_ABF |
1b217058 | 51 | POSTE_ACTION_ENVOYER_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION |
bbb2458d EMS |
52 | POSTE_ACTION_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF |
53 | POSTE_ACTION_RETOUR_DEMANDE_JUSTIF = 'RETOUR_DEMANDE_JUSTIF' | |
9536ea21 | 54 | POSTE_ACTION_ENVOYER_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION |
1b217058 | 55 | POSTE_ACTION_ENVOYER_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION |
9536ea21 | 56 | POSTE_ACTION_FINALISER = 'FINALISER' |
8fa94e8b OL |
57 | |
58 | #libellés états | |
59 | POSTE_ETATS = { | |
b31ce2d7 EMS |
60 | POSTE_ETAT_BROUILLON: u"En rédaction", |
61 | POSTE_ETAT_ADMINISTRATEUR: u"Validation de l'administrateur", | |
62 | POSTE_ETAT_DIRECTEUR_BUREAU: u"Directeur de bureau", | |
63 | POSTE_ETAT_SERVICE_UTILISATEURS: u"Service utilisateurs", | |
64 | POSTE_ETAT_DRH_CONTROLE: u"Validation DRH", | |
65 | POSTE_ETAT_DRH_2: u"Validation DRH 2", | |
66 | POSTE_ETAT_DEMANDE_MODIF: u"Demande de modification", | |
67 | POSTE_ETAT_ACCIOR: u"ACCIOR", | |
68 | POSTE_ETAT_ABF: u"ABF", | |
69 | POSTE_ETAT_HAUTE_DIRECTION: u"Validation : Secrétaire général / Recteur", | |
70 | POSTE_ETAT_DEMANDE_JUSTIF: u"Demande de justification", | |
71 | POSTE_ETAT_REGION_FINALISATION: u'Retour à la région', | |
72 | POSTE_ETAT_DRH_FINALISATION: u'Retour à la DRH', | |
73 | POSTE_ETAT_FINALISE: u'Finalisée' | |
8fa94e8b OL |
74 | } |
75 | ||
56589624 OL |
76 | #libellés états pour boutons |
77 | POSTE_ETATS_BOUTONS = { | |
b31ce2d7 EMS |
78 | POSTE_ETAT_DIRECTEUR_BUREAU: u"Envoyer au directeur de bureau", |
79 | POSTE_ETAT_SERVICE_UTILISATEURS: u"Envoyer au service utilisateurs", | |
80 | POSTE_ETAT_ADMINISTRATEUR: u"Envoyer à l'adminstrateur", | |
81 | POSTE_ETAT_DRH_CONTROLE: u"Envoyer à la DRH (validation)", | |
82 | POSTE_ETAT_DRH_2: u"Envoyer à DRH 2", | |
83 | POSTE_ETAT_DEMANDE_MODIF: u"Envoyer une demande de modification", | |
84 | POSTE_ETAT_ACCIOR: u"Envoyer à l'ACCIOR", | |
85 | POSTE_ETAT_ABF: u"Envoyer à l'ABF", | |
86 | POSTE_ETAT_HAUTE_DIRECTION: u"Envoyer à la haute direction", | |
87 | POSTE_ETAT_DEMANDE_JUSTIF: u"Envoyer une demande de justification", | |
88 | POSTE_ETAT_REGION_FINALISATION: u"Retourner à la région pour finalisation", | |
89 | POSTE_ETAT_DRH_FINALISATION: u'Retourner à la DRH pour finalisation', | |
90 | POSTE_ETAT_FINALISE: u'Finaliser' | |
56589624 OL |
91 | } |
92 | ||
8fa94e8b OL |
93 | # définition du worflow séquentiel |
94 | POSTE_ACTIONS = { | |
b31ce2d7 EMS |
95 | POSTE_ACTION_ENVOYER_BROUILLON: { |
96 | 'nom': u'Créer', | |
97 | 'etat_initial': None, | |
98 | 'etat_final': POSTE_ETAT_BROUILLON, | |
8fa94e8b | 99 | }, |
b31ce2d7 EMS |
100 | POSTE_ACTION_ENVOYER_ADMINISTRATEUR: { |
101 | 'nom': u'Envoyer', | |
102 | 'etat_initial': (POSTE_ETAT_BROUILLON,), | |
103 | 'etat_final': POSTE_ETAT_ADMINISTRATEUR, | |
1b217058 | 104 | }, |
b31ce2d7 EMS |
105 | POSTE_ACTION_ENVOYER_SRV_UTILISATEURS: { |
106 | 'nom': u'Envoyer', | |
107 | 'etat_initial': (POSTE_ETAT_ADMINISTRATEUR,), | |
108 | 'etat_final': POSTE_ETAT_SERVICE_UTILISATEURS, | |
d8cfc3d5 | 109 | }, |
b31ce2d7 EMS |
110 | POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU: { |
111 | 'nom': u'Envoyer', | |
112 | 'etat_initial': (POSTE_ETAT_ADMINISTRATEUR,), | |
113 | 'etat_final': POSTE_ETAT_DIRECTEUR_BUREAU, | |
d8cfc3d5 | 114 | }, |
b31ce2d7 EMS |
115 | POSTE_ACTION_ENVOYER_DRH_CONTROLE: { |
116 | 'nom': u'Envoyer', | |
117 | 'etat_initial': ( | |
118 | POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DIRECTEUR_BUREAU, | |
119 | POSTE_ETAT_SERVICE_UTILISATEURS | |
120 | ), | |
121 | 'etat_final': POSTE_ETAT_DRH_CONTROLE, | |
1b217058 | 122 | }, |
b31ce2d7 EMS |
123 | POSTE_ACTION_ENVOYER_DRH_2: { |
124 | 'nom': u'Envoyer', | |
125 | 'etat_initial': (POSTE_ETAT_DRH_CONTROLE,), | |
126 | 'etat_final': POSTE_ETAT_DRH_2, | |
5aaaef6b | 127 | }, |
b31ce2d7 EMS |
128 | POSTE_ACTION_DEMANDE_MODIF: { |
129 | 'nom': u'Envoyer', | |
130 | 'etat_initial': (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2), | |
bbb2458d EMS |
131 | 'etat_final': POSTE_ETAT_DEMANDE_MODIF, |
132 | }, | |
b31ce2d7 | 133 | POSTE_ACTION_RETOUR_DEMANDE_MODIF: { |
bbb2458d EMS |
134 | 'nom': u'Retourner', |
135 | 'etat_initial': (POSTE_ETAT_DEMANDE_MODIF,), | |
136 | 'etat_final': POSTE_ETAT_DRH_CONTROLE, | |
137 | }, | |
b31ce2d7 EMS |
138 | POSTE_ACTION_ENVOYER_ACCIOR: { |
139 | 'nom': u'Envoyer', | |
140 | 'etat_initial': (POSTE_ETAT_DRH_2,), | |
141 | 'etat_final': POSTE_ETAT_ACCIOR, | |
d8cfc3d5 | 142 | }, |
b31ce2d7 EMS |
143 | POSTE_ACTION_ENVOYER_ABF: { |
144 | 'nom': u'Envoyer', | |
145 | 'etat_initial': (POSTE_ETAT_ACCIOR,), | |
146 | 'etat_final': POSTE_ETAT_ABF, | |
1b217058 | 147 | }, |
b31ce2d7 EMS |
148 | POSTE_ACTION_ENVOYER_HAUTE_DIRECTION: { |
149 | 'nom': u'Envoyer', | |
150 | 'etat_initial': (POSTE_ETAT_ABF,), | |
151 | 'etat_final': POSTE_ETAT_HAUTE_DIRECTION, | |
1b217058 | 152 | }, |
b31ce2d7 EMS |
153 | POSTE_ACTION_DEMANDE_JUSTIF: { |
154 | 'nom': u'Envoyer', | |
155 | 'etat_initial': (POSTE_ETAT_HAUTE_DIRECTION,), | |
bbb2458d EMS |
156 | 'etat_final': POSTE_ETAT_DEMANDE_JUSTIF, |
157 | }, | |
b31ce2d7 EMS |
158 | POSTE_ACTION_RETOUR_DEMANDE_JUSTIF: { |
159 | 'nom': u'Envoyer', | |
160 | 'etat_initial': (POSTE_ETAT_DEMANDE_JUSTIF,), | |
bbb2458d EMS |
161 | 'etat_final': POSTE_ETAT_HAUTE_DIRECTION, |
162 | }, | |
b31ce2d7 EMS |
163 | POSTE_ACTION_ENVOYER_REGION_FINALISATION: { |
164 | 'nom': u'Envoyer', | |
165 | 'etat_initial': (POSTE_ETAT_HAUTE_DIRECTION,), | |
166 | 'etat_final': POSTE_ETAT_REGION_FINALISATION | |
9536ea21 | 167 | }, |
b31ce2d7 EMS |
168 | POSTE_ACTION_ENVOYER_DRH_FINALISATION: { |
169 | 'nom': u'Envoyer', | |
170 | 'etat_initial': (POSTE_ETAT_REGION_FINALISATION,), | |
171 | 'etat_final': POSTE_ETAT_DRH_FINALISATION, | |
8fa94e8b | 172 | }, |
b31ce2d7 EMS |
173 | POSTE_ACTION_FINALISER: { |
174 | 'nom': u'Finaliser', | |
175 | 'etat_initial': (POSTE_ETAT_DRH_FINALISATION,), | |
176 | 'etat_final': POSTE_ETAT_FINALISE | |
9536ea21 | 177 | }, |
8fa94e8b OL |
178 | } |
179 | ||
56589624 | 180 | |
8fa94e8b OL |
181 | class PosteWorkflow(WorkflowMixin): |
182 | etat_initial = POSTE_ETAT_BROUILLON | |
183 | etats = POSTE_ETATS | |
184 | actions = POSTE_ACTIONS | |
185 | ||
186 | class Meta: | |
187 | abstract = True | |
188 | ||
d8cfc3d5 | 189 | def acces_directeur_bureau(self, action, request): |
2da4acc0 | 190 | user_groups = request.user.groups.all() |
5aaaef6b | 191 | return grp_drh in user_groups or grp_drh2 in user_groups or \ |
b31ce2d7 | 192 | (is_user_dans_services_centraux(request.user) and |
5aaaef6b | 193 | grp_administrateurs in user_groups) |
1b217058 OL |
194 | |
195 | def acces_administrateur(self, action, request): | |
5aaaef6b | 196 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
197 | return grp_correspondants_rh in user_groups or grp_drh in user_groups \ |
198 | or grp_drh2 in user_groups | |
1b217058 OL |
199 | |
200 | def acces_drh_controle(self, action, request): | |
5aaaef6b EMS |
201 | user_groups = request.user.groups.all() |
202 | return grp_directeurs_bureau in user_groups or \ | |
203 | grp_service_utilisateurs in user_groups or \ | |
204 | grp_drh in user_groups or grp_drh2 in user_groups or \ | |
205 | (grp_administrateurs in user_groups and | |
206 | (action == POSTE_ACTION_RETOUR_DEMANDE_MODIF or | |
207 | is_user_dans_region(request.user))) | |
208 | ||
209 | def acces_drh_2(self, action, request): | |
210 | user_groups = request.user.groups.all() | |
211 | return grp_drh in user_groups | |
bbb2458d EMS |
212 | |
213 | def acces_demande_modif(self, action, request): | |
5aaaef6b EMS |
214 | user_groups = request.user.groups.all() |
215 | return grp_drh in user_groups or grp_drh2 in user_groups | |
1b217058 | 216 | |
d8cfc3d5 OL |
217 | def acces_srv_utilisateurs(self, action, request): |
218 | if not is_user_dans_services_centraux(request.user): | |
219 | return False | |
5aaaef6b | 220 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
221 | return grp_administrateurs in user_groups or grp_drh in user_groups \ |
222 | or grp_drh2 in user_groups | |
d8cfc3d5 | 223 | |
d8cfc3d5 | 224 | def acces_accior(self, action, request): |
5aaaef6b EMS |
225 | user_groups = request.user.groups.all() |
226 | return grp_drh in user_groups or grp_drh2 in user_groups | |
1b217058 | 227 | |
9a62bc55 | 228 | def acces_abf(self, action, request): |
5aaaef6b | 229 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
230 | return grp_accior in user_groups or grp_drh in user_groups \ |
231 | or grp_drh2 in user_groups | |
d8cfc3d5 | 232 | |
1b217058 | 233 | def acces_haute_direction(self, action, request): |
5aaaef6b | 234 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
235 | return grp_abf in user_groups or grp_drh in user_groups \ |
236 | or grp_drh2 in user_groups | |
1b217058 | 237 | |
9536ea21 | 238 | def acces_region_finalisation(self, action, request): |
5aaaef6b | 239 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
240 | return grp_haute_direction in user_groups or grp_drh in user_groups \ |
241 | or grp_drh2 in user_groups | |
9536ea21 | 242 | |
1b217058 | 243 | def acces_drh_finalisation(self, action, request): |
5aaaef6b | 244 | user_groups = request.user.groups.all() |
25524bf7 EMS |
245 | return grp_administrateurs in user_groups or \ |
246 | grp_correspondants_rh in user_groups or \ | |
247 | grp_drh in user_groups or \ | |
248 | grp_drh2 in user_groups | |
1b217058 | 249 | |
bbb2458d | 250 | def acces_demande_justif(self, action, request): |
5aaaef6b | 251 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
252 | return grp_haute_direction in user_groups or grp_drh in user_groups \ |
253 | or grp_drh2 in user_groups | |
bbb2458d EMS |
254 | |
255 | def acces_retour_demande_modif(self, action, request): | |
5aaaef6b | 256 | user_groups = request.user.groups.all() |
b31ce2d7 EMS |
257 | return grp_administrateurs in user_groups or grp_drh in user_groups \ |
258 | or grp_drh2 in user_groups | |
bbb2458d EMS |
259 | |
260 | def acces_retour_demande_justif(self, action, request): | |
5aaaef6b EMS |
261 | user_groups = request.user.groups.all() |
262 | return grp_drh in user_groups or grp_drh2 in user_groups | |
bbb2458d | 263 | |
9536ea21 | 264 | def acces_finaliser(self, action, request): |
5aaaef6b EMS |
265 | user_groups = request.user.groups.all() |
266 | return grp_drh in user_groups or grp_drh2 in user_groups | |
9536ea21 | 267 | |
1b217058 | 268 | |
515124ec OL |
269 | #codes actions |
270 | DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON | |
515124ec | 271 | DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR |
d8cfc3d5 OL |
272 | DOSSIER_ETAT_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU |
273 | DOSSIER_ETAT_SERVICE_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS | |
515124ec | 274 | DOSSIER_ETAT_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE |
5aaaef6b | 275 | DOSSIER_ETAT_DRH_2 = POSTE_ETAT_DRH_2 |
bbb2458d | 276 | DOSSIER_ETAT_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF |
d8cfc3d5 | 277 | DOSSIER_ETAT_ACCIOR = POSTE_ETAT_ACCIOR |
9a62bc55 | 278 | DOSSIER_ETAT_ABF = POSTE_ETAT_ABF |
515124ec | 279 | DOSSIER_ETAT_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION |
bbb2458d | 280 | DOSSIER_ETAT_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF |
9536ea21 | 281 | DOSSIER_ETAT_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION |
515124ec | 282 | DOSSIER_ETAT_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION |
9536ea21 | 283 | DOSSIER_ETAT_FINALISE = POSTE_ETAT_FINALISE |
afc204bf | 284 | |
b31ce2d7 | 285 | |
afc204bf OL |
286 | class DossierWorkflow(PosteWorkflow): |
287 | ||
288 | class Meta: | |
289 | abstract = True | |
515124ec | 290 | |
515124ec OL |
291 | |
292 | MAP_GROUPE_ETATS_A_FAIRE = { | |
b31ce2d7 EMS |
293 | grp_correspondants_rh: ( |
294 | POSTE_ETAT_BROUILLON, DOSSIER_ETAT_BROUILLON, | |
295 | POSTE_ETAT_REGION_FINALISATION, DOSSIER_ETAT_REGION_FINALISATION | |
296 | ), | |
297 | grp_service_utilisateurs: ( | |
298 | POSTE_ETAT_SERVICE_UTILISATEURS, | |
299 | DOSSIER_ETAT_SERVICE_UTILISATEURS | |
300 | ), | |
301 | grp_administrateurs: ( | |
302 | POSTE_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_ADMINISTRATEUR, | |
303 | POSTE_ETAT_DEMANDE_MODIF, DOSSIER_ETAT_DEMANDE_MODIF, | |
304 | POSTE_ETAT_REGION_FINALISATION, DOSSIER_ETAT_REGION_FINALISATION, | |
305 | ), | |
306 | grp_directeurs_bureau: ( | |
307 | POSTE_ETAT_DIRECTEUR_BUREAU, DOSSIER_ETAT_DIRECTEUR_BUREAU | |
308 | ), | |
309 | grp_drh: ( | |
310 | POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_FINALISATION, | |
311 | DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DRH_FINALISATION, | |
312 | POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_DEMANDE_JUSTIF | |
313 | ), | |
314 | grp_drh2: (POSTE_ETAT_DRH_2, DOSSIER_ETAT_DRH_2), | |
315 | grp_accior: (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR), | |
316 | grp_abf: (POSTE_ETAT_ABF, DOSSIER_ETAT_ABF), | |
317 | grp_haute_direction: ( | |
318 | POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION | |
319 | ), | |
515124ec | 320 | } |
286d0aa9 OL |
321 | |
322 | ||
b31ce2d7 EMS |
323 | ETATS_EDITABLE = ( |
324 | POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR, | |
325 | POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2, POSTE_ETAT_DIRECTEUR_BUREAU, | |
326 | POSTE_ETAT_SERVICE_UTILISATEURS, POSTE_ETAT_DEMANDE_MODIF, | |
327 | POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_BROUILLON, | |
328 | DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE, | |
329 | DOSSIER_ETAT_DRH_2, DOSSIER_ETAT_DIRECTEUR_BUREAU, | |
330 | DOSSIER_ETAT_SERVICE_UTILISATEURS, DOSSIER_ETAT_DEMANDE_MODIF, | |
331 | DOSSIER_ETAT_DEMANDE_JUSTIF, | |
286d0aa9 OL |
332 | ) |
333 | ||
b31ce2d7 EMS |
334 | ETATS_VALIDE = ( |
335 | DOSSIER_ETAT_REGION_FINALISATION, DOSSIER_ETAT_DRH_FINALISATION, | |
336 | DOSSIER_ETAT_FINALISE | |
337 | ) |