recrutement, dae : groups et workflow
authorDavin Baragiotta <davin.baragiotta@auf.org>
Thu, 31 May 2012 16:43:27 +0000 (12:43 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Thu, 31 May 2012 16:43:27 +0000 (12:43 -0400)
project/dae/decorators.py
project/dae/groups.py [new file with mode: 0644]
project/dae/permissions.py
project/dae/workflow.py
project/recrutement/admin.py
project/recrutement/groups.py [new file with mode: 0644]
project/recrutement/models.py
project/recrutement/permissions.py
project/recrutement/views.py
project/recrutement/workflow.py [deleted file]

index 8aa7253..cdfda26 100644 (file)
@@ -5,11 +5,11 @@ from django.http import HttpResponseRedirect
 from django.shortcuts import get_object_or_404
 
 from project.decorators import redirect_interdiction
+from project.rh import models as rh
 
-from project.dae.workflow import \
-        dae_groupes, ETATS_EDITABLE, ETATS_VALIDE, grp_drh, grp_drh2
 from project.dae import models as dae
-from project.rh import models as rh
+from project.dae.groups import dae_groupes, grp_drh, grp_drh2
+from project.dae.workflow import ETATS_EDITABLE, ETATS_VALIDE
 
 
 def user_in_dae_groupes(user):
diff --git a/project/dae/groups.py b/project/dae/groups.py
new file mode 100644 (file)
index 0000000..f10216f
--- /dev/null
@@ -0,0 +1,18 @@
+# -*- encoding: utf-8 -*-
+
+from project.groups import \
+        grp_drh, grp_drh2, grp_administrateurs, grp_service_utilisateurs, \
+        grp_correspondants_rh, grp_directeurs_bureau, grp_accior, grp_abf, \
+        grp_haute_direction
+
+dae_groupes = (
+    grp_correspondants_rh,
+    grp_administrateurs,
+    grp_directeurs_bureau,
+    grp_drh,
+    grp_drh2,
+    grp_accior,
+    grp_abf,
+    grp_haute_direction,
+    grp_service_utilisateurs,
+)
index 7f5c9d3..4d8b00f 100644 (file)
@@ -1,8 +1,9 @@
 from auf.django.permissions import allow
 
-import project.dae.models as dae
-from project.dae.workflow import grp_drh, grp_drh2, grp_haute_direction
 from project.dae.decorators import user_in_dae_groupes
+from project.dae.groups import grp_drh, grp_drh2, grp_haute_direction
+import project.dae.models as dae
+
 
 def user_in_group(*groups):
     def test(user, obj):
index 0296206..bb3fb44 100644 (file)
@@ -9,18 +9,6 @@ from project.groups import \
 from project.groups import \
         is_user_dans_services_centraux, is_user_dans_region
 
-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'
index a3d31ab..52e2cf5 100644 (file)
@@ -22,12 +22,12 @@ from project.recrutement.models import \
         Evaluateur, CandidatEvaluation, \
         ProxyOffreEmploi, ProxyCandidat, MesCandidatEvaluation, \
         CourrielTemplate
-from project.recrutement.workflow import \
-        grp_drh_recrutement, grp_drh2_recrutement, \
-        grp_directeurs_bureau_recrutement, \
-        grp_administrateurs_recrutement, \
-        grp_correspondants_rh_recrutement, \
-        grp_haute_direction_recrutement
+from project.recrutement.groups import \
+        grp_drh, grp_drh2, \
+        grp_directeurs_bureau, \
+        grp_administrateurs, \
+        grp_correspondants_rh, \
+        grp_haute_direction
 
 
 ### CONSTANTES
@@ -92,9 +92,9 @@ class OffreEmploiAdmin(VersionAdmin):
         else:
             region_field = form.base_fields['region']
 
-        if grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+        if grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_haute_direction in user_groupes:
             region_field.queryset = Region.objects.all()
         else:
             region_field.queryset = Region.objects.\
@@ -106,9 +106,9 @@ class OffreEmploiAdmin(VersionAdmin):
         else:
             poste_field = form.base_fields['poste']
 
-        if grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+        if grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_haute_direction in user_groupes:
             poste_field.queryset = rh.Poste.objects.all()
         else:
             poste_field.queryset = rh.Poste.objects.\
@@ -121,9 +121,9 @@ class OffreEmploiAdmin(VersionAdmin):
         else:
             bureau_field = form.base_fields['bureau']
 
-        if grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+        if grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_haute_direction in user_groupes:
             bureau_field.queryset = Bureau.objects.all()
         else:
             bureau_field.queryset = \
@@ -137,14 +137,14 @@ class OffreEmploiAdmin(VersionAdmin):
         qs = self.model._default_manager.get_query_set() \
                 .select_related('offre_emploi')
         user_groupes = request.user.groups.all()
-        if grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+        if grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_haute_direction in user_groupes:
             return qs
 
-        if grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes:
+        if grp_directeurs_bureau in user_groupes or \
+            grp_correspondants_rh in user_groupes or \
+            grp_administrateurs in user_groupes:
             employe = get_emp(request.user)
             return qs.filter(region=employe.implantation.region)
 
@@ -164,33 +164,33 @@ class OffreEmploiAdmin(VersionAdmin):
     def has_add_permission(self, request):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
         return False
 
     def has_delete_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
         return False
 
     def has_change_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
         return False
 
@@ -241,12 +241,12 @@ class ProxyOffreEmploiAdmin(OffreEmploiAdmin):
     def has_change_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_correspondants_rh in user_groupes or \
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
 
         if obj is not None:
@@ -429,36 +429,36 @@ class CandidatAdmin(VersionAdmin):
     def has_add_permission(self, request):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_correspondants_rh in user_groupes or \
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
         return False
 
     def has_delete_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_correspondants_rh in user_groupes or \
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
         return False
 
     def has_change_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_correspondants_rh in user_groupes or \
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
         return False
 
@@ -478,14 +478,14 @@ class CandidatAdmin(VersionAdmin):
                 .annotate(moyenne=Avg('evaluations__note'))
 
         user_groupes = request.user.groups.all()
-        if grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+        if grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_haute_direction in user_groupes:
             return qs
 
-        if grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes:
+        if grp_directeurs_bureau in user_groupes or \
+            grp_correspondants_rh in user_groupes or \
+            grp_administrateurs in user_groupes:
             employe = get_emp(request.user)
             return qs.filter(offre_emploi__region=employe.implantation.region)
 
@@ -540,12 +540,12 @@ class ProxyCandidatAdmin(CandidatAdmin):
     def has_change_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_correspondants_rh in user_groupes or \
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return True
 
         if obj is not None:
@@ -594,27 +594,27 @@ class EvaluateurAdmin(VersionAdmin):
     def has_add_permission(self, request):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-                grp_drh_recrutement in user_groupes or \
-                grp_drh2_recrutement in user_groupes or \
-                grp_haute_direction_recrutement in user_groupes:
+                grp_drh in user_groupes or \
+                grp_drh2 in user_groupes or \
+                grp_haute_direction in user_groupes:
             return True
         return False
 
     def has_delete_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-                grp_drh_recrutement in user_groupes or \
-                grp_drh2_recrutement in user_groupes or \
-                grp_haute_direction_recrutement in user_groupes:
+                grp_drh in user_groupes or \
+                grp_drh2 in user_groupes or \
+                grp_haute_direction in user_groupes:
             return True
         return False
 
     def has_change_permission(self, request, obj=None):
         user_groupes = request.user.groups.all()
         if request.user.is_superuser is True or \
-                grp_drh_recrutement in user_groupes or \
-                grp_drh2_recrutement in user_groupes or \
-                grp_haute_direction_recrutement in user_groupes:
+                grp_drh in user_groupes or \
+                grp_drh2 in user_groupes or \
+                grp_haute_direction in user_groupes:
             return True
         return False
 
@@ -718,12 +718,12 @@ class CandidatEvaluationAdmin(admin.ModelAdmin):
         user_groupes = request.user.groups.all()
 
         if request.user.is_superuser or \
-            grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+            grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_correspondants_rh in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             is_recrutement = True
         else:
             is_recrutement = False
@@ -739,12 +739,12 @@ class CandidatEvaluationAdmin(admin.ModelAdmin):
                 .select_related('offre_emploi')
         user_groupes = request.user.groups.all()
 
-        if grp_drh_recrutement in user_groupes or \
-            grp_drh2_recrutement in user_groupes or \
-            grp_correspondants_rh_recrutement in user_groupes or \
-            grp_directeurs_bureau_recrutement in user_groupes or \
-            grp_administrateurs_recrutement in user_groupes or \
-            grp_haute_direction_recrutement in user_groupes:
+        if grp_drh in user_groupes or \
+            grp_drh2 in user_groupes or \
+            grp_correspondants_rh in user_groupes or \
+            grp_directeurs_bureau in user_groupes or \
+            grp_administrateurs in user_groupes or \
+            grp_haute_direction in user_groupes:
             return qs
 
         evaluateur = Evaluateur.objects.get(user=request.user)
diff --git a/project/recrutement/groups.py b/project/recrutement/groups.py
new file mode 100644 (file)
index 0000000..b7fe562
--- /dev/null
@@ -0,0 +1,22 @@
+# -*- encoding: utf-8 -*-
+
+from project.groups import safe_create_groupe
+from project.groups import grp_correspondants_rh, \
+        grp_drh, \
+        grp_drh2, \
+        grp_directeurs_bureau, \
+        grp_administrateurs, \
+        grp_haute_direction
+
+EVALUATEURS = 'Évaluateurs'
+grp_evaluateurs = safe_create_groupe(name=EVALUATEURS)
+
+recrutement_groupes = (
+    grp_evaluateurs,
+    grp_correspondants_rh,
+    grp_drh,
+    grp_drh2,
+    grp_directeurs_bureau,
+    grp_administrateurs,
+    grp_haute_direction,
+)
index c9a7259..dc01130 100644 (file)
@@ -11,7 +11,7 @@ add_introspection_rules([], ["^tinymce.models.HTMLField"])
 
 from auf.django.emploi import models as emploi
 
-from project.recrutement.workflow import  grp_evaluateurs_recrutement
+from project.recrutement.groups import  grp_evaluateurs
 
 ### CONSTANTES
 #NOTES
@@ -102,15 +102,15 @@ class Evaluateur(models.Model):
 @receiver(pre_save, sender=Evaluateur)
 def sync_add_groupe_evaluateur(sender, **kwargs):
     instance = kwargs['instance']
-    if grp_evaluateurs_recrutement not in instance.user.groups.all():
-        instance.user.groups.add(grp_evaluateurs_recrutement)
+    if grp_evaluateurs not in instance.user.groups.all():
+        instance.user.groups.add(grp_evaluateurs)
         instance.user.save()
 
 
 @receiver(pre_delete, sender=Evaluateur)
 def sync_delete_groupe_evaluateur(sender, **kwargs):
     instance = kwargs['instance']
-    instance.user.groups.remove(grp_evaluateurs_recrutement)
+    instance.user.groups.remove(grp_evaluateurs)
     instance.user.save()
 
 
index 0939a4d..b32dd08 100644 (file)
@@ -1,7 +1,6 @@
 # -*- encoding: utf-8 -*-
 
-from django.contrib.auth.models import Group
-from project.recrutement.workflow import recrutement_groupes
+from project.recrutement.groups import recrutement_groupes
 
 def user_in_recrutement_groupes(user):
     """
index 383625a..8207abe 100644 (file)
@@ -14,7 +14,7 @@ from project.decorators import redirect_interdiction
 
 from project.recrutement import forms
 from project.recrutement import models
-from project.recrutement.workflow import recrutement_groupes
+from project.recrutement.groups import recrutement_groupes
 
 
 # MEDIA PRIVE
diff --git a/project/recrutement/workflow.py b/project/recrutement/workflow.py
deleted file mode 100644 (file)
index f9bb77d..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- encoding: utf-8 -*-
-
-from project.groups import safe_create_groupe
-from project.groups import \
-        CORRESPONDANT_RH, DRH_NIVEAU_1, DRH_NIVEAU_2, \
-        DIRECTEUR_DE_BUREAU, ADMINISTRATEURS, HAUTE_DIRECTION
-
-grp_evaluateurs_recrutement = safe_create_groupe(name='Évaluateurs')
-grp_correspondants_rh_recrutement = safe_create_groupe(name=CORRESPONDANT_RH)
-grp_drh_recrutement = safe_create_groupe(name=DRH_NIVEAU_1)
-grp_drh2_recrutement = safe_create_groupe(name=DRH_NIVEAU_2)
-grp_directeurs_bureau_recrutement = \
-    safe_create_groupe(name=DIRECTEUR_DE_BUREAU)
-grp_administrateurs_recrutement = safe_create_groupe(name=ADMINISTRATEURS)
-grp_haute_direction_recrutement = safe_create_groupe(name=HAUTE_DIRECTION)
-
-recrutement_groupes = (
-    grp_evaluateurs_recrutement,
-    grp_correspondants_rh_recrutement,
-    grp_drh_recrutement,
-    grp_drh2_recrutement,
-    grp_directeurs_bureau_recrutement,
-    grp_administrateurs_recrutement,
-    grp_haute_direction_recrutement,
-)