{% load adminmedia rapports i18n change_list %}
{% block extrastyle %}
-{{ block.super }}
-<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/admin_custom.css">
+ {{ block.super }}
+ <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/admin_custom.css">
{% endblock %}
{% block extrahead %}
-<script type="text/javascript" src="/admin/jsi18n"></script>
-<script type="text/javascript" src="{{ STATIC_URL }}/admin/js/core.js"></script>
-{{ block.super }}
+ <script type="text/javascript" src="/admin/jsi18n"></script>
+ <script type="text/javascript" src="{{ STATIC_URL }}/admin/js/core.js"></script>
+ {{ block.super }}
{% endblock %}
-{% block nomrapport %}Rapport Contrats{% endblock %}
+{% block nomrapport %}
+ Rapport Contrats
+{% endblock %}
-{% block count_elements %}<h2>{{ count }} contrats pour {{ count_employe }} employés</h2>{% endblock %}
+{% block count_elements %}
+ <h2>{{ contrats.count }} contrats pour {{ count_employe }} employés</h2>
+{% endblock %}
{% block contentrapport %}
-
<div id="changelist-filter">
-<h2>{% trans 'Filter' %}</h2>
-{% filter_region_contrat %}
-{% filter_implantation_contrat %}
-{% filter_type_contrat %}
-{% filter_echeance_contrat %}
-{% filter_debut_contrat %}
-{% filter_a_venir %}
+ <h2>{% trans 'Filter' %}</h2>
+
+ {% filter_region_contrat %}
+ {% filter_implantation_contrat %}
+ {% filter_type_contrat %}
+ {% filter_echeance_contrat %}
+ {% filter_debut_contrat %}
+ {% filter_a_venir %}
</div>
-
{% recherche_par_annees cl %}
<table id="result_list" class="results">
-<thead>
-<tr>
- {% table_header headers %}
-</tr>
-</thead>
-{% spaceless %}{% for contrat in contrats %}
-<tr class="{% cycle 'row1' 'row2' %}">
- <td style="text-align:right"><a href="{% url employe_apercu contrat.dossier.employe.id %}">{{ contrat.dossier.employe.id }}</a></td>
- <td><a href="{% url admin:rh_employe_change contrat.dossier.employe.id %}">
- {{ contrat.dossier.employe.nom|upper }}
- {{contrat.dossier.employe.prenom|title }}</a></td>
- <td><a href="{% url admin:rh_poste_change contrat.dossier.poste.id %}">{{ contrat.dossier.poste.nom }}</a></td>
- <td>{{ contrat.dossier.poste.implantation.region }}</td>
- <td>{{ contrat.dossier.poste.implantation }}</td>
+ <thead>
+ <tr>{% table_header headers %}</tr>
+ </thead>
+ {% spaceless %}
+ {% for contrat in contrats %}
+ <tr class="{% cycle 'row1' 'row2' %}">
+ <td style="text-align:right">
+ {{ contrat.dossier.employe.id }}
+ </td>
+ <td>{{ contrat.dossier.employe.nom|upper }} {{ contrat.dossier.employe.prenom|title }}</td>
<td>
- {% if contrat.fichier %}
- <a href="{{ contrat.fichier.url }}">{{ contrat.type_contrat.nom }}</a>
- {% else %}
- {{ contrat.type_contrat.nom }}
- {% endif %}
+ <a href="{% url admin:rh_dossier_change contrat.dossier.id %}">
+ Dossier
+ </a>
+ : {{ contrat.dossier.poste.nom }}
+ </td>
+ <td>
+ {% if contrat.fichier %}
+ <a href="{{ contrat.fichier.url }}">{{ contrat.type_contrat.nom }}</a>
+ {% else %}
+ {{ contrat.type_contrat.nom }}
+ {% endif %}
</td>
- <td>{{ contrat.dossier.get_statut_residence_display }}</td>
<td>{{ contrat.date_debut }}</td>
<td>{{ contrat.date_fin|default:'' }}</td>
-</tr>
-{% endfor %}{% endspaceless %}
+ <td>{{ contrat.dossier.get_statut_residence_display }}</td>
+ <td>{{ contrat.dossier.poste.implantation.region.nom }}</td>
+ <td>{{ contrat.dossier.poste.implantation.nom }}</td>
+ </tr>
+ {% endfor %}
+ {% endspaceless %}
</table>
-
{% endblock %}
@login_required
@drh_or_admin_required
def rapports_contrat(request):
+ # statut default = actif?
if 'HTTP_REFERER' in request.META.keys():
referer = request.META['HTTP_REFERER']
referer = "/".join(referer.split('/')[3:])
params.update({'statut': 'Actif'})
request.GET = params
- lookup_params = get_lookup_params(request)
-
contrats = rh.Contrat.objects.select_related(
'dossier', 'dossier__poste', 'dossier__poste__implantation',
'type_contrat', 'dossier__employe'
)
+ # filters et recherche temporelle
cl = RechercheTemporelle(dict(request.GET.items()), rh.Contrat)
+ lookup_params = get_lookup_params(request)
lookup_params = cl.purge_params(lookup_params)
q_temporel = cl.get_q_temporel(contrats)
q = Q(**lookup_params) & q_temporel
contrats = contrats.filter(q).exclude(dossier__employe__supprime=1)
+ # tri
if 'o' in request.GET:
contrats = contrats.order_by(
('-' if request.GET.get('ot') == "desc" else '') + request.GET['o']
)
+ # affichage
employes = set([c.dossier.employe_id for c in contrats])
headers = [
- ("dossier__employe__id", u"# de l'employé"),
+ ("dossier__employe__id", u"#"),
("dossier__employe__nom", u"Employé"),
- ("dossier__poste__nom", u"Poste"),
+ ("dossier", u"Dossier : Poste"),
+ ("type_contrat__nom", u"Contrat"),
+ ("date_debut", u"Début contrat"),
+ ("date_fin", u"Fin contrat"),
+ ("dossier__statut_residence", u"Statut"),
("dossier__poste__implantation__region", u"Région"),
("dossier__poste__implantation", u"Implantation"),
- ("type_contrat__nom", u"Type de contrat"),
- ("dossier__statut_residence", u"Statut de résidence"),
- ("date_debut", u"Date début"),
- ("date_fin", u"Date fin"),
]
- h = SortHeaders(request, headers, order_field_type="ot", order_field="o")
+ h = SortHeaders(
+ request, headers, order_field_type="ot", order_field="o",
+ not_sortable=('dossier',)
+ )
c = {
'cl': cl,
'title': 'Rapport des contrats',
'contrats': contrats,
- 'count': len(contrats),
'count_employe': len(employes),
'headers': list(h.headers()),
}
-
return render(request, 'rh/rapports/contrats.html', c)
)
# employés sans contrat
- employes = rh.Employe.objects.filter(rh_dossiers__in=dossiers_sans_contrat).distinct()
+ employes = rh.Employe.objects.filter(
+ rh_dossiers__in=dossiers_sans_contrat
+ ).distinct()
if 'o' in request.GET:
employes = employes.order_by(
('-' if request.GET.get('ot') == "desc" else '') + request.GET['o']
# affichage
headers = [
- ("id", u"# de l'employé"),
+ ("id", u"#"),
("nom", u"Employé"),
("dossier", u"Dossier : Poste"),
- ("dossier_date_debut", u"Début occupation poste"),
- ("dossier_date_fin", u"Fin occupation poste"),
+ ("dossier_date_debut", u"Début dossier"),
+ ("dossier_date_fin", u"Fin dossier"),
]
h = SortHeaders(
request, headers, order_field_type="ot", order_field="o",