Bug #20327
import d'une action de dispatch paramétrée avec des [form_var...] impossible
0%
Description
Sur cet import :
</item><item id="14" type="dispatch"> <role_key>_receiver</role_key> <role_id role_id="[form_var_dispositif_role]">[form_var_dispositif_role]</role_id> <dispatch_type>manual</dispatch_type> </item><item id="12" type="dispatch"> <role_key>_intructeurs</role_key> <role_id role_id="[form_var_dispositif_role]">[form_var_dispositif_role]</role_id> <dispatch_type>manual</dispatch_type>
on se retrouve avec l'erreur « Fichier invalide (Référence à un rôle inconnu ([form_var_dispositif_role])) »
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Thomas Noël il y a plus de 6 ans
- Fichier 0001-workflows-handle-computed-roles-in-dispatch-xml-impo.patch 0001-workflows-handle-computed-roles-in-dispatch-xml-impo.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Voilà une proposition pour régler ça dans dispatch, et éventuellement à d'autres endroits plus tard.
La partie "if allow_computed and (value.startswith('=') or '[' in value):" est optimiste, autres idées bienvenues si vous en avez, mais je doute qu'on puisse faire mieux.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Ack mais ça me va d'attendre une relecture par Fred.
Mis à jour par Frédéric Péters il y a plus de 6 ans
Je me demande si on a vraiment besoin de allow_computed, on pourrait juste considérer que c'est ok partout. (ça permettra d'insérer de la merde sur un fichier d'export manuellement traffiqué mais personne ne fait ça…)
if allow_computed and (value.startswith('=') or '[' in value):
Selon l'arrivée des templates django, faudra soit inclure {{/{% ici, soit inclure cette partie dans le patch templates.
Mis à jour par Thomas Noël il y a plus de 6 ans
Frédéric Péters a écrit :
Je me demande si on a vraiment besoin de allow_computed, on pourrait juste considérer que c'est ok partout. (ça permettra d'insérer de la merde sur un fichier d'export manuellement traffiqué mais personne ne fait ça…)
Le risque que j'essayais d'éviter, avec ce allow_computed limité à l'import de dispatch, c'est d'avoir un soucis ailleurs avec un rôle dont le nom comporte un "[" : il n'y aurait pas création du rôle, et renvoi d'un id foireux...
Ca pose pas de (trop) gros soucis sur dispatch car le rôle vient d'un SingleSelectWidgetWithOther qui autorise n'importe quoi comme role_id.
if allow_computed and (value.startswith('=') or '[' in value):
Selon l'arrivée des templates django, faudra soit inclure {{/{% ici, soit inclure cette partie dans le patch templates.
Yep, on va voir qui c'est qui gagne.
Mis à jour par Thomas Noël il y a plus de 6 ans
- Fichier 0001-workflows-handle-computed-roles-in-dispatch-xml-impo.patch 0001-workflows-handle-computed-roles-in-dispatch-xml-impo.patch ajouté
Avec utilisation du désormais disponible Template.is_template_string
Mis à jour par Frédéric Péters il y a plus de 6 ans
J'ai fait le tour des plateformes sans trouver un seul rôle avec des crochets; pour moi il y a moins de risque à ne pas avoir ce allow_computed.
Mis à jour par Thomas Noël il y a plus de 6 ans
- Fichier 0001-workflows-handle-computed-roles-in-dispatch-xml-impo.patch 0001-workflows-handle-computed-roles-in-dispatch-xml-impo.patch ajouté
Voici donc sans allow_computed.
Mis à jour par Thomas Noël il y a plus de 6 ans
- Statut changé de En cours à Résolu (à déployer)
commit 41bd08e8d2a9cb4c8351cb5d2d690ed0bd94ee63 Author: Thomas NOEL <tnoel@entrouvert.com> Date: Tue Nov 28 14:15:46 2017 +0100 workflows: handle computed roles in dispatch xml import (#20327)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Frédéric Péters il y a plus de 2 ans
- Lié à Bug #19109: export/import de workflow utilisant une assignation à fonction calculée ajouté
workflows: handle computed roles in dispatch xml import (#20327)