From 63e17dff508cc5c8fe69530395f4c681fc0293ca Mon Sep 17 00:00:00 2001 From: PA Parent Date: Wed, 7 Dec 2011 15:38:11 -0500 Subject: [PATCH] Rapport: Premier jet --- project/rh/models.py | 3 ++- project/rh/templates/rh/rapports/postes.html | 37 ++++++++++++++++++++++++++ project/rh/urls.py | 5 ++++ project/rh/views.py | 35 ++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 project/rh/templates/rh/rapports/postes.html diff --git a/project/rh/models.py b/project/rh/models.py index 18003e2..7ea2bc1 100644 --- a/project/rh/models.py +++ b/project/rh/models.py @@ -535,7 +535,8 @@ class Dossier_(AUFMetadata): employe = models.ForeignKey('Employe', db_column='employe', related_name='dossiers', verbose_name=u"Employé") - poste = models.ForeignKey('Poste', db_column='poste', related_name='+') + # TODO: OneToOne ?? + poste = models.ForeignKey('Poste', db_column='poste', related_name='dossiers') statut = models.ForeignKey('Statut', related_name='+', default=3, null=True) organisme_bstg = models.ForeignKey('OrganismeBstg', diff --git a/project/rh/templates/rh/rapports/postes.html b/project/rh/templates/rh/rapports/postes.html new file mode 100644 index 0000000..b0ce839 --- /dev/null +++ b/project/rh/templates/rh/rapports/postes.html @@ -0,0 +1,37 @@ +{% extends 'admin/base_site.html' %} +{% load i18n %} + +{% block breadcrumbs %}{% if not is_popup %} + +{% endif %}{% endblock %} + +{% block content %} +
+ + + + + + + + + + + {% for poste in postes %} + + + + + + + + + {% endfor %} +
# du posteNom du posteImplantation# de l'employéNomPrénom
{{ poste.id }}{{ poste.nom }}{{ poste.implantation }}{{ poste.employe_id }}{{ poste.employe_nom }}{{ poste.employe_prenom }}
+ +
+{% endblock %} diff --git a/project/rh/urls.py b/project/rh/urls.py index d7f925f..5e92fe9 100644 --- a/project/rh/urls.py +++ b/project/rh/urls.py @@ -12,3 +12,8 @@ urlpatterns += patterns( 'project.rh.api', url(r'^employes/(?P\d+)/photo$', 'photo', name='rh_photo'), ) +# Rapports +urlpatterns += patterns( + 'project.rh.views', + url(r'^admin/rh/rapports/postes$', 'rapports_poste', name='rhr_postes'), +) diff --git a/project/rh/views.py b/project/rh/views.py index d623ef6..2f05329 100644 --- a/project/rh/views.py +++ b/project/rh/views.py @@ -52,3 +52,38 @@ def employe(request, id): 'employe':employe, } return render_to_response('rh/employe.html', c, RequestContext(request)) + + +# Rapports + +@login_required +def rapports_poste(request): + + postes = rh.Poste.actifs.select_related('implantation').all() + poste_ids = set([p.pk for p in postes]) + + dossiers = rh.Dossier.objects.select_related('poste', 'employe').filter(poste__in=poste_ids) + + employes = dict((d.poste.id, d.employe) for d in dossiers) + + out = [] + + for p in postes: + line = {} + out.append(line) + + line['id'] = p.id + line['nom'] = p.nom + line['implantation'] = p.implantation.nom + employe = employes.get(p.id) + if employe: + line['employe_id'] = employe.id + line['employe_nom'] = employe.nom + line['employe_prenom'] = employe.prenom + + c = { + 'title': 'Rapport des postes', + 'postes': out, + } + + return render_to_response('rh/rapports/postes.html', c, RequestContext(request)) -- 1.7.10.4