From 86e4bb655bbd61c43aae3073d49f4a7638071b4a Mon Sep 17 00:00:00 2001 From: Davin Baragiotta Date: Thu, 31 May 2012 12:43:27 -0400 Subject: [PATCH] recrutement, dae : groups et workflow --- project/dae/decorators.py | 6 +- project/dae/groups.py | 18 ++++ project/dae/permissions.py | 5 +- project/dae/workflow.py | 12 --- project/recrutement/admin.py | 186 ++++++++++++++++++------------------ project/recrutement/groups.py | 22 +++++ project/recrutement/models.py | 8 +- project/recrutement/permissions.py | 3 +- project/recrutement/views.py | 2 +- project/recrutement/workflow.py | 25 ----- 10 files changed, 145 insertions(+), 142 deletions(-) create mode 100644 project/dae/groups.py create mode 100644 project/recrutement/groups.py delete mode 100644 project/recrutement/workflow.py diff --git a/project/dae/decorators.py b/project/dae/decorators.py index 8aa7253..cdfda26 100644 --- a/project/dae/decorators.py +++ b/project/dae/decorators.py @@ -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 index 0000000..f10216f --- /dev/null +++ b/project/dae/groups.py @@ -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, +) diff --git a/project/dae/permissions.py b/project/dae/permissions.py index 7f5c9d3..4d8b00f 100644 --- a/project/dae/permissions.py +++ b/project/dae/permissions.py @@ -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): diff --git a/project/dae/workflow.py b/project/dae/workflow.py index 0296206..bb3fb44 100644 --- a/project/dae/workflow.py +++ b/project/dae/workflow.py @@ -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' diff --git a/project/recrutement/admin.py b/project/recrutement/admin.py index a3d31ab..52e2cf5 100644 --- a/project/recrutement/admin.py +++ b/project/recrutement/admin.py @@ -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 index 0000000..b7fe562 --- /dev/null +++ b/project/recrutement/groups.py @@ -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, +) diff --git a/project/recrutement/models.py b/project/recrutement/models.py index c9a7259..dc01130 100644 --- a/project/recrutement/models.py +++ b/project/recrutement/models.py @@ -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() diff --git a/project/recrutement/permissions.py b/project/recrutement/permissions.py index 0939a4d..b32dd08 100644 --- a/project/recrutement/permissions.py +++ b/project/recrutement/permissions.py @@ -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): """ diff --git a/project/recrutement/views.py b/project/recrutement/views.py index 383625a..8207abe 100644 --- a/project/recrutement/views.py +++ b/project/recrutement/views.py @@ -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 index f9bb77d..0000000 --- a/project/recrutement/workflow.py +++ /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, -) -- 1.7.10.4