#3774
[auf_rh_dae.git] / project / dae / workflow.py
index 9b0ba68..d616d86 100644 (file)
@@ -12,6 +12,7 @@ dae_groupes = (
     groups.DRH_NIVEAU_2,
     groups.ACCIOR,
     groups.ABF,
+    groups.FINANCE,
     groups.HAUTE_DIRECTION,
     groups.SERVICE_UTILISATEURS,
 )
@@ -26,6 +27,7 @@ POSTE_ETAT_DRH_2 = 'DRH_2'
 POSTE_ETAT_DEMANDE_MODIF = 'DEMANDE_MODIF'
 POSTE_ETAT_ACCIOR = 'ACCIOR'
 POSTE_ETAT_ABF = 'ABF'
+POSTE_ETAT_FINANCE = 'FINANCE'
 POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION'
 POSTE_ETAT_DEMANDE_JUSTIF = 'DEMANDE_JUSTIF'
 POSTE_ETAT_REGION_FINALISATION = 'REGION_FINALISATION'
@@ -43,6 +45,7 @@ POSTE_ACTION_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
 POSTE_ACTION_RETOUR_DEMANDE_MODIF = 'RETOUR_DEMANDE_MODIF'
 POSTE_ACTION_ENVOYER_ACCIOR = POSTE_ETAT_ACCIOR
 POSTE_ACTION_ENVOYER_ABF = POSTE_ETAT_ABF
+POSTE_ACTION_ENVOYER_FINANCE = POSTE_ETAT_FINANCE
 POSTE_ACTION_ENVOYER_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
 POSTE_ACTION_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
 POSTE_ACTION_RETOUR_DEMANDE_JUSTIF = 'RETOUR_DEMANDE_JUSTIF'
@@ -61,6 +64,7 @@ POSTE_ETATS = {
     POSTE_ETAT_DEMANDE_MODIF: u"Demande de modification",
     POSTE_ETAT_ACCIOR: u"ACCIOR",
     POSTE_ETAT_ABF: u"ABF",
+    POSTE_ETAT_FINANCE: u"Finance",
     POSTE_ETAT_HAUTE_DIRECTION: u"Validation : Secrétaire général / Recteur",
     POSTE_ETAT_DEMANDE_JUSTIF: u"Demande de justification",
     POSTE_ETAT_REGION_FINALISATION: u'Retour à la région',
@@ -78,6 +82,7 @@ POSTE_ETATS_BOUTONS = {
     POSTE_ETAT_DEMANDE_MODIF: u"Envoyer une demande de modification",
     POSTE_ETAT_ACCIOR: u"Envoyer à l'ACCIOR",
     POSTE_ETAT_ABF: u"Envoyer à l'ABF",
+    POSTE_ETAT_FINANCE: u"Envoyer aux finances",
     POSTE_ETAT_HAUTE_DIRECTION: u"Envoyer à la haute direction",
     POSTE_ETAT_DEMANDE_JUSTIF: u"Envoyer une demande de justification",
     POSTE_ETAT_REGION_FINALISATION: u"Retourner à la région pour finalisation",
@@ -140,9 +145,14 @@ POSTE_ACTIONS = {
         'etat_initial': (POSTE_ETAT_ACCIOR, POSTE_ETAT_DRH_2),
         'etat_final': POSTE_ETAT_ABF,
     },
+    POSTE_ACTION_ENVOYER_FINANCE: {
+        'nom': u'Envoyer',
+        'etat_initial': (POSTE_ETAT_ABF, ),
+        'etat_final': POSTE_ETAT_FINANCE,
+    },
     POSTE_ACTION_ENVOYER_HAUTE_DIRECTION: {
         'nom': u'Envoyer',
-        'etat_initial': (POSTE_ETAT_ABF,),
+        'etat_initial': (POSTE_ETAT_FINANCE,),
         'etat_final': POSTE_ETAT_HAUTE_DIRECTION,
     },
     POSTE_ACTION_DEMANDE_JUSTIF: {
@@ -225,11 +235,16 @@ class PosteWorkflow(WorkflowMixin):
         return groups.ACCIOR in user_groups or groups.DRH_NIVEAU_1 in user_groups \
                 or groups.DRH_NIVEAU_2 in user_groups
 
-    def acces_haute_direction(self, action, request):
+    def acces_finance(self, action, request):
         user_groups = [g.name for g in request.user.groups.all()]
         return groups.ABF in user_groups or groups.DRH_NIVEAU_1 in user_groups \
                 or groups.DRH_NIVEAU_2 in user_groups
 
+    def acces_haute_direction(self, action, request):
+        user_groups = [g.name for g in request.user.groups.all()]
+        return groups.FINANCE in user_groups or groups.DRH_NIVEAU_1 in user_groups \
+                or groups.DRH_NIVEAU_2 in user_groups
+
     def acces_region_finalisation(self, action, request):
         user_groups = [g.name for g in request.user.groups.all()]
         return groups.HAUTE_DIRECTION in user_groups or groups.DRH_NIVEAU_1 in user_groups \
@@ -271,6 +286,7 @@ DOSSIER_ETAT_DRH_2 = POSTE_ETAT_DRH_2
 DOSSIER_ETAT_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
 DOSSIER_ETAT_ACCIOR = POSTE_ETAT_ACCIOR
 DOSSIER_ETAT_ABF = POSTE_ETAT_ABF
+DOSSIER_ETAT_FINANCE = POSTE_ETAT_FINANCE
 DOSSIER_ETAT_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
 DOSSIER_ETAT_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
 DOSSIER_ETAT_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION
@@ -309,6 +325,7 @@ MAP_GROUPE_ETATS_A_FAIRE = {
     groups.DRH_NIVEAU_2: (POSTE_ETAT_DRH_2, DOSSIER_ETAT_DRH_2),
     groups.ACCIOR: (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR),
     groups.ABF: (POSTE_ETAT_ABF, DOSSIER_ETAT_ABF),
+    groups.FINANCE: (POSTE_ETAT_FINANCE, DOSSIER_ETAT_FINANCE),
     groups.HAUTE_DIRECTION: (
         POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION
     ),