Corrections à ce que André Léger peut voir...
authorEric Mc Sween <eric.mcsween@auf.org>
Tue, 8 Nov 2011 20:48:12 +0000 (15:48 -0500)
committerEric Mc Sween <eric.mcsween@auf.org>
Tue, 8 Nov 2011 20:48:50 +0000 (15:48 -0500)
project/dae/managers.py
project/dae/views.py
project/dae/workflow.py

index 3135e35..5a5c833 100644 (file)
@@ -27,12 +27,18 @@ class SecurityManager(models.Manager):
 
     def mes_choses_a_faire(self, user):
         q = Q()
+        employe = get_employe_from_user(user)
         rien_a_faire = True
         for g in user.groups.all():
             etats = MAP_GROUPE_ETATS_A_FAIRE.get(g, ())
             for etat in etats:
                 rien_a_faire = False
-                q = q | Q(etat=etat)
+                q2 = Q(etat=etat)
+                if g == grp_service_utilisateurs:
+                    q2 &= Q(**{self.prefixe_service: employe.service})
+                elif g not in (grp_accior, grp_abf, grp_haute_direction, grp_drh):
+                    q2 &= Q(**{self.prefixe_implantation: employe.implantation.region})
+                q |= q2
 
         if rien_a_faire:
             qs = self.ma_region_ou_service(user).none()
@@ -70,7 +76,6 @@ class SecurityManager(models.Manager):
 
         liste = self.get_query_set().filter(q)
 
-
         ############################################
         # TRAITEMENT ACCIOR
         ############################################
index 7a97ddd..c61edad 100644 (file)
@@ -221,9 +221,11 @@ def embauche_consulter(request, dossier_id):
     else:
         validationForm = DossierWorkflowForm(instance=dossier, request=request)
 
+    comparaisons_internes = dossier.poste.comparaisons_internes.ma_region_ou_service(request.user)
     vars = {
-        'dossier' : dossier,
-        'validationForm' : validationForm,
+        'dossier': dossier,
+        'validationForm': validationForm,
+        'comparaisons_internes': comparaisons_internes
         }
 
     mode = request.GET.get('mode', None)
@@ -322,6 +324,7 @@ def embauche(request, key=None, dossier_id=None):
         dossiersComparaisonsForm = DossierComparaisonForm(instance=dossier)
         remunForm = RemunForm(instance=dossier)
 
+    comparaisons_internes = dossier.poste.comparaisons_internes.ma_region_ou_service(request.user)
     return render_to_response('dae/embauche.html', {
         'type_remun': filtered_type_remun(),
         'devises': devises(),
@@ -330,7 +333,8 @@ def embauche(request, key=None, dossier_id=None):
         'piecesForm': piecesForm,
         'remunForm': remunForm,
         'dossiersComparaisonsForm': dossiersComparaisonsForm,
-        'forms': dict(employe=employe_form, dossier=dossier_form, )
+        'forms': dict(employe=employe_form, dossier=dossier_form, ),
+        'comparaisons_internes': comparaisons_internes
     }, RequestContext(request))
 
 @dae_groupe_requis
index c521985..0947340 100644 (file)
@@ -253,13 +253,22 @@ class PosteWorkflow(WorkflowMixin):
         return any(g in groups for g in [grp_haute_direction, grp_drh])
 
     def acces_retour_demande_modif(self, action, request):
-        return self.acces_drh_controle(action, request)
+        for g in request.user.groups.all():
+            if g in (grp_administrateurs, grp_drh,):
+                return True
+        return False
 
     def acces_retour_demande_justif(self, action, request):
-        return self.acces_haute_direction(action, request)
+        for g in request.user.groups.all():
+            if g in (grp_drh, ):
+                return True
+        return False
 
     def acces_finaliser(self, action, request):
-        return self.acces_drh_finalisation(action, request)
+        for g in request.user.groups.all():
+            if g in (grp_drh, ):
+                return True
+        return False
 
 
 #codes actions