Bug #61971
export/import/copie d'une action "dispatch" avec rôle sous forme de chaine random (→ "Référence à un rôle inconnu")
Début:
18 février 2022
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Tentative de copie :
https://demarches-validation.test.entrouvert.org/backoffice/workflows/42/status/3/items/9/copy
Et trace :
Exception: type = '<class 'wcs.workflows.WorkflowImportUnknownReferencedError'>', value = 'Référence à un rôle inconnu' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/wcs/workflows.py", line 1305, in _get_role_id_from_xml 1303 return value 1304 raise WorkflowImportUnknownReferencedError( > 1305 _('Unknown referenced role'), details={_('Unknown roles'): {value}} 1306 ) 1307 locals: charset = 'utf-8' elem = <Element 'role_id' at 0x7f9d64669d68> include_id = False role = None role_slug = None self = <DispatchWorkflowStatusItem 1 in status "Erreur technique" (6) in workflow "pcros" (42)> snapshot = False value = 'pcros@entrouvert.com' File "/usr/lib/python3/dist-packages/wcs/workflows.py", line 1318, in _role_init_with_xml 1316 self, 1317 attribute, > 1318 self._get_role_id_from_xml(elem, charset, include_id=include_id, snapshot=snapshot), 1319 ) 1320 locals: attribute = 'role_id' charset = 'utf-8' elem = <Element 'role_id' at 0x7f9d64669d68> include_id = False self = <DispatchWorkflowStatusItem 1 in status "Erreur technique" (6) in workflow "pcros" (42)> snapshot = False File "/usr/lib/python3/dist-packages/wcs/wf/dispatch.py", line 107, in role_id_init_with_xml 105 106 def role_id_init_with_xml(self, elem, charset, include_id=False, snapshot=False): > 107 self._role_init_with_xml('role_id', elem, charset, include_id=include_id, snapshot=snapshot) 108 109 def rules_export_to_xml(self, item, charset, include_id=False): locals: charset = 'utf-8' elem = <Element 'role_id' at 0x7f9d64669d68> include_id = False self = <DispatchWorkflowStatusItem 1 in status "Erreur technique" (6) in workflow "pcros" (42)> snapshot = False File "/usr/lib/python3/dist-packages/wcs/workflows.py", line 1206, in init_with_xml 1204 if getattr(self, '%s_init_with_xml' % attribute, None): 1205 getattr(self, '%s_init_with_xml' % attribute)( > 1206 el, charset, include_id=include_id, snapshot=snapshot 1207 ) 1208 continue locals: attribute = 'role_id' charset = 'utf-8' check_datasources = False el = <Element 'role_id' at 0x7f9d64669d68> elem = <Element 'item' at 0x7f9d64669778> include_id = False self = <DispatchWorkflowStatusItem 1 in status "Erreur technique" (6) in workflow "pcros" (42)> snapshot = False File "/usr/lib/python3/dist-packages/wcs/admin/workflows.py", line 480, in copy 478 new_item = destination_status.append_item(item_type) 479 new_item.parent = destination_status > 480 new_item.init_with_xml(item, 'utf-8', check_datasources=False) 481 482 self.workflow.store( locals: destination_status = <WorkflowStatus 6 'Erreur technique'> destinations = [('3', 'test'), ('4', 'nouveau'), ('5', 'Refuser'), ('6', 'Erreur technique')] form = <wcs.qommon.form.Form object at 0x7f9d64871780> item = <Element 'item' at 0x7f9d64669778> item_type = 'dispatch' new_item = <DispatchWorkflowStatusItem 1 in status "Erreur technique" (6) in workflow "pcros" (42)> self = <wcs.admin.workflows.WorkflowItemPage object at 0x7f9d648714a8> status_id = '6'
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 2 ans
- Description mis à jour (diff)
- Assigné à mis à Frédéric Péters
Mis à jour par Frédéric Péters il y a environ 2 ans
- Sujet changé de Bug sur la copie d'une action de WF "Référence à un rôle inconnu" à export/import/copie d'une action "dispatch" avec rôle sous forme de chaine random (→ "Référence à un rôle inconnu")
Ça n'est pas lié à l'action de copie, c'est le cas aussi sur un export/import, ce qui se passe c'est l'attribution à un "rôle" "autre" sous la forme d'une chaine de caractère random (ici pcros@entrouvert.com); ça fait que la chaine n'est pas détectée comme étant quelque chose de raisonnable,
# if a computed value is possible and value looks like # an expression, use it if WorkflowStatusItem.get_expression(value)['type'] in ('python', 'template'): return value
et que ça finit donc par chercher un rôle qui correspondrait, et fail.
Mis à jour par Frédéric Péters il y a environ 2 ans
- Fichier 0001-misc-allow-straight-email-address-in-role-dispatch-6.patch 0001-misc-allow-straight-email-address-in-role-dispatch-6.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
J'ai hésité à remplacer le check_datasources en un général check_references, qui aurait pu être totalement à False sur cette situation mais ça ne couvrait pas le cas export/import.
Mis à jour par Lauréline Guérin il y a environ 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a environ 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit c0a8a67ebfbdf2df255cbb3fe121a6c31625836b Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Feb 18 15:42:06 2022 +0100 misc: allow straight email address in role dispatch (#61971)
Mis à jour par Transition automatique il y a environ 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: allow straight email address in role dispatch (#61971)