Projet

Général

Profil

Development #75383

Options de workflow: en cas de changement de type vers un type fichier, les anciennes données font planter l'inspecteur

Ajouté par Benjamin Dauvergne il y a environ un an. Mis à jour il y a environ un an.

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

#2

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

Formats disponibles : Atom PDF