Bug #63088
assignation d'une LazyList à un champ fichier (ProgrammingError: can't adapt type 'LazyList')
0%
Description
https://sentry.entrouvert.org/entrouvert/gplexpert/issues/54848/
ProgrammingError: can't adapt type 'LazyList' (18 additional frame(s) were not displayed) ... File "wcs/workflows.py", line 94, in perform_items url = item.perform(formdata) or url File "wcs/wf/edit_carddata.py", line 55, in perform target_data.store() File "wcs/sql.py", line 590, in f return func(*args, **kwargs) File "wcs/qommon/substitution.py", line 27, in f return func(*args, **kwargs) File "wcs/sql.py", line 2301, in store cur.execute(sql_statement, sql_dict)
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 2 ans
- Sujet changé de ProgrammingError: can't adapt type 'LazyList' à assignation d'une LazyList à un champ fichier (ProgrammingError: can't adapt type 'LazyList')
Un champ fichier dans une fiche, une action "modifier la fiche", l'attribution au champ fichier de {{forms|objects:"test-clem"|getlist:"courrier"}
.
Mais la trace dans sentry n'est pas claire, elle n'affiche pas sql_statement en entier mais le dictionnaire qui contient les valeurs passées à l'INSERT ne contient pas de lazylist ou autre,
sql_dict {anonymised: None, backoffice_submission: True, id_display: '82-3', page_no: '1', prefilling_data: None, status: 'wf-recorded', submission_context: None, tracking_code: None, user_id: None, workflow_data: None}
(...)
J'ai copie de la trace par mail et dedans c'est mieux :
sql_dict = { […], 'f1': None, 'f2': <wcs.variables.LazyList object at 0x7fada65b9430>, 'f2_display': 'Fichier joint', 'id': 2}
À noter que cette trace est accompagnée d'une erreur enregistrée https://demarches-departement06.test.entrouvert.org/backoffice/cards/82/logged-errors/18895/ qui expose clairement Impossible d’assigner une valeur au champ « fichier joint »;
- Gabarit : {{forms|objects:"test-clem"|getlist:"courrier"}}
- Message d’erreur : AttributeError: 'LazyList' object has no attribute 'get'
Il faut regarder un peu l'action, c'est possible qu'on pose une donnée (invalide) dans le dictionnaire et qu'ensuite le set_value() échoue, mais ça continue jusqu'au store() où ça saute.
Sur le set_value() qui échoue, il y aurait alors à assurer qu'on remplace mauvaise valeur par None.
Mis à jour par Robot Gitea il y a 7 mois
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/714
- Titre : WIP: tests: add checks for assigning invalid values in "edit card" action (#63088)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/714/files
Mis à jour par Robot Gitea il y a 7 mois
- Statut changé de Solution proposée à Solution validée
Lauréline Guérin (lguerin) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a 7 mois
- Statut changé de Solution validée à Résolu (à déployer)
Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/714
- Titre : tests: add checks for assigning invalid values in "edit card" action (#63088)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/714/files
Mis à jour par Transition automatique il y a 7 mois
- Statut changé de Résolu (à déployer) à Solution déployée
tests: add checks for assigning invalid values in "edit card" action (#63088)