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