Multiples zones par user implémenté
[auf_rh_dae.git] / project / groups.py
index 815ff8c..49abd36 100644 (file)
@@ -14,6 +14,16 @@ HAUTE_DIRECTION = 'Haute direction'
 SERVICE_UTILISATEURS = 'Service utilisateurs'
 
 
+def get_zones_from_user(user):
+    from auf.django.references import models as ref
+    try:
+        profile = user.profile
+    except ObjectDoesNotExist:
+        return ref.ZoneAdministrative.objects.none()
+    else:
+        return profile.zones_administratives.all()
+
+
 def get_employe_from_user(user):
     """
     Retourne un employé AUF à partir de son user Django.
@@ -28,10 +38,24 @@ def get_employe_from_user(user):
 
 
 def is_user_dans_services_centraux(user):
-    employe = get_employe_from_user(user)
-    if employe.id == 2190:  # rola saade gère les DAE des Amériques
-        return False
-    return employe.implantation_id in (15, 19)
+    # Set de codes de zones.
+    zones = set()
+
+    # Set de comparaison (services centraux Montreal et Paris)
+    central_zones = set(['SCM', 'SCP'])
+
+    # Ajout de zones du profil, si existantes.
+    try:
+        profile = user.profile
+    except ObjectDoesNotExist:
+        pass
+    else:
+        zones.update([
+                x[0] for x in profile.zones_administratives
+                .all().values_list('code')
+                ])
+
+    return len(central_zones.intersection(zones)) > 0
 
 
 def is_user_dans_region(user):