Bug #50428
evaluation complexe et case à cocher : ne pas cocher renvoie None et non False
0%
Description
Si on a une case à cocher foo, alors si elle est cochée l'évaluation de {{ form_var_foo_raw }} donne True, mais si elle ne l'est pas c'est None (au lieu d'un False qui pourrait être plus logique ici).
Ca plante donc sur un connecteur passerelle qui attend un type:'boolean' dans le schema JSON.
(Si on ne peut rien faire dans w.c.s. (et je pense que c'est le cas) alors il faudra juste faire avec, ie configurer le schéma JSON dans passerelle pour accepter boolean|None, voire modifier le parser des boolean dans le schema si on peut)
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
Ça doit être jouable côté w.c.s., faire un LazyFieldVarBoolean spécialisatn le "raw", je m'en occupe.
Mis à jour par Frédéric Péters il y a environ 3 ans
- Fichier 0001-formdata-return-missing-boolean-value-as-False-not-N.patch 0001-formdata-return-missing-boolean-value-as-False-not-N.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Modif dans parse_decimal parce qu'il y a un test form_var_bool|decimal == 0 et que ce n'était plus correct ça devenait 1 (parce que Decimal(True) donne 1), j'ai trouvé opportun de conserver le comportement de tout le temps retourner 0.
Mis à jour par Thomas Noël il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
Frédéric Péters a écrit :
j'ai trouvé opportun de conserver le comportement de tout le temps retourner 0.
Yep, y'a que les trop vieux informaticiens qui considèrent que True c'est 1.
C'est tout bon pour moi ainsi, go.
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 7e4706e628eef9bc22368f964c62fd471010ee84 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri Jan 22 11:16:36 2021 +0100 formdata: return missing boolean value as False, not None (#50428)
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
formdata: return missing boolean value as False, not None (#50428)