Projet

Général

Profil

Bug #8118

formdef.workflow_options n'est pas toujours synchro avec les options du workflow

Ajouté par Thomas Noël il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
26 août 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

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

#1

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Description mis à jour (diff)
#2

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.

#3

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 ?)

#4

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.

Formats disponibles : Atom PDF