#1492
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 24 May 2011 17:08:07 +0000 (13:08 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 24 May 2011 17:08:07 +0000 (13:08 -0400)
project/dae/managers.py
project/dae/views.py
project/dae/workflow.py

index df40a7c..5a4862f 100644 (file)
@@ -3,7 +3,11 @@
 from django.db import models
 from django.db.models import Q
 from utils import is_user_dans_service, get_employe_from_user
-from workflow import POSTE_ETAT_HAUTE_DIRECTION, POSTE_ETAT_POLE_FINANCIER, MAP_GROUPE_ETATS_A_FAIRE
+from workflow import POSTE_ETAT_HAUTE_DIRECTION, \
+                     POSTE_ETAT_POLE_FINANCIER, \
+                     POSTE_ETAT_REFUSE, \
+                     DOSSIER_ETAT_REFUSE, \
+                     MAP_GROUPE_ETATS_A_FAIRE
 from workflow import dae_groupes, \
                      grp_administrateurs, \
                      grp_gestionnaires, \
@@ -36,7 +40,6 @@ class SecurityManager(models.Manager):
         On s'intéresse aussi au groupe auquel appartient le user car certains groupes
         peuvent tout voir.
         """
-
         # On s'assure que le manager travaille sur un modèle avec WF, autrement
         # on ne teste pas sur l'état
         try:
@@ -57,26 +60,29 @@ class SecurityManager(models.Manager):
         # REGION
         else:
             q = Q(**{ '%s__region' % self.prefixe_implantation : employe.implantation.region })
-        liste = self.get_query_set().filter(q)
 
-        ############################################
-        # TRAITEMENT POLE FINANCIER
-        ############################################        
-        if workflowed_model and grp_pole_financier in user.groups.all():
-            liste = self.get_query_set().filter(etat=POSTE_ETAT_POLE_FINANCIER)
+        q_non_refuse = ~Q(etat__in=(POSTE_ETAT_REFUSE, DOSSIER_ETAT_REFUSE,))
+        liste = self.get_query_set().filter(q & q_non_refuse)
 
-        ############################################
-        # TRAITEMENT HAUTE DIRECTION
-        ############################################        
-        if workflowed_model and grp_haute_direction in user.groups.all():
-            liste = self.get_query_set().filter(etat=POSTE_ETAT_HAUTE_DIRECTION)
+        # Il peut être bon que ces personnes connaissent l'état d'avancement du poste ou dossier
+        #############################################
+        ## TRAITEMENT POLE FINANCIER
+        #############################################        
+        #if workflowed_model and grp_pole_financier in user.groups.all():
+        #    liste = self.get_query_set().filter(etat=POSTE_ETAT_POLE_FINANCIER)
+
+        #############################################
+        ## TRAITEMENT HAUTE DIRECTION
+        #############################################        
+        #if workflowed_model and grp_haute_direction in user.groups.all():
+        #    liste = self.get_query_set().filter(etat=POSTE_ETAT_HAUTE_DIRECTION)
 
         ############################################
         # TRAITEMENT DRH
         ############################################        
         if grp_drh in user.groups.all():
             liste = self.get_query_set()
-        
+
         return liste
 
 
@@ -87,7 +93,7 @@ class PosteManager(SecurityManager):
     prefixe_implantation = "implantation"
 
     def ma_region_ou_service(self, user):
-        return super(PosteManager, self).filter(actif=True)
+        return super(PosteManager, self).ma_region_ou_service(user).filter(actif=True)
 
     def get_query_set(self):
         fkeys = (
@@ -109,6 +115,6 @@ class DossierManager(SecurityManager):
     prefixe_implantation = "poste__implantation"
 
     def ma_region_ou_service(self, user):
-        return super(DossierManager, self).filter(poste__actif=True)
+        return super(DossierManager, self).ma_region_ou_service(user).filter(poste__actif=True)
 
 
index a30c6a0..fdb3cf4 100644 (file)
@@ -81,7 +81,7 @@ def poste_consulter(request, key):
         if validationForm.is_valid():
             validationForm.save()
             messages.add_message(request, messages.SUCCESS, "La validation a été enregistrée.")
-            return redirect('poste_consulter', key=key)
+            return redirect('dae_postes_liste')
     else:
         validationForm = PosteWorkflowForm(instance=poste, request=request)
     
@@ -180,7 +180,7 @@ def embauche_consulter(request, dossier_id):
         if validationForm.is_valid():
             validationForm.save()
             messages.add_message(request, messages.SUCCESS, "La validation a été enregistrée.")
-            return redirect('embauche_consulter', dossier_id=dossier.id)
+            return redirect('dae_embauches_liste')
     else:
         validationForm = DossierWorkflowForm(instance=dossier, request=request)
     
index 9cda079..055b8a7 100644 (file)
@@ -193,6 +193,7 @@ class PosteWorkflow(WorkflowMixin):
 
 
 #codes actions
+DOSSIER_ETAT_REFUSE = POSTE_ETAT_REFUSE
 DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON
 DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE
 DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR