Development #75383
Options de workflow: en cas de changement de type vers un type fichier, les anciennes données font planter l'inspecteur
Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 mars 2023
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Cf. #75381
On avait cela dans workflow_options :
In [4]: formdef.workflow_options Out[4]: {... 'informations_pratiques_j5': '\n ', ...
Mais l'option informations_pratiques_j5
est désormais un champ fichier, et ça fait donc planter l'inspecteur :
# https://sentry.entrouvert.org/entrouvert/publik/issues/108045/ File "wcs/backoffice/management.py", line 3670, in inspect_variables for k in sorted(substvars.get_flat_keys()): File "wcs/qommon/substitution.py", line 200, in get_flat_keys flatten(key) File "wcs/qommon/substitution.py", line 197, in flatten flatten(new_base, depth=new_depth) File "wcs/qommon/substitution.py", line 197, in flatten flatten(new_base, depth=new_depth) File "wcs/qommon/substitution.py", line 184, in flatten sub_keys = item.inspect_keys() File "wcs/variables.py", line 1383, in inspect_keys if self.raw.get_fs_filename():
car ici raw est une chaîne et pas un PicklableUpload.
Idéalement on aurait un identifiant unique pour identifier l'option (date-heure-varname dans l'id, ou au moins id-varname) mais ce n'est pas le cas. À la place il faudrait en cas de suppression d'une option, nettoyer les formdef.workflow_options de cette option, je suppose qu'en cas de changement de nom on perd aussi les options.
Historique
Mis à jour par Frédéric Péters il y a environ un an
- Statut changé de Nouveau à Fermé
Oui on évite désormais ça en utilisant un uuid pour ces champs. (#73656).