[#3306] Limiter les ajax selects à la région de l'utilisateur
authorEric Mc Sween <eric.mcsween@auf.org>
Wed, 6 Jun 2012 20:35:16 +0000 (16:35 -0400)
committerEric Mc Sween <eric.mcsween@auf.org>
Wed, 6 Jun 2012 20:35:16 +0000 (16:35 -0400)
project/rh/catalogues.py

index 4dc5d26..f40a064 100644 (file)
@@ -4,6 +4,10 @@ from django.db.models import Q
 
 from auf.django.references import models as ref
 
+from project.groups import \
+        get_employe_from_user, grp_drh, grp_drh2, grp_accior, grp_abf, \
+        grp_haute_direction
+
 from project.rh import models as rh
 
 
@@ -33,6 +37,14 @@ class Implantation(object):
             Q(nom__icontains=q) | Q(nom_court__icontains=q) |
             Q(nom_long__icontains=q) | Q(region__nom__icontains=q)
         )
+        groups = set(request.user.groups.all())
+        if groups.isdisjoint(set([
+            grp_accior, grp_abf, grp_haute_direction, grp_drh, grp_drh2
+        ])):
+            employe = get_employe_from_user(request.user)
+            implantations = implantations.filter(
+                region=employe.implantation.region
+            )
         return implantations
 
     def format_result(self, implantation):
@@ -77,12 +89,12 @@ class TypePoste(object):
 class Poste(object):
 
     def get_query(self, q, request):
-        postes = rh.Poste.objects.filter(
+        postes = rh.Poste.objects.ma_region_ou_service(request.user).filter(
             Q(nom__icontains=q) | Q(type_poste__nom__icontains=q) |
             Q(rh_dossiers__employe__nom__icontains=q) |
             Q(rh_dossiers__employe__prenom__icontains=q)
-        ).distinct()
-        return postes
+        )
+        return postes.distinct()
 
     def format_result(self, poste):
         return unicode(poste)