Bug #3153
pb d'encodage lors d'un trigger-jumps
Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Version cible:
-
Début:
25 juin 2013
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Planning:
Description
Sur recette CG14, crash lors de l'exécution du workflow suite à un jump (plus exactement, lors de la première action "enregistrement dans le journal").
formdata <Premiere-Demande-D-Apa-A-Domicile id:49> jumps to status 33 Traceback (most recent call last): File "/usr/bin/wcsctl", line 8, in <module> ctl.run(sys.argv[1:]) File "/usr/lib/python2.6/site-packages/wcs/qommon/ctl.py", line 150, in run return cmd.run(args, options) File "/usr/lib/python2.6/site-packages/wcs/qommon/ctl.py", line 64, in run return self.execute(base_options, sub_options, args) File "/usr/lib/python2.6/site-packages/wcs/ctl/trigger_jumps.py", line 98, in execute select_and_jump_formdata(formdef, trigger, rows, status_ids) File "/usr/lib/python2.6/site-packages/wcs/ctl/trigger_jumps.py", line 150, in select_and_jump_formdata jump_and_perform(formdata, jump_to, row.get('data')) File "/usr/lib/python2.6/site-packages/wcs/wf/jump.py", line 39, in jump_and_perform url = formdata.perform_workflow() File "/usr/lib/python2.6/site-packages/wcs/formdata.py", line 210, in perform_workflow url = wf_status.perform_items(self) File "/usr/lib/python2.6/site-packages/wcs/workflows.py", line 430, in perform_items url = item.perform(formdata) or url File "/usr/lib/python2.6/site-packages/wcs/wf/register_comment.py", line 41, in perform formdata.evolution[-1].comment = template_on_formdata(formdata, self.comment) File "/usr/lib/python2.6/site-packages/wcs/workflows.py", line 1097, in template_on_formdata processor.generate(fd, dict) File "/usr/lib/python2.6/site-packages/wcs/qommon/ezt.py", line 326, in generate self._execute(self.program, fp, ctx) File "/usr/lib/python2.6/site-packages/wcs/qommon/ezt.py", line 454, in _execute step[0](step[1], fp, ctx) File "/usr/lib/python2.6/site-packages/wcs/qommon/ezt.py", line 457, in _cmd_print _write_value(valref, fp, ctx) File "/usr/lib/python2.6/site-packages/wcs/qommon/ezt.py", line 682, in _write_value fp.write(format(str(value))) UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 1: ordinal not in range(128)
Révisions associées
Historique
Mis à jour par Thomas Noël il y a presque 11 ans
- Statut changé de Nouveau à En cours
Sur un diagnostic de Benj et avec l'indication thérapeutique de Fred :
diff --git a/wcs/workflows.py b/wcs/workflows.py index 5a86327..be01d99 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -1090,6 +1090,11 @@ def template_on_formdata(formdata, template, process=None): for key in dict: dict[key] = process(dict[key]) + charset = get_publisher().site_charset + for k, v in dict.items(): + if isinstance(v, unicode): + dict[k] = v.encode(charset, 'ignore') + processor = ezt.Template(compress_whitespace=False) processor.parse(template or '')
i.e. on encode les unicode en utf-8 avant de les envoyer à ezt (qui ne gère pas ça).
Mis à jour par Frédéric Péters il y a plus de 10 ans
- Statut changé de Résolu (à déployer) à Fermé
template_on_formdata: encode unicode str (#3153)