DRH2 recrutement perms
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 23 Apr 2012 20:07:13 +0000 (16:07 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 23 Apr 2012 20:07:13 +0000 (16:07 -0400)
project/recrutement/admin.py
project/recrutement/workflow.py

index f565bd8..a36f351 100644 (file)
@@ -14,9 +14,10 @@ from project.rh import models as rh
 
 from project.dae.utils import get_employe_from_user as get_emp
 from recrutement.models import *
-from recrutement.workflow import grp_drh_recrutement, grp_directeurs_bureau_recrutement, \
-                    grp_administrateurs_recrutement, \
-                    grp_correspondants_rh_recrutement
+from recrutement.workflow import grp_drh_recrutement, grp_drh2_recrutement, \
+        grp_directeurs_bureau_recrutement, \
+        grp_administrateurs_recrutement, \
+        grp_correspondants_rh_recrutement
 
 from recrutement.forms import *
 
@@ -75,7 +76,8 @@ class OffreEmploiAdmin(VersionAdmin):
         else:
             region_field = form.base_fields['region']
 
-        if grp_drh_recrutement in user_groupes:
+        if grp_drh_recrutement in user_groupes or \
+            grp_drh2_recrutement in user_groupes:
             region_field.queryset = Region.objects.all()
         else:
             region_field.queryset = Region.objects.\
@@ -87,7 +89,8 @@ class OffreEmploiAdmin(VersionAdmin):
         else:
             poste_field = form.base_fields['poste']
 
-        if grp_drh_recrutement in user_groupes:
+        if grp_drh_recrutement in user_groupes or \
+            grp_drh2_recrutement in user_groupes:
             poste_field.queryset = rh.Poste.objects.all()
         else:
             poste_field.queryset = rh.Poste.objects.\
@@ -100,7 +103,8 @@ class OffreEmploiAdmin(VersionAdmin):
         else:
             bureau_field = form.base_fields['bureau']
 
-        if grp_drh_recrutement in user_groupes:
+        if grp_drh_recrutement in user_groupes or \
+            grp_drh2_recrutement in user_groupes:
             bureau_field.queryset = Bureau.objects.all()
         else:
             bureau_field.queryset = Bureau.objects.\
@@ -112,7 +116,8 @@ class OffreEmploiAdmin(VersionAdmin):
     def queryset(self, request):
         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:
+        if grp_drh_recrutement in user_groupes or \
+            grp_drh2_recrutement in user_groupes:
             return qs
 
         if grp_directeurs_bureau_recrutement in user_groupes or \
@@ -134,6 +139,7 @@ class OffreEmploiAdmin(VersionAdmin):
         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:
             return True
@@ -143,6 +149,7 @@ class OffreEmploiAdmin(VersionAdmin):
         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:
             return True
@@ -152,6 +159,7 @@ class OffreEmploiAdmin(VersionAdmin):
         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:
             return True
@@ -203,6 +211,7 @@ class ProxyOffreEmploiAdmin(OffreEmploiAdmin):
         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:
             return True
@@ -373,6 +382,7 @@ class CandidatAdmin(VersionAdmin):
         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:
             return True
@@ -383,6 +393,7 @@ class CandidatAdmin(VersionAdmin):
         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:
             return True
@@ -393,6 +404,7 @@ class CandidatAdmin(VersionAdmin):
         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:
             return True
@@ -414,7 +426,8 @@ class CandidatAdmin(VersionAdmin):
         qs = self.model._default_manager.get_query_set().select_related('offre_emploi').annotate(moyenne=Avg('evaluations__note'))
 
         user_groupes = request.user.groups.all()
-        if grp_drh_recrutement in user_groupes:
+        if grp_drh_recrutement in user_groupes or \
+            grp_drh2_recrutement in user_groupes:
             return qs
 
         if grp_directeurs_bureau_recrutement in user_groupes or \
@@ -469,6 +482,7 @@ class ProxyCandidatAdmin(CandidatAdmin):
         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:
             return True
@@ -518,21 +532,24 @@ 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:
+                grp_drh_recrutement in user_groupes or \
+                grp_drh2_recrutement 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:
+                grp_drh_recrutement in user_groupes or \
+                grp_drh2_recrutement 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:
+                grp_drh_recrutement in user_groupes or \
+                grp_drh2_recrutement in user_groupes:
             return True
         return False   
 
@@ -633,6 +650,7 @@ class CandidatEvaluationAdmin(admin.ModelAdmin):
 
         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:
@@ -651,6 +669,7 @@ class CandidatEvaluationAdmin(admin.ModelAdmin):
         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:
index ee9fda4..6ee15b8 100644 (file)
@@ -1,11 +1,13 @@
 # -*- encoding: utf-8 -*-
 
 from rh.groups import safe_create_groupe
-from  rh.groups import CORRESPONDANT_RH, DRH_NIVEAU_1, DIRECTEUR_DE_BUREAU, ADMINISTRATEURS
+from rh.groups import CORRESPONDANT_RH, DRH_NIVEAU_1, DRH_NIVEAU_2, \
+        DIRECTEUR_DE_BUREAU, ADMINISTRATEURS
 
 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)
@@ -14,6 +16,7 @@ recrutement_groupes = (
     grp_evaluateurs_recrutement,
     grp_correspondants_rh_recrutement,
     grp_drh_recrutement,
+    grp_drh2_recrutement,
     grp_directeurs_bureau_recrutement,
     grp_administrateurs_recrutement,
 )