Bug #8118
formdef.workflow_options n'est pas toujours synchro avec les options du workflow
0%
Description
Quand on modifie un workflow et qu'on y change les options, les valeurs indiquées dans les formulaires qui l'utilisent ne "suivent" pas. Et il peut rester d'anciennes valeurs "invisibles".
Cas d'usage:
- j'ai un champ qui a un nom de variable "external_id_num" dans les options de workflow
- je la renseigne dans le formulaire
- je renomme la variable "external_id" dans les options du workflow
- retour dans le formulaire : la valeur du champ correspondant n'existe plus, mais la valeur "external_id_num" existe toujours mais est invisible (sauf dans l'export json)
C'est une source de bogues dans l'usage qui peut être fait des variables de workflow (notamment dans l'usage que j'en fais dans passerelle.contrib.maarch où je vais chercher le schéma json d'un formulaire pour extraire ses options, ce qui n'est peut-être pas une idée de génie, mais j'en ai pas d'autre)
Tout cela est assez lié au format de formdef.workflow_options, simple dictionnaire. On va pas changer cela, mais il faudrait sans doute éviter de le lire en direct et toujours passer par get_variable_options ?
Historique
Mis à jour par Frédéric Péters il y a plus de 8 ans
Passer par get_variable_options ne va pas fonctionner tant qu'il existe des formulaires en place utilisant l'ancien système d'options (celui qui prenait tous les champs des actions de worflow qui étaient vides).
Je propose qu'on discute de ça demain avec l'exemple sous les yeux.
Mis à jour par Frédéric Péters il y a plus de 8 ans
(ce que tu fais, c'est utiliser l'API /$formdef/schema, c'est ça ?)
Mis à jour par Thomas Noël il y a plus de 8 ans
Frédéric Péters a écrit :
(ce que tu fais, c'est utiliser l'API /$formdef/schema, c'est ça ?)
Oui ... http://git.entrouvert.org/passerelle.git/tree/passerelle/contrib/maarch/views.py#n111
Ce n'est pas très joli, mais je n'avais pas d'autre technique à disposition pour indiquer des données hors des fields formdata.