workflow global supprimé (pertinent que pour DAE)
authorDavin Baragiotta <davin.baragiotta@auf.org>
Wed, 30 May 2012 20:33:10 +0000 (16:33 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Wed, 30 May 2012 20:33:10 +0000 (16:33 -0400)
project/rh/managers.py
project/workflow.py [deleted file]

index aea628e..6eaceaa 100644 (file)
@@ -8,7 +8,7 @@ from django.db.models import Q
 from auf.django.metadata.managers import NoDeleteManager
 
 from project.utils import get_employe_from_user
-from project.workflow import dae_groupes, \
+from project.rh.groups import dae_groupes, \
                      grp_administrateurs, \
                      grp_directeurs_bureau, \
                      grp_drh, \
diff --git a/project/workflow.py b/project/workflow.py
deleted file mode 100644 (file)
index 22a2bfb..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-# -*- encoding: utf-8 -*-
-
-from django.contrib.auth.models import Group
-from auf.django.workflow.models import WorkflowMixin
-from project.utils import is_user_dans_services_centraux, is_user_dans_region
-
-def safe_create_groupe(name):
-    """
-    Création d'un groupe prédéfini. Retourne None, quand la création
-    ne peut se faire. (C'est le cas au syncdb, quand la table de groupe
-    n'a pas été crée encore).
-    """
-    try:
-        grp, created = Group.objects.get_or_create(name=name)
-    except:
-        return None
-    return grp
-
-# Groupes impliqués dans le Worflow
-grp_correspondants_rh = safe_create_groupe(name='Correspondants RH')
-grp_administrateurs = safe_create_groupe(name='Administrateurs')
-grp_directeurs_bureau = safe_create_groupe(name='Directeurs de bureau')
-grp_drh = safe_create_groupe(name='DRH')
-grp_drh2 = safe_create_groupe(name='DRH-2')
-grp_accior = safe_create_groupe(name='ACCIOR')
-grp_abf = safe_create_groupe(name='ABF')
-grp_haute_direction = safe_create_groupe(name='Haute direction')
-grp_service_utilisateurs = safe_create_groupe(name='Service utilisateurs')
-
-dae_groupes = (
-    grp_correspondants_rh,
-    grp_administrateurs,
-    grp_directeurs_bureau,
-    grp_drh,
-    grp_drh2,
-    grp_accior,
-    grp_abf,
-    grp_haute_direction,
-    grp_service_utilisateurs,
-)
-
-# codes états
-POSTE_ETAT_BROUILLON = 'BROUILLON'
-POSTE_ETAT_ADMINISTRATEUR = 'ADMINISTRATEUR'
-POSTE_ETAT_DIRECTEUR_BUREAU = 'DIRECTEUR_BUREAU'
-POSTE_ETAT_SERVICE_UTILISATEURS = 'SRV_UTILISATEURS'
-POSTE_ETAT_DRH_CONTROLE = 'DRH_CONTROLE'
-POSTE_ETAT_DRH_2 = 'DRH_2'
-POSTE_ETAT_DEMANDE_MODIF = 'DEMANDE_MODIF'
-POSTE_ETAT_ACCIOR = 'ACCIOR'
-POSTE_ETAT_ABF = 'ABF'
-POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION'
-POSTE_ETAT_DEMANDE_JUSTIF = 'DEMANDE_JUSTIF'
-POSTE_ETAT_REGION_FINALISATION = 'REGION_FINALISATION'
-POSTE_ETAT_DRH_FINALISATION = 'DRH_FINALISATION'
-POSTE_ETAT_FINALISE = 'FINALISE'
-
-#codes actions
-POSTE_ACTION_ENVOYER_BROUILLON = POSTE_ETAT_BROUILLON
-POSTE_ACTION_ENVOYER_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
-POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU
-POSTE_ACTION_ENVOYER_SRV_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS
-POSTE_ACTION_ENVOYER_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
-POSTE_ACTION_ENVOYER_DRH_2 = POSTE_ETAT_DRH_2
-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_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
-POSTE_ACTION_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
-POSTE_ACTION_RETOUR_DEMANDE_JUSTIF = 'RETOUR_DEMANDE_JUSTIF'
-POSTE_ACTION_ENVOYER_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION
-POSTE_ACTION_ENVOYER_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION
-POSTE_ACTION_FINALISER = 'FINALISER'
-
-#libellés états
-POSTE_ETATS = {
-    POSTE_ETAT_BROUILLON : u"En rédaction",
-    POSTE_ETAT_ADMINISTRATEUR : u"Validation de l'administrateur",
-    POSTE_ETAT_DIRECTEUR_BUREAU : u"Directeur de bureau",
-    POSTE_ETAT_SERVICE_UTILISATEURS : u"Service utilisateurs",
-    POSTE_ETAT_DRH_CONTROLE : u"Validation DRH",
-    POSTE_ETAT_DRH_2 : u"Validation DRH 2",
-    POSTE_ETAT_DEMANDE_MODIF : u"Demande de modification",
-    POSTE_ETAT_ACCIOR : u"ACCIOR",
-    POSTE_ETAT_ABF : u"ABF",
-    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',
-    POSTE_ETAT_DRH_FINALISATION : u'Retour à la DRH',
-    POSTE_ETAT_FINALISE : u'Finalisée'
-    }
-
-#libellés états pour boutons
-POSTE_ETATS_BOUTONS = {
-    POSTE_ETAT_DIRECTEUR_BUREAU : u"Envoyer au directeur de bureau",
-    POSTE_ETAT_SERVICE_UTILISATEURS : u"Envoyer au service utilisateurs",
-    POSTE_ETAT_ADMINISTRATEUR : u"Envoyer à l&#39;adminstrateur",
-    POSTE_ETAT_DRH_CONTROLE : u"Envoyer à la DRH (validation)",
-    POSTE_ETAT_DRH_2 : u"Envoyer à DRH 2",
-    POSTE_ETAT_DEMANDE_MODIF : u"Envoyer une demande de modification",
-    POSTE_ETAT_ACCIOR : u"Envoyer à l&#39;ACCIOR",
-    POSTE_ETAT_ABF : u"Envoyer à l&#39;ABF",
-    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",
-    POSTE_ETAT_DRH_FINALISATION : u'Retourner à la DRH pour finalisation',
-    POSTE_ETAT_FINALISE : u'Finaliser'
-    }
-
-# définition du worflow séquentiel
-POSTE_ACTIONS = {
-    POSTE_ACTION_ENVOYER_BROUILLON : {
-        'nom' : u'Créer',
-        'etat_initial' : None,
-        'etat_final' : POSTE_ETAT_BROUILLON,
-    },
-    POSTE_ACTION_ENVOYER_ADMINISTRATEUR : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_BROUILLON,),
-        'etat_final' : POSTE_ETAT_ADMINISTRATEUR,
-    },
-    POSTE_ACTION_ENVOYER_SRV_UTILISATEURS : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR,),
-        'etat_final' : POSTE_ETAT_SERVICE_UTILISATEURS,
-    },
-    POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR,),
-        'etat_final' : POSTE_ETAT_DIRECTEUR_BUREAU,
-    },
-    POSTE_ACTION_ENVOYER_DRH_CONTROLE : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DIRECTEUR_BUREAU, POSTE_ETAT_SERVICE_UTILISATEURS),
-        'etat_final' : POSTE_ETAT_DRH_CONTROLE,
-    },
-    POSTE_ACTION_ENVOYER_DRH_2 : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_DRH_CONTROLE,),
-        'etat_final' : POSTE_ETAT_DRH_2,
-    },
-    POSTE_ACTION_DEMANDE_MODIF : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2),
-        'etat_final': POSTE_ETAT_DEMANDE_MODIF,
-    },
-    POSTE_ACTION_RETOUR_DEMANDE_MODIF : {
-        'nom': u'Retourner',
-        'etat_initial': (POSTE_ETAT_DEMANDE_MODIF,),
-        'etat_final': POSTE_ETAT_DRH_CONTROLE,
-    },
-    POSTE_ACTION_ENVOYER_ACCIOR : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_DRH_2,),
-        'etat_final' : POSTE_ETAT_ACCIOR,
-    },
-    POSTE_ACTION_ENVOYER_ABF : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_ACCIOR,),
-        'etat_final' : POSTE_ETAT_ABF,
-    },
-    POSTE_ACTION_ENVOYER_HAUTE_DIRECTION : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_ABF,),
-        'etat_final' : POSTE_ETAT_HAUTE_DIRECTION,
-    },
-    POSTE_ACTION_DEMANDE_JUSTIF : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_HAUTE_DIRECTION,),
-        'etat_final': POSTE_ETAT_DEMANDE_JUSTIF,
-    },
-    POSTE_ACTION_RETOUR_DEMANDE_JUSTIF : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_DEMANDE_JUSTIF,),
-        'etat_final': POSTE_ETAT_HAUTE_DIRECTION,
-    },
-    POSTE_ACTION_ENVOYER_REGION_FINALISATION : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_HAUTE_DIRECTION,),
-        'etat_final' : POSTE_ETAT_REGION_FINALISATION
-    },
-    POSTE_ACTION_ENVOYER_DRH_FINALISATION : {
-        'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_REGION_FINALISATION,),
-        'etat_final' : POSTE_ETAT_DRH_FINALISATION,
-    },
-    POSTE_ACTION_FINALISER : {
-        'nom' : u'Finaliser',
-        'etat_initial' : (POSTE_ETAT_DRH_FINALISATION,),
-        'etat_final' : POSTE_ETAT_FINALISE
-    },
-}
-
-
-class PosteWorkflow(WorkflowMixin):
-    etat_initial = POSTE_ETAT_BROUILLON
-    etats = POSTE_ETATS
-    actions = POSTE_ACTIONS
-
-    class Meta:
-        abstract = True
-        app_label = "rh"
-
-    def acces_directeur_bureau(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_drh in user_groups or grp_drh2 in user_groups or \
-                (is_user_dans_services_centraux(request.user) and 
-                 grp_administrateurs in user_groups)
-
-    def acces_administrateur(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_correspondants_rh in user_groups or grp_drh in user_groups or \
-                grp_drh2 in user_groups
-
-    def acces_drh_controle(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_directeurs_bureau in user_groups or \
-                grp_service_utilisateurs in user_groups or \
-                grp_drh in user_groups or grp_drh2 in user_groups or \
-                (grp_administrateurs in user_groups and
-                 (action == POSTE_ACTION_RETOUR_DEMANDE_MODIF or
-                  is_user_dans_region(request.user)))
-
-    def acces_drh_2(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_drh in user_groups
-
-    def acces_demande_modif(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_drh in user_groups or grp_drh2 in user_groups
-
-    def acces_srv_utilisateurs(self, action, request):
-        if not is_user_dans_services_centraux(request.user):
-            return False
-        user_groups = request.user.groups.all()
-        return grp_administrateurs in user_groups or grp_drh in user_groups or \
-               grp_drh2 in user_groups
-
-    def acces_accior(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_drh in user_groups or grp_drh2 in user_groups
-
-    def acces_abf(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_accior in user_groups or grp_drh in user_groups or grp_drh2 in user_groups
-
-    def acces_haute_direction(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_abf in user_groups or grp_drh in user_groups or grp_drh2 in user_groups
-
-    def acces_region_finalisation(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_haute_direction in user_groups or grp_drh in user_groups or \
-                grp_drh2 in user_groups
-
-    def acces_drh_finalisation(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_administrateurs in user_groups or \
-               grp_correspondants_rh in user_groups or \
-                grp_drh in user_groups or \
-                grp_drh2 in user_groups
-
-    def acces_demande_justif(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_haute_direction in user_groups or grp_drh in user_groups or \
-                grp_drh2 in user_groups
-
-    def acces_retour_demande_modif(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_administrateurs in user_groups or grp_drh in user_groups or \
-                grp_drh2 in user_groups
-
-    def acces_retour_demande_justif(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_drh in user_groups or grp_drh2 in user_groups
-
-    def acces_finaliser(self, action, request):
-        user_groups = request.user.groups.all()
-        return grp_drh in user_groups or grp_drh2 in user_groups
-
-
-#codes actions
-DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON
-DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
-DOSSIER_ETAT_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU
-DOSSIER_ETAT_SERVICE_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS
-DOSSIER_ETAT_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
-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_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
-DOSSIER_ETAT_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
-DOSSIER_ETAT_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION
-DOSSIER_ETAT_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION
-DOSSIER_ETAT_FINALISE = POSTE_ETAT_FINALISE
-
-class DossierWorkflow(PosteWorkflow):
-
-    class Meta:
-        abstract = True
-        app_label = "rh"
-
-
-MAP_GROUPE_ETATS_A_FAIRE = {
-    grp_correspondants_rh : (POSTE_ETAT_BROUILLON, DOSSIER_ETAT_BROUILLON,
-                             POSTE_ETAT_REGION_FINALISATION,
-                             DOSSIER_ETAT_REGION_FINALISATION),
-    grp_service_utilisateurs : (POSTE_ETAT_SERVICE_UTILISATEURS,
-                                DOSSIER_ETAT_SERVICE_UTILISATEURS,),
-    grp_administrateurs : (POSTE_ETAT_ADMINISTRATEUR,
-                           DOSSIER_ETAT_ADMINISTRATEUR,
-                           POSTE_ETAT_DEMANDE_MODIF,
-                           DOSSIER_ETAT_DEMANDE_MODIF,
-                           POSTE_ETAT_REGION_FINALISATION,
-                           DOSSIER_ETAT_REGION_FINALISATION,
-                          ),
-    grp_directeurs_bureau : (POSTE_ETAT_DIRECTEUR_BUREAU, DOSSIER_ETAT_DIRECTEUR_BUREAU, ),
-    grp_drh : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_FINALISATION,
-               DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DRH_FINALISATION,
-               POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_DEMANDE_JUSTIF),
-    grp_drh2 : (POSTE_ETAT_DRH_2, DOSSIER_ETAT_DRH_2),
-    grp_accior : (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR, ),
-    grp_abf : (POSTE_ETAT_ABF, DOSSIER_ETAT_ABF, ),
-    grp_haute_direction : (POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION, ),
-}
-
-
-ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR,
-                  POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2,
-                  POSTE_ETAT_DIRECTEUR_BUREAU,
-                  POSTE_ETAT_SERVICE_UTILISATEURS, POSTE_ETAT_DEMANDE_MODIF,
-                  POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_BROUILLON,
-                  DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE,
-                  DOSSIER_ETAT_DRH_2, DOSSIER_ETAT_DIRECTEUR_BUREAU,
-                  DOSSIER_ETAT_SERVICE_UTILISATEURS,
-                  DOSSIER_ETAT_DEMANDE_MODIF, DOSSIER_ETAT_DEMANDE_JUSTIF,
-)
-
-ETATS_VALIDE = (DOSSIER_ETAT_REGION_FINALISATION, DOSSIER_ETAT_DRH_FINALISATION,
-                DOSSIER_ETAT_FINALISE)