Bug #2544
Avoir d'avoir un tréma dans la chaîne de caractère d'une variable pour les workflows "à boucle"
90%
Description
J'ai essayé d'avoir Poseïdon à la place de Poseidon ici :
https://montpellier-agglo.test.au-quotidien.com/admin/workflows/12/status/just_submitted/items/1/
Erreur interne. Du coup j'ai mis Poseidon et j'ai modifié le formulaire en conséquence.
Fichiers
Révisions associées
workflow/svg: correct encoding for textwrap (fix #2544)
Historique
Mis à jour par Frédéric Péters il y a environ 11 ans
Pour mémoire, la trace, et je n'arrive pas à reproduire en local :/
Exception: type = '<class 'xml.parsers.expat.ExpatError'>', value = 'no element found: line 1, column 0' Stack trace (most recent call first): File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 1254, in close 1252 1253 def close(self): > 1254 self._parser.Parse("", 1) # end of data 1255 tree = self._target.close() 1256 del self._target, self._parser # get rid of circular references locals: self = <xml.etree.ElementTree.XMLTreeBuilder instance at 0x2ba2d40> File "/usr/lib/python2.6/xml/etree/ElementTree.py", line 964, in XML 962 parser = XMLTreeBuilder() 963 parser.feed(text) > 964 return parser.close() 965 966 ## locals: text = '' parser = <xml.etree.ElementTree.XMLTreeBuilder instance at 0x2ba2d40> File "/usr/lib/pymodules/python2.6/wcs/admin/workflows.ptl", line 89, in graphviz_post_treatment 87 part on as class selector on the top level svg:g element. 88 ''' > 89 tree = etree.fromstring(content) 90 91 for root in tree: locals: content = '' File "/usr/lib/pymodules/python2.6/wcs/admin/workflows.ptl", line 151, in graphviz 149 return '' 150 if include: > 151 out = graphviz_post_treatment(out) 152 # It seems webkit refuse to accept SVG when using its proper namespace, 153 # and xlink namespace prefix must be xlink: to be acceptable
Mis à jour par Frédéric Péters il y a environ 11 ans
- Assigné à
Frédéric Péterssupprimé
J'ai sauvagement sur le serveur fait :
try: out = graphviz_post_treatment(out) except: return "graphviz post treatment error"
pour le moment.
Mis à jour par Frédéric Péters il y a environ 11 ans
@Thomas et Benjamin : Victor m'a dit que vous aviez parlé d'un module autre que graphviz pour la génération des graphes, de quoi s'agit-il ? (dans l'idée de ne pas s'ennuyer à creuser dans les différences de comportement que je vois ici, si on désire passer à autre chose).
Mis à jour par Benjamin Dauvergne il y a environ 11 ans
C'est surtout Thomas qui s'extasie sur Raphael-JS, j'ai pas le début d'une idée sur le développement d'une version SVG / JS. Je laisse la parole à Thomas.
Mis à jour par Thomas Noël il y a environ 11 ans
- Fichier dotfile-from-wcs.txt dotfile-from-wcs.txt ajouté
L'erreur est au niveau encodage reçu par dot :
Error: Invalid 2-byte UTF8 found in input. Perhaps "-Gcharset=latin1" is needed?
Ci-joint le fichier généré par wcs quand on indique "Poseïdon" dans le nom de test.
Mis à jour par Thomas Noël il y a environ 11 ans
Trouvé : y'a un textwrap qui ajoute des \n un peu trop méchamment, et dans le cas présent ça ajoute un \n en plein milieu de l'encodage utf8 du ï...
Mis à jour par Thomas Noël il y a environ 11 ans
- Statut changé de Nouveau à Solution déployée
- Version cible changé de Au-quotidien 2014.5 à Au-quotidien 2012.3
Proposition (testée sur ma machine) :
diff --git a/wcs/admin/workflows.ptl b/wcs/admin/workflows.ptl index cbcd645..b46b911 100644 --- a/wcs/admin/workflows.ptl +++ b/wcs/admin/workflows.ptl @@ -133,7 +133,10 @@ def graphviz(workflow, url_prefix='', select=None, svg=True, label += ' %s %s' % (_('by'), roles) else: label = item.render_as_line() - label = textwrap.fill(label.replace('"', '\\"'), 20) + label = label.replace('"', '\\"') + label = label.decode('utf8') + label = textwrap.fill(label, 20, break_long_words=False) + label = label.encode('utf8') label = label.replace('\n', '\\n') print >>out, '[label="%s"' % label, if select == '%s-%s' % (i, item.id):
Mis à jour par Thomas Noël il y a environ 11 ans
- % réalisé changé de 0 à 90
Appliqué par commit 2bd656f87984245d78fc554c99295acfa49e7f83.
Mis à jour par Thomas Noël il y a environ 11 ans
Appliqué par commit f1c480f744766e55af6a04ef7904d520df850207.
workflow/svg: correct encoding for textwrap (fix #2544)