protection etat WF
[auf_rh_dae.git] / project / dae / managers.py
index ad7cfc3..91c03a6 100644 (file)
@@ -26,6 +26,14 @@ class SecurityManager(models.Manager):
         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:
+            self.model._meta.get_field_by_name('etat')
+            workflowed_model = True
+        except:
+            workflowed_model = False
+
         employe = get_employe_from_user(user)
 
         ############################################
@@ -43,13 +51,13 @@ class SecurityManager(models.Manager):
         ############################################
         # TRAITEMENT POLE FINANCIER
         ############################################        
-        if grp_pole_financier in user.groups.all():
-            liste = self.get_query_set().filter(etat=POSTE_ETAT_FINANCE)
+        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 grp_haute_direction in user.groups.all():
+        if workflowed_model and grp_haute_direction in user.groups.all():
             liste = self.get_query_set().filter(etat=POSTE_ETAT_HAUTE_DIRECTION)
 
         ############################################