+#menu li a.disabled { color:#BBD8EC }
+#menu li a.disabled:hover { color:#BBD8EC }
+
.clear { clear:both; }
.gauche { float:left; padding-right:2%; }
.gauche25 { float:left; width:23%; padding-right:2%; }
.droite50 { float:right; width:48%; padding-left:2%; }
.droite60 { float:right; width:58%; padding-left:2%; }
-#menu li a.disabled { color:#BBD8EC }
-#menu li a.disabled:hover { color:#BBD8EC }
+.nombre { text-align:right; }
+.archive td { background-color:#e6e6e6; }
<h1>Employés</h1>
<ul>
+<li style="display:inline"><a href="">Annuaire courriel</a></li>
+<li style="display:inline"><a href="">Annuaire téléphonique</a></li>
+</ul>
+
+{% comment %}
+TODO
+Implémenter interface de recherche rapide et complète telle que sur :
+http://intranet.auf/rubrique46.html
+{% endcomment %}
+
+<ul>
{% for e in employes %}
<li><a href="{% url rh_employe e.id %}">{{ e }}</a></li>
{% endfor %}
--- /dev/null
+<tr{% if d.archive %} class="archive"{% endif %}>
+ <td class="nombre">{{ d.id }}</td>
+ <td><a href ="">{{ d.poste.nom }}</a></td>
+ <td>{{ d.date_debut }}</td>
+ <td>{{ d.date_fin|default_if_none:"" }}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+</tr>
<div id="identification">
<div class="gauche50">
- <h2>{{ employe.civilite }} {{ employe }}</h2>
-{% for d in dossiers_encours %}
- <p>
- {{ d.poste.nom }}
- </p>
- <p>
- {{ d.poste.service|default_if_none:"Service inconnu" }}<br />
- {{ d.poste.implantation.nom }}<br />
- {{ d.poste.implantation.adresse_physique_ville }}
- </p>
-{% endfor %}
+ <h2>{{ employe.civilite }} {{ employe }}</h2>
+ {% for d in dossiers_encours %}
+ <p>
+ {% if employe.genre.upper == 'F' %}
+ {{ d.poste.nom_feminin }}
+ {% else %}
+ {{ d.poste.nom }}
+ {% endif %}
+ </p>
+ <p>
+ {{ d.poste.service|default_if_none:"Service inconnu" }}<br />
+ {{ d.poste.implantation.nom }}<br />
+ {{ d.poste.implantation.adresse_physique_ville }}
+ </p>
+ {% endfor %}
</div>
<div class="gauche50">
- <img alt="Photo" width="150" height="200" />
+ <img src="{{ employe.photo }}" alt="Photo" width="150" height="200" />
</div>
</div>
-<hr />
+<hr class="clear" />
-<div id="infos" class="clear gauche50">
+<div>
+ <h2>Dépendants (ayant-droits)</h2>
+ {% if employe.ayantdroits.all %}
+ <ul>
+ {% for ad in employe.ayantdroits.all %}
+ <li>{{ ad }}</li>
+ {% endfor %}
+ </ul>
+ {% else %}
+ Aucun dépendant.
+ {% endif %}
+</div>
+
+<div id="infos" class="gauche50">
<h2>Informations professionnelles AUF</h2>
<table>
<tbody>
<div id="coord" class="clear gauche50">
<h2>Coordonnées professionnelles AUF</h2>
-
<table>
<tbody>
<tr>
</table>
</div>
-<div id="dossiers" class="clear">
-<h2>Dossiers</h2>
+<div id="postes" class="clear">
+ <h2>Poste{{ dossiers_encours|pluralize }}</h2>
+ Globalement, mettre les infos du poste pertinente (n'en a pas beaucoup)...
+ ... mais surtout les infos du dossier (le fait que cette personne occupe ce poste).
+ {% for d in dossiers_encours %}
+ <table>
+ <tbody>
+ <tr>
+ <th>Nom :</th>
+ <td>{{ d.poste.nom }}</td>
+ </tr>
+ <tr>
+ <th>Implantation :</th>
+ <td>{{ d.poste.implantation }}</td>
+ </tr>
+ <tr>
+ <th>Type de poste :</th>
+ <td>{{ d.poste.type_poste }}</td>
+ </tr>
+ <tr>
+ <th>Service :</th>
+ <td>{{ d.poste.service }}</td>
+ </tr>
+ <tr>
+ <th>Poste du responsable :</th>
+ <td>{{ d.poste.responsable }}</td>
+ </tr>
+ <tr>
+ <th>Régime de travail :</th>
+ <td>{{ d.poste.regime_travail }}</td>
+ </tr>
+ <tr>
+ <th>Nombre d'heures par semaine :</th>
+ <td>{{ d.poste.regime_travail_nb_heure_semaine }}</td>
+ </tr>
+ </tbody>
+ </table>
+ {% endfor %}
+</div>
-<ul>
-{% for d in employe.dossiers.all %}
- <li>
- <a href ="">{{ d }}</a>
- {% if d not in dossiers_encours %}
- <i>(archive)</i>
- {% endif %}
- </li>
-{% endfor %}
-</ul>
+<div id="dossiers">
+ <h2>Dossier{{ dossiers|pluralize }}</h2>
+ <table>
+ <thead>
+ <tr>
+ <th></th>
+ <th>Poste</th>
+ <th>Début</th>
+ <th>Fin</th>
+ <th>Contrat(s)</th>
+ <th>Début</th>
+ <th>Fin</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for d in dossiers_encours %}
+ {% include "rh/include/dossier.html" %}
+ {% endfor %}
+ {% for d in dossiers_passes %}
+ {% include "rh/include/dossier.html" %}
+ {% endfor %}
+ </tbody>
+ </table>
</div>
+
+{% comment %}
+* Pièces jointes (Employé, Poste, Dossier?)
+* Commentaire / remarque ? attention, commentaires privés des gestionnnaires?
+* Rémunération
+* Évaluation
+{% endcomment %}
+
{% endblock %}
# -*- encoding: utf-8 -*-
from datetime import date
+
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect, render_to_response, get_object_or_404
from django.template import RequestContext
employe = rc['this_employe']
- # dossiers en cours
+ # dossiers en cours et passés
today = date.today()
- dossiers_encours = employe.dossiers.all().exclude(date_debut__gt=today) \
- .exclude(date_fin__lt=today)
+ dossiers = employe.dossiers.all().order_by('-date_fin')
+ dossiers_passes = dossiers.filter(date_fin__lt=today)
+ dossiers_futurs = dossiers.filter(date_debut__gt=today)
+ dossiers_p_f = dossiers_passes | dossiers_futurs
+ ids_dossiers_p_f = [d.id for d in dossiers_p_f]
+ dossiers_encours = dossiers.exclude(id__in=ids_dossiers_p_f)
+
+ for d in dossiers_passes:
+ d.archive = True
c['user'] = request.user
c['employe'] = employe
+ c['dossiers'] = dossiers.count()
+ c['dossiers_passes'] = dossiers_passes
c['dossiers_encours'] = dossiers_encours
return render_to_response('rh/profil.html', c, rc)
# -*- encoding: utf-8 -*-
+from datetime import date
+
from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
from django.template import RequestContext
"""Accueil = Tableau de bord de l'utilisateur"""
rc = RequestContext(request)
c = {}
+ today = date.today()
- # TODO : debug
- employes = rh.Employe.objects.filter(actif=True).exclude(supprime=True).order_by('?')
+ # employés présents = metadata ok et dossiers présents
+ employes = rh.Employe.objects \
+ .filter(actif=True, supprime=False) \
+ .filter(dossiers__actif=True, dossiers__supprime=False) \
+ .exclude(dossiers__date_debut__gt=today) \
+ .exclude(dossiers__date_fin__lt=today) \
+ .order_by('?')
c['employes'] = employes[0:10]
return render_to_response('accueil.html', c, rc)