Projet

Général

Profil

Bug #25301

export d'une action dispatch où un rôle est construit avec des accents

Ajouté par Frédéric Péters il y a presque 6 ans. Mis à jour il y a presque 6 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
17 juillet 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

  type = '<type 'exceptions.UnicodeDecodeError'>', value = ''ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)'

Stack trace (most recent call first):
  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1092, in _escape_attrib
  1090         return text.encode(encoding, "xmlcharrefreplace")
  1091     except (TypeError, AttributeError):
> 1092         _raise_serialization_error(text)
  1093 
  1094 def _escape_attrib_html(text, encoding):

  locals: 
     encoding = 'us-ascii'
     text = 'R\xc3\xa9seau Loz\xc3\xa8re Nouvelle Vie-[form_var_referent]'

  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 932, in _serialize_xml
   930                         v = qnames[v.text]
   931                     else:
>  932                         v = _escape_attrib(v, encoding)
   933                     write(" %s=\"%s\"" % (qnames[k], v))
   934             if text or len(elem):

  locals: 
     elem = <Element 'role_id' at 0x7fcac310a850>
     encoding = 'us-ascii'
     items = [('role_id', 'R\xc3\xa9seau Loz\xc3\xa8re Nouvelle Vie-[form_var_referent]')]
     k = 'role_id'
     namespaces = None
     qnames = {'backoffice-fields': 'backoffice-fields', 'body': 'body', 'prefill': 'prefill', 'attachments': 'attachments', 'backoffice_filefield_id': 'backoffice_filefield_id', 'action_on_bad_data': 'action_on_bad_data', 'display_title': 'display_title', 'global_actions': 'global_actions', 'set_marker_on_status': 'set_marker_on_status', 'post_data': 'post_data', 'require_confirmation': 'require_confirmation', 'role_key': 'role_key', 'response_type': 'response_type', 'notify_on_errors': 'notify_on_errors', 'anonymise': 'anonymise', 'label': 'label', 'id': 'id', 'display_disabled_items': 'display_disabled_items', 'subject': 'subject', 'user_id': 'user_id', 'to': 'to', 'formdef': 'formdef', 'action_on_5xx': 'action_on_5xx', 'role_id': 'role_id', 'field': 'field', 'trigger': 'trigger', 'role': 'role', 'attachment': 'attachment', 'action_on_app_error': 'action_on_app_error', 'display_button': 'display_button', 'possible_status': 'possible_status', 'allow_portfolio_picking': 'allow_portfolio_picking', 'varname': 'varname', 'type': 'type', 'method': 'method', 'formdef_slug': 'formdef_slug', 'status': 'status', 'show_as_radio': 'show_as_radio', 'extra_css_class': 'extra_css_class', 'record_errors': 'record_errors', 'workflow': 'workflow', 'post': 'post', 'field_id': 'field_id', 'visibility': 'visibility', 'action': 'action', 'data_source': 'data_source', None: None, 'attach_to_history': 'attach_to_history', 'request_signature_key': 'request_signature_key', 'in_listing': 'in_listing', 'by': 'by', 'condition': 'condition', 'triggers': 'triggers', 'in_filters': 'in_filters', 'name': 'name', 'roles': 'roles', 'custom_from': 'custom_from', 'url': 'url', 'items': 'items', 'colour': 'colour', 'required': 'required', 'value': 'value', 'button_label': 'button_label', 'forced_endpoint': 'forced_endpoint', 'item': 'item', 'action_on_network_errors': 'action_on_network_errors', 'last_modification': 'last_modification', 'fields': 'fields', 'dispatch_type': 'dispatch_type', 'title': 'title', 'backoffice_info_text': 'backoffice_info_text', 'action_on_4xx': 'action_on_4xx'}
     tag = 'role_id'
     text = u'R\xe9seau Loz\xe8re Nouvelle Vie-[form_var_referent]'
     v = 'R\xc3\xa9seau Loz\xc3\xa8re Nouvelle Vie-[form_var_referent]'
     write = <built-in method append of list object at 0x7fcac845fcb0>

  File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 939, in _serialize_xml
   937                     write(_escape_cdata(text, encoding))
   938                 for e in elem:
>  939                     _serialize_xml(write, e, encoding, qnames, None)
   940                 write("</" + tag + ">")
   941             else:

  locals: 
     e = <Element 'role_id' at 0x7fcac310a850>
     elem = <Element 'item' at 0x7fcac310aa10>
     encoding = 'us-ascii'
     items = [('type', 'dispatch'), ('id', '2')]
     k = 'type'
     namespaces = None
     qnames = {'backoffice-fields': 'backoffice-fields', 'body': 'body', 'prefill': 'prefill', 'attachments': 'attachments', 'backoffice_filefield_id': 'backoffice_filefield_id', 'action_on_bad_data': 'action_on_bad_data', 'display_title': 'display_title', 'global_actions': 'global_actions', 'set_marker_on_status': 'set_marker_on_status', 'post_data': 'post_data', 'require_confirmation': 'require_confirmation', 'role_key': 'role_key', 'response_type': 'response_type', 'notify_on_errors': 'notify_on_errors', 'anonymise': 'anonymise', 'label': 'label', 'id': 'id', 'display_disabled_items': 'display_disabled_items', 'subject': 'subject', 'user_id': 'user_id', 'to': 'to', 'formdef': 'formdef', 'action_on_5xx': 'action_on_5xx', 'role_id': 'role_id', 'field': 'field', 'trigger': 'trigger', 'role': 'role', 'attachment': 'attachment', 'action_on_app_error': 'action_on_app_error', 'display_button': 'display_button', 'possible_status': 'possible_status', 'allow_portfolio_picking': 'allow_portfolio_picking', 'varname': 'varname', 'type': 'type', 'method': 'method', 'formdef_slug': 'formdef_slug', 'status': 'status', 'show_as_radio': 'show_as_radio', 'extra_css_class': 'extra_css_class', 'record_errors': 'record_errors', 'workflow': 'workflow', 'post': 'post', 'field_id': 'field_id', 'visibility': 'visibility', 'action': 'action', 'data_source': 'data_source', None: None, 'attach_to_history': 'attach_to_history', 'request_signature_key': 'request_signature_key', 'in_listing': 'in_listing', 'by': 'by', 'condition': 'condition', 'triggers': 'triggers', 'in_filters': 'in_filters', 'name': 'name', 'roles': 'roles', 'custom_from': 'custom_from', 'url': 'url', 'items': 'items', 'colour': 'colour', 'required': 'required', 'value': 'value', 'button_label': 'button_label', 'forced_endpoint': 'forced_endpoint', 'item': 'item', 'action_on_network_errors': 'action_on_network_errors', 'last_modification': 'last_modification', 'fields': 'fields', 'dispatch_type': 'dispatch_type', 'title': 'title', 'backoffice_info_text': 'backoffice_info_text', 'action_on_4xx': 'action_on_4xx'}
     tag = 'item'
     text = '\n          '
     v = 'dispatch'
     write = <built-in method append of list object at 0x7fcac845fcb0>

Fichiers

Révisions associées

Révision 0862a94b (diff)
Ajouté par Frédéric Péters il y a presque 6 ans

workflows: fix export/import of computed roles with unicode characters (#25301)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 6 ans

L'export se fait avec include_id=True, qui pose l'id du rôle dans un attribut (xml) role_id; avec un id calculé la forme de cet attribut peut être une expression contenant un accent, et crac.

#3

Mis à jour par Thomas Noël il y a presque 6 ans

  • Statut changé de Solution proposée à Solution validée

Le patch va un tout petit peu plus loin, mais c'est bien ainsi.

#4

Mis à jour par Frédéric Péters il y a presque 6 ans

  • Statut changé de Solution validée à Résolu (à déployer)

Tu vois pour pousser ça en recette dans la journée ?

commit 0862a94bf7def190baa23424d6e597f12a1b47d7
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Tue Jul 17 08:20:38 2018 +0200

    workflows: fix export/import of computed roles with unicode characters (#25301)
#5

Mis à jour par Thomas Noël il y a presque 6 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Frédéric Péters a écrit :

Tu vois pour pousser ça en recette dans la journée ?

Done.

Formats disponibles : Atom PDF