traite le cas andre léger srv utilisateur et adm
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 1 Jun 2011 18:26:28 +0000 (14:26 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 1 Jun 2011 18:26:28 +0000 (14:26 -0400)
project/dae/managers.py
project/dae/workflow.py

index 74507ef..98460b8 100644 (file)
@@ -8,6 +8,8 @@ from workflow import POSTE_ETAT_HAUTE_DIRECTION, \
                      POSTE_ETAT_AFB, \
                      POSTE_ETAT_REFUSE, \
                      DOSSIER_ETAT_REFUSE, \
+                     DOSSIER_ETAT_ACCIOR, \
+                     DOSSIER_ETAT_AFB, \
                      MAP_GROUPE_ETATS_A_FAIRE
 from workflow import dae_groupes, \
                      grp_administrateurs, \
@@ -60,12 +62,12 @@ class SecurityManager(models.Manager):
         ############################################
         # TRAITEMENT NORMAL
         ############################################        
+        # REGION
+        q = Q(**{ self.prefixe_implantation : employe.implantation.region })
+
         # SERVICE
         if workflowed_model and grp_service_utilisateurs in user.groups.all():
-            q = Q(**{ self.prefixe_service : employe.service})
-        # REGION
-        else:
-            q = Q(**{ self.prefixe_implantation : employe.implantation.region })
+            q = q | Q(**{ self.prefixe_service : employe.service})
 
         if workflowed_model:
             q_non_refuse = ~Q(etat__in=(POSTE_ETAT_REFUSE, DOSSIER_ETAT_REFUSE,))
@@ -78,7 +80,7 @@ class SecurityManager(models.Manager):
         # TRAITEMENT ACCIOR
         ############################################        
         if workflowed_model and grp_accior in user.groups.all():
-            liste = self.get_query_set().filter(q_non_refuse)
+            liste = liste | self.get_query_set().filter(q_non_refuse & Q(etat__in=(POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR,)))
 
         ############################################
         # TRAITEMENT AFB
index f024b3a..1cf990a 100644 (file)
@@ -167,8 +167,9 @@ class PosteWorkflow(WorkflowMixin):
 
     def acces_refuse(self, action, request):
         user_groupes = request.user.groups.all()
-        if grp_accior in user_groupes or grp_afb in user_groupes:
+        if (grp_accior in user_groupes or grp_afb in user_groupes) and len(user_groupes) == 1:
             return False
+        return True
 
         user_groupes = request.user.groups.all()
         for g, etats in MAP_GROUPE_ETATS_A_FAIRE.items():