1 # -*- encoding: utf-8 -*-
2 from datetime
import date
4 from django
.contrib
.auth
.decorators
import login_required
5 from django
.utils
.encoding
import smart_str
6 from django
.shortcuts
import redirect
, render_to_response
, get_object_or_404
7 from django
.template
import RequestContext
9 from datamaster_modeles
import models
as ref
10 from project
.lib
import get_employe_from_id
12 from rh
import models
as rh
17 """Profil personnel de l'employé - éditable"""
18 rc
= RequestContext(request
)
21 employe
= rc
['this_employe']
23 c
['user'] = request
.user
24 c
['employe'] = employe
25 return render_to_response('rh/profil.html', c
, rc
)
29 def employes_liste(request
):
30 """Liste des employés."""
32 employes
= rh
.Employe
.objects \
33 .filter(actif
=True, supprime
=False) \
34 .filter(dossiers__actif
=True, dossiers__supprime
=False) \
35 .exclude(dossiers__date_debut__gt
=today
) \
36 .exclude(dossiers__date_fin__lt
=today
) \
42 return render_to_response('rh/employes_liste.html', c
, RequestContext(request
))
45 def employe(request
, id):
46 """Information publique sur un employé."""
48 employe
= rh
.Employe
.objects
.get(pk
=id)
50 employe
= rh
.Employe
.objects
.none()
55 return render_to_response('rh/employe.html', c
, RequestContext(request
))
61 def rapports_poste(request
):
63 lookup_params
= dict(request
.GET
.items())
65 for key
, value
in lookup_params
.items():
66 if not isinstance(key
, str):
67 # 'key' will be used as a keyword argument later, so Python
68 # requires it to be a string.
69 del lookup_params
[key
]
70 lookup_params
[smart_str(key
)] = value
72 postes
= rh
.Poste
.actifs
.select_related('implantation').all()
73 postes
= postes
.filter(**lookup_params
)
75 poste_ids
= set([p
.pk
for p
in postes
])
77 dossiers
= rh
.Dossier
.objects
.select_related('poste', 'employe').filter(poste__in
=poste_ids
)
79 employes
= dict((d
.poste
.id, d
.employe
) for d
in dossiers
)
89 line
['implantation'] = p
.implantation
.nom
90 employe
= employes
.get(p
.id)
92 line
['employe_id'] = employe
.id
93 line
['employe_nom'] = employe
.nom
94 line
['employe_prenom'] = employe
.prenom
97 'title': 'Rapport des postes',
101 return render_to_response('rh/rapports/postes.html', c
, RequestContext(request
))