Projet

Général

Profil

Bug #73982

pré-remplissage sur une liste depuis un vue personnalisée : erreur « valeur choisie invalide » indue

Ajouté par Thomas Noël il y a environ un an. Mis à jour il y a 7 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
30 janvier 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

On a une liste de fiche « ingrédient / type » (avec type = fruit ou légume) avec une vue filtré selon un critère « type = {{ form_var_type }} »

Un champ form_var_type est pré-remplit à "fruit" sur la page.

Sur la même page, deux champs : une liste qui présente la liste des éléments selon la vue, et une liste à choix multiple avec les mêmes choix.

On pré-remplie ces listes avec l'identifiant d'un des ingrédients de type fruit.

L'affichage des listes est bon, la liste est bien juste cette des type=fruit, et l'élément pré-rempli est bien sélectionné.

Mais un message « valeur choisie invalide » est également visible, qui ne devrait pas être là.


Fichiers

test-bugs-73982-et-73974.tar (20 ko) test-bugs-73982-et-73974.tar app de demo Renaud Boitouzet, 04 avril 2023 17:32
test-bugs-73982-et-73974.tar (20 ko) test-bugs-73982-et-73974.tar v2 Renaud Boitouzet, 05 avril 2023 10:38
valeur-invalide.png (31,1 ko) valeur-invalide.png Frédéric Péters, 26 septembre 2023 18:37

Révisions associées

Révision 20e5ce2c (diff)
Ajouté par Frédéric Péters il y a 7 mois

misc: check selected item field value against updated list of options (#73982)

Historique

#3

Mis à jour par Anaïs Ecuvillon → en congés, retour le 30/04 il y a environ un an

J'ai rencontré le même problème en formation ce matin sur ce formulaire : https://demarches-amiens.test.entrouvert.org/backoffice/forms/36/fields/#itemId_7

Sur le champ Offre d'emploi qui est sourcée sur une vue dynamique personnalisée : https://demarches-amiens.test.entrouvert.org/backoffice/forms/36/fields/7/ avec pré-remplissage avec une donnée calculée.

#4

Mis à jour par Renaud Boitouzet il y a environ un an

De mon côté j’ai contourné ainsi : au lieu de filtrer la vue dynamique en passant l’identifiant du champ pré rempli ailleurs sur la page, je filtre sur l’expression utilisée pour ce pré-remplissage (et filtre |default pour gérer l’absence de valeur).

Du coup ça passe dès le premier calcul de la page. Je ne sais pas si c’est très clair, je peux mettre à jour la page de démonstration du ticket lié si besoin.

#5

Mis à jour par Renaud Boitouzet il y a environ un an

Renaud Boitouzet a écrit :

je peux mettre à jour la page de démonstration du ticket lié si besoin.

Fait https://demarches-cnil.test.entrouvert.org/cnil-internet/test-bug/ et PJ, ça veut dire dupliquer dans le filtre de la vue l'expression de remplissage de la donnée calculée (ou du champ filtre dans mon cas), mais ça permet de ne plus avoir l'erreur…

#6

Mis à jour par Anaïs Ecuvillon → en congés, retour le 30/04 il y a environ un an

Merci pour la réponse Renaud, mais je ne suis pas sûre de pouvoir faire comme toi, en effet j'utilise une donnée calculée car je récupère un paramètre via l'URL. Ou alors je n'ai pas compris ta solution de contournement...

#7

Mis à jour par Renaud Boitouzet il y a environ un an

Anaïs Ecuvillon a écrit :

Merci pour la réponse Renaud, mais je ne suis pas sûre de pouvoir faire comme toi, en effet j'utilise une donnée calculée car je récupère un paramètre via l'URL. Ou alors je n'ai pas compris ta solution de contournement...

En effet, ça complique car {{request.GET}} ne fonctionne qu’au premier appel. J’ai adapté le contournement pour que ça passe mais c’est un peu usine-à-gazesque… : https://demarches-cnil.test.entrouvert.org/test-bug/?filtre=légume et app en PJ. La donnée calculée form_var_filtre a pour valeur {{request.GET.filtre|default:""}}, la vue dynamique est filtrée sur {{request.GET.filtre|default:form_var_filtre|default:""}} ce qui couvre à la fois le premier chargement de la page et les suivants.

#8

Mis à jour par Frédéric Péters il y a 7 mois

J'ai du mal à capter si ce qui est dans l'application est quelque chose qui expose le bug, ou un contournement, et pareil pour l'URL de test.

Aujourd'hui je vais sur https://demarches-cnil.test.entrouvert.org/test-bug/?filtre=l%C3%A9gume et il n'y a pas de message "valeur choisie invalide".

En local pareil ça fonctionne.

Je remonte alors à "Un champ form_var_type est pré-remplit à "fruit" sur la page." et je modifie le préremplissage du champ pour que le préremplissage soit une chaine explicite plutôt que le gabarit basé sur request.GET, ça fonctionne aussi.

Je modifie encore et je remplace le champ "donnée calculée" qui servait de filtre par un champ de type texte, prérempli toujours avec "légume".

Dans cette configuration j'arrive alors à avoir l'affichage décrit.

#9

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 :

#10

Mis à jour par Robot Gitea il y a 7 mois

  • Statut changé de En cours à Solution proposée
#11

Mis à jour par Renaud Boitouzet il y a 7 mois

Frédéric Péters a écrit :

J'ai du mal à capter si ce qui est dans l'application est quelque chose qui expose le bug, ou un contournement, et pareil pour l'URL de test.

Aujourd'hui je vais sur https://demarches-cnil.test.entrouvert.org/test-bug/?filtre=l%C3%A9gume et il n'y a pas de message "valeur choisie invalide".

En local pareil ça fonctionne.

Je remonte alors à "Un champ form_var_type est pré-remplit à "fruit" sur la page." et je modifie le préremplissage du champ pour que le préremplissage soit une chaine explicite plutôt que le gabarit basé sur request.GET, ça fonctionne aussi.

Je modifie encore et je remplace le champ "donnée calculée" qui servait de filtre par un champ de type texte, prérempli toujours avec "légume".

Dans cette configuration j'arrive alors à avoir l'affichage décrit.

J’avais pas mal modifié mon poc initial suite aux messages d’Anaïs, je l’ai restauré sans contournement depuis l’historique du formulaire (et restauré le filtre sur la source de données), il est ici : https://demarches-cnil.test.entrouvert.org/cnil-internet/test-bug-1/?filtre=l%C3%A9gume

on retrouve bien les erreurs décrites dans #73974.

Super si un fix arrive, je me suis justement heurté cette semaine aux limites de mon contournement... Merci !!

#12

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 :

#13

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 :

#14

Mis à jour par Transition automatique il y a 7 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#15

Mis à jour par Transition automatique il y a 5 mois

Automatic expiration

Formats disponibles : Atom PDF