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()
@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)
@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)