Organigrammes: correction des problèmes d'encodage
authorJean-Philippe Caissy <jpcaissy@piji.ca>
Tue, 6 Mar 2012 21:52:07 +0000 (15:52 -0600)
committerJean-Philippe Caissy <jpcaissy@piji.ca>
Tue, 6 Mar 2012 21:52:07 +0000 (15:52 -0600)
project/rh/graph.py
project/rh/views.py

index f62db0c..d684381 100644 (file)
@@ -1,4 +1,3 @@
-import unicodedata
 from datetime import date
 from django.db.models import Q
 from django.core.urlresolvers import reverse
@@ -20,8 +19,7 @@ def bind_poste_to_graph(graph, postes_by_id):
             n.attr['fillcolor'] = 'azure4'
             n.attr['style'] = 'filled'
 
-        label = unicodedata.normalize('NFKD', label).encode('ascii','ignore')
-        n.attr['label'] = label
+        n.attr['label'] = label.encode('ascii', 'xmlcharrefreplace')
         n.attr['href'] = reverse("admin:rh_employe_change", args=(d.employe_id,))
 
     return graph
index bbefc74..a3acfd7 100644 (file)
@@ -486,7 +486,7 @@ def organigrammes_employe(request, id):
 
     e = dossiers_by_poste[poste.id].employe
     name = u"Organigramme de [%s] %s %s" % (e.id, e.nom.upper(), e.prenom)
-    graph = nx.DiGraph(name=name)
+    graph = nx.DiGraph(name=name.encode('ascii', 'xmlcharrefreplace'))
 
     if rh.Poste.objects.filter(responsable=poste).count() > 0:
         postes = rh.Poste.objects.select_related('implantation').filter((Q(date_fin__gt=date.today()) | Q(date_fin=None)) & (Q(date_debut__lt=date.today()) | Q(date_debut=None)) ).exclude(supprime=True).exclude(responsable=None).all()
@@ -538,12 +538,14 @@ def organigrammes_service(request, id):
 
     postes = rh.Poste.objects.select_related('implantation').filter((Q(date_fin__gt=date.today()) | Q(date_fin=None)) & (Q(date_debut__lt=date.today()) | Q(date_debut=None)) ).filter(service=service).exclude(supprime=True, responsable=None).all()
 
-    graph = pgv.AGraph(directed=True, name=u"Organigramme de « %s »" % service.nom)
+    nom = u"Organigramme de « %s »" % (service.nom)
+    nom = nom.encode('ascii', 'xmlcharrefreplace')
+    graph = pgv.AGraph(directed=True, name=nom)
     graph_service = graph.subgraph(nbunch=[1,2], \
             name="cluster1", \
             style='filled', \
             color='lightgrey', \
-            label=service.nom,
+            label=service.nom.encode('ascii', 'xmlcharrefreplace'),
             labeljust="l")
 
     for p in postes: