Rapport des postes sans contrats: correction de duplica
authorJean-Philippe Caissy <jpcaissy@piji.ca>
Wed, 22 Feb 2012 16:35:45 +0000 (10:35 -0600)
committerJean-Philippe Caissy <jpcaissy@piji.ca>
Wed, 22 Feb 2012 16:35:45 +0000 (10:35 -0600)
project/rh/templates/rh/rapports/employes_sans_contrat.html
project/rh/views.py

index 8374520..d7b9c2d 100644 (file)
     {% table_header headers %}
 </tr>
 </thead>
-{% spaceless %}{% for c in employes %}
+{% spaceless %}{% for c in employes.values %}
 <tr class="{% cycle 'row1' 'row2' %}">
     <td>{{ c.employe.id }}</td>
     <td>{{ c.employe.nom }}</td>
     <td>{{ c.employe.prenom }}</td>
     <td>
-        {% for d in c.dossiers %}
-            <a href="{% url admin:rh_dossier_change d.id %}">{{ d }}</a>
-        {% endfor %}
+        {% if c.dossiers|length > 1 %}
+        <ul>
+            {% for d in c.dossiers %}
+            <li><a href="{% url admin:rh_dossier_change d.id %}">{{ d }}</a></li>
+            {% endfor %}
+        </ul>
+        {% else %}
+            {% for d in c.dossiers %}
+                <a href="{% url admin:rh_dossier_change d.id %}">{{ d }}</a>
+            {% endfor %}
+        {% endif %}
     </td>
 </tr>
 {% endfor %}{% endspaceless %}
index a758164..c7e2192 100644 (file)
@@ -308,7 +308,7 @@ def rapports_employe_sans_contrat(request):
     if 'o' in request.GET:
         employes_query = employes_query.order_by("%s%s" % ('-' if 'ot' in request.GET and request.GET['ot'] == "desc" else '', request.GET['o']))
 
-    employes = []
+    employes = {}
     for e in employes_query.all():
         dossiers = rh.Dossier.objects.filter(employe=e). \
                 filter(Q(date_fin=None) | Q(date_fin__gt=date.today())). \
@@ -316,7 +316,10 @@ def rapports_employe_sans_contrat(request):
         for d in dossiers:
             contrats = rh.Contrat.objects.filter(Q(dossier=d) & Q(date_fin__lt=date.today())).all()
             if contrats:
-                employes.append({'employe': e, 'dossiers': dossiers})
+                if e.id not in employes:
+                    employes[e.id] = {'employe': e, 'dossiers': set([d])}
+                else:
+                    employes[e.id]['dossiers'].add(d)
 
     headers = [
         ("id", u"# de l'employé"),