# -*- encoding: utf-8 -*-
from datetime import date
+from django.db.models import Q
from django.contrib.auth.decorators import login_required
from django.utils.encoding import smart_str
from django.shortcuts import redirect, render_to_response, get_object_or_404
def region_protected(model):
def wrapper(func):
def wrapped(request, id):
- from django.db.models import Q
from dae.utils import get_employe_from_user
from dae.decorators import redirect_interdiction
from dae.workflow import grp_drh, grp_correspondants_rh
}
return render_to_response('admin/rh/dossier/apercu.html', c, RequestContext(request))
-@region_protected(rh.Employe)
+@region_protected(rh.Poste)
+def poste_apercu(request, poste_id):
+ c = {
+ 'is_popup' : request.GET.get('_popup', False),
+ 'poste' : get_object_or_404(rh.Poste, pk=poste_id)
+
+ }
+ return render_to_response('admin/rh/poste/apercu.html', c, RequestContext(request))
+
def employe_apercu(request, employe_id):
+ from dae.workflow import grp_drh, grp_correspondants_rh
employe = get_object_or_404(rh.Employe, pk=employe_id)
- try:
- dernier_dossier = rh.Dossier.objects.filter(employe=employe).order_by('-date_debut')[0]
- except:
- dernier_dossier = None
-
+ user_groups = request.user.groups.all()
+
+ dernier_dossier = None
+ dossiers = None
+
+ if request.user.is_superuser or \
+ grp_drh in user_groups:
+ q = Q(employe=employe)
+ if grp_correspondants_rh in user_groups:
+ regions = [d.poste.implantation.region for d in employe.dossiers.all()]
+ q = Q(employe=employe) & Q(implantation__region__in=regions)
+
+ dossiers = rh.Dossier.objects.filter(employe=employe).order_by('-date_debut')
+
c = {
'is_popup' : request.GET.get('_popup', False),
'employe' : employe,
- 'dernier_dossier' : dernier_dossier,
+ 'dossiers' : dossiers,
}
return render_to_response('admin/rh/employe/apercu.html', c, RequestContext(request))
-@region_protected(rh.Poste)
-def poste_apercu(request, poste_id):
- c = {
- 'is_popup' : request.GET.get('_popup', False),
- 'poste' : get_object_or_404(rh.Poste, pk=poste_id)
-
- }
- return render_to_response('admin/rh/poste/apercu.html', c, RequestContext(request))