conflit réglé merge master et regionalisation
[auf_rh_dae.git] / project / rh / templatetags / rapports.py
index 0083e23..23cb2f2 100644 (file)
@@ -8,8 +8,10 @@ from django.utils.http import urlencode
 
 from auf.django.references.models import Implantation, Region
 
-from project.rh.models import TypeContrat
+from project import groups
+from project.groups import get_employe_from_user
 
+from project.rh.models import TypeContrat
 
 register = Library()
 
@@ -50,14 +52,17 @@ def filter_implantation(context, prefix=None):
 
 @register.inclusion_tag('admin/filter.html', takes_context=True)
 def filter_region_contrat(context):
-    return {
-        'title': u"région",
-        'choices': prepare_choices(
-            Region.objects.values_list('id', 'nom'),
-            'dossier__poste__implantation__region', context,
-            remove=['pays', 'nord_sud']
-        )
-    }
+    request = context['request']
+    user_groups = request.user.groups.all()
+    if groups.grp_correspondants_rh in user_groups or\
+         groups.grp_administrateurs in user_groups or\
+         groups.grp_directeurs_bureau in user_groups:
+        employe = get_employe_from_user(request.user)
+        regions = Region.objects.filter(id=employe.implantation.region.id)
+    else:
+       regions = Region.objects.all()
+    return {'title': u"région",
+            'choices': prepare_choices(regions.values_list('id', 'nom'), 'dossier__poste__implantation__region', context, remove=['pays', 'nord_sud'])}
 
 
 @register.inclusion_tag('admin/filter.html', takes_context=True)
@@ -85,13 +90,17 @@ def filter_implantation_dossier(context):
 
 @register.inclusion_tag('admin/filter.html', takes_context=True)
 def filter_implantation_contrat(context):
-    return {
-        'title': u"implantation",
-        'choices': prepare_choices(
-            Implantation.objects.values_list('id', 'nom'),
-            'dossier__poste__implantation', context
-        )
-    }
+    request = context['request']
+    user_groups = request.user.groups.all()
+    if groups.grp_correspondants_rh in user_groups or\
+         groups.grp_administrateurs in user_groups or\
+         groups.grp_directeurs_bureau in user_groups:
+        employe = get_employe_from_user(request.user)
+        implantations = Implantation.objects.filter(region=employe.implantation.region)
+    else:
+       implantations = Implantation.objects.all()
+    return {'title': u"implantation",
+            'choices': prepare_choices(implantations.values_list('id', 'nom'), 'dossier__poste__implantation', context)}
 
 
 @register.inclusion_tag('admin/filter.html', takes_context=True)