Bug #48881
Valeur incorrecte dans le critère de filtrage d'un champ liste à choix multiple si une virgule est présente dans un élément
0%
Description
Formulaire avec un champ liste à choix multiple donc un des éléments à la valeur foo,bar
. Remplir une demande en choisissant foo,bar
, sur la page de traitement, critère de filtrage, c'est foo
tout seul qui apparaît.
(dans le ticket lié c'est carrément un élément foo
et un autre élément bar
qui apparaît dans le filtrage mais je ne reproduis pas en local)
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
On devrait pouvoir élargir ce ticket en "la présence de virgules dans les valeur d'une liste à choix multiple peut foutre complètement la zone dans son critère de filtrage", il y a ce bout de code qui suppose que les virgules sont utilisées comme séparateur de valeur :
if filter_field.type == 'items': # unnest key/values exploded_options = {} for option_keys, option_label in options: if option_keys and option_label: for option_key, option_label in zip(option_keys, option_label.split(', ')): exploded_options[option_key] = option_label options = list(sorted(exploded_options.items(), key=lambda x: x[1]))
Mis à jour par Frédéric Péters il y a plus de 3 ans
Il faut tirer les options de la colonne structurée text[] plutôt que tenter la reconstitution, mais là il s'agira des identifiants, pas des libellés associés, on n'a pas de chemin garanti libellé -> identifiant.
Mis à jour par Frédéric Péters il y a presque 2 ans
- Dupliqué par Development #64926: Echapper les virgules des critéres de vue personnalisée ajouté
Mis à jour par Frédéric Péters il y a presque 2 ans
Dans #64926 je note :
Avec options qui est du type [(['1', '2'], 'Libellé du 1, Libellé du 2'), ([...], '...')...].
Quand on est sur un champ associé avec une source de données (peut-être limiter ça aux fiches), on pourrait tenter d'obtenir les libellés sur base des ID.
Mis à jour par Frédéric Péters il y a presque 2 ans
- Fichier 0001-backoffice-get-items-filter-options-from-existing-ca.patch 0001-backoffice-get-items-filter-options-from-existing-ca.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Emmanuel Cazenave il y a presque 2 ans
Peut-être ajouter dans le test une fiche avec une une virgule dans le label pour coller au problème soulevé ?
Aussi si je lis bien, ça corrige uniquement pour un champ qui utilise des fiches en sources de donnée, ce qui est déjà cool. Mais donc créer un autre ticket pour qu'on ne perde pas l'info comme quoi il y a toujours un problème sur les champs sans source de donnée fiche ?
Mis à jour par Frédéric Péters il y a presque 2 ans
- Fichier 0001-backoffice-get-items-filter-options-from-existing-ca.patch 0001-backoffice-get-items-filter-options-from-existing-ca.patch ajouté
Peut-être ajouter dans le test une fiche avec une une virgule dans le label pour coller au problème soulevé ?
Voilà dans cette version.
Mis à jour par Emmanuel Cazenave il y a presque 2 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a presque 2 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit ae8e56e1ed18b41755c508b7954e369e3c5730d2 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Fri May 6 10:18:08 2022 +0200 backoffice: get items filter options from existing cards (#48881)
Mis à jour par Transition automatique il y a presque 2 ans
- Statut changé de Résolu (à déployer) à Solution déployée
backoffice: get items filter options from existing cards (#48881)