statistics: allow filtering by items field inside block (#75573) #205
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/75573-statistiques-erreur-dans-set-aut"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
d1aea6672d
to96f1679131
96f1679131
to88f9d2ea7a
WIP: statistics: allow filtering by items field inside block (#75573)to statistics: allow filtering by items field inside block (#75573)Ici le bug c'est que les champs liste à choix multiple ne sont pas utilisables comme filtres
ad0f4413d3
mais qu'on propose quand même la case à cocher « statistiques » en BO, et comme situation pas prévue crash.Je suis généreux, plutôt que de cacher cette case je lève la limitation, hop.
La correction de la trace c'est la modif à wcs/formdata.py mais ça demande ensuite quelques adaptations car on utilise le même code que les filtres des vues de traitement, qui ne permet pas de filtrer sur le champ items d'un bloc (j'imagine ça compliqué quand on doit aller fouiller dans formdata.data, mais ici il n'y a pas de spécificité puisqu'on a une colonne normée dédiée statistics_data).
@ -995,3 +995,3 @@
# {"data": [{"FOOBAR": "value1"}, {"FOOBAR": "value2}]}
# → ["value1", "value2"}
field1 = "jsonb_array_elements(%s->'data')->> '%s'" % (
field1 = "jsonb_array_elements(%s->'data')-> '%s'" % (
Ce bout me reste mystérieux et à chaque fois j'abandonne la relecture quand j'arrive ici :/
(mais Pierre m'a dit que c'était ok donc je vais valider)
Ma compréhension c'est que
->>
sort toujours l'élément du JSON sous forme de string, or la valeur d'un ItemsField c'est une liste, donc ça sort n'imp genre un truc qui vaut"['a', 'b']"
, enlever un chevron donne bien['a', 'b']
une vraie liste.Là où ça pourrait poser problème c'est si il y avait genre des entiers dans le JSON, et que derrière du code qui attendait des string reçoit maintenant des entiers. Mais je crois qu'il y a suffisamment de cast python str() explicites partout que ça a peu de chance d'arriver (confiance aux tests, aussi).