Poste hierarchique WIP
authorJean-Philippe Caissy <jpcaissy@piji.ca>
Thu, 23 Feb 2012 21:53:27 +0000 (15:53 -0600)
committerJean-Philippe Caissy <jpcaissy@piji.ca>
Thu, 23 Feb 2012 21:53:27 +0000 (15:53 -0600)
project/rh/templates/rh/rapports/postes_hierarchie.html
project/rh/views.py

index 36d32b8..46bd3f5 100644 (file)
@@ -6,6 +6,6 @@
 
 {% block contentrapport %}
 
-{{ postes|unordered_list }}
+{{ postes.items|unordered_list }}
 
 {% endblock %}
index bbb58fb..ef15762 100644 (file)
@@ -1,6 +1,7 @@
 # -*- encoding: utf-8 -*-
 from datetime import date
 from itertools import izip
+import networkx as nx
 
 from django.db.models import Q
 from django.contrib.auth.decorators import login_required
@@ -99,16 +100,16 @@ def employe(request, id):
 def rapports_postes_hierarchie(request):
 
     c = {}
+    graph = nx.Graph()
+    postes = rh.Poste.objects.all()
+    postes_id = dict((p.id, p) for p in postes)
+    graph.add_node(p.id for p in postes)
 
-    postes = {}
-    for p in rh.Poste.objects.all():
-        if p.responsable_id not in postes:
-            postes[p.responsable_id] = []
-        else:
-            postes[p.responsable_id].append(p.responsable_id)
-
-    c['postes'] = postes
+    for p in postes:
+        if p.responsable_id != p.id:
+            graph.add_edge(postes_id[p.responsable_id].id, p.id)
 
+    c['postes'] = nx.to_dict_of_lists(graph)
 
     return render_to_response('rh/rapports/postes_hierarchie.html', c, RequestContext(request))