Projet

Général

Profil

Development #56374

Vues personnalisées dynamiques: fitrer sur un champ liste d'un formulaire dont les données proviennent d'une source de donnée.

Ajouté par Nicolas Roche il y a plus de 2 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
25 août 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Cela fonctionne avec une liste dont les données proviennent d'une "Liste simple" et donc on s'attendrait à ce que cela fonctionne aussi avec une liste dont les données proviennent d'une "Source de données".


Fichiers

Historique

#1

Mis à jour par Nicolas Roche il y a plus de 2 ans

Pour reproduire,

Créer une source de donnée via une formule :
  • nom: test
  • expression python: [{'id': '1', 'text': 'un'},{'id': '2', 'text': 'deux'}]
Créer un modèle de fiche avec 3 champs :
  • champ 1 de type liste
    • identifiant : cle1
    • Données : Liste Simple avec "un" et "deux"
  • champ 2 de type liste
    • identifiant : cle2
    • Données : Source de données pointant sur la source de donnée "test"
  • champ 3 de type texte
    • nom : valeur
    • identifiant : valeur
  • gabarit : {{ form_var_valeur }}
Ajouter 4 fiches :
cle1 cle2 valeur
un un 1A
un un 1B
deux deux 2A
deux deux 2B
Créer 2 vues personnalisées visibles comme source de données :
  • cle1
    • critères : cle1 avec la valeur personnalisée {{ form_var_cle }}
    • résumé : {{form_var_valeur}}
  • cle2
    • critères : cle2 avec la valeur personnalisée {{ form_var_cle }}
    • résumé : {{form_var_valeur}}
Créer un formulaire avec 3 champs :
  • champ 1 de type texte :
    • idendifiant : cle
  • champ 2 de type liste
    • Données : Source de données pointant sur la source de donnée "test - cle1"
  • champ 3 de type liste
    • Données : Source de données pointant sur la source de donnée "test - cle2"
Accèder au formulaire en ligne :
  • dans le champ 1, taper "un"
  • les valeurs 1A et 1B sont proposées dans le champ 2
  • par contre, il y a aucune valeurs de proposée dans le champ 3
#3

Mis à jour par Frédéric Péters il y a plus de 2 ans

(c'est quand même encore un peu douloureux à lire comme description).

cle2
critères : cle2 avec la valeur personnalisée {{ form_var_cle }}
résumé : {{form_var_valeur}}

Et avec form_var_valeur_raw ?

#4

Mis à jour par Nicolas Roche il y a plus de 2 ans

Et avec form_var_valeur_raw ?

non, je n'ai pas l'impression.

#5

Mis à jour par Frédéric Péters il y a plus de 2 ans

Oui ou non, de manière sûre ?

#6

Mis à jour par Nicolas Roche il y a plus de 2 ans

Non, j'ai testé et ça ne marche pas.

#7

Mis à jour par Frédéric Péters il y a plus de 2 ans

Si ça ne marche pas d'écrire un test il faudrait accompagner ce ticket des fichiers à importer + des instructions extensives sur où taper quoi cliquer et ce qui devrait être vu et ce qui n'est pas vu. Là il y a vraiment besoin de trop d'investissement pour lire ton commentaire 1.

#8

Mis à jour par Nicolas Roche il y a plus de 2 ans

  • Statut changé de Nouveau à Information nécessaire
  • Assigné à mis à Nicolas Roche
#9

Mis à jour par Nicolas Roche il y a plus de 2 ans

Et avec form_var_valeur_raw ?

En fait ça fonctionne sur le ticket lié,
avec {{ ..._raw }} de défini dans le critère de la vue personnalisée
(où ce champ du formulaire est une liste)

Pour me répondre à moi même :
Il faut fournir un identifiant, car sur les listes la recherche se fait sur la clé.
(cf CardDef::get_data_source_items)

> custom_view.get_criterias(formdef=carddef)
<Equal (attribute: 'f2', value: 'xxx')>]

Je fourni un test, au cas où, pour le mettre ne évidence (copié sur celui de #46989).

#10

Mis à jour par Frédéric Péters il y a plus de 2 ans

Et donc il y a rien c'est ok pour fermer ce ticket ainsi ?

Je ne comprends toujours pas ton commentaire initial ("pour reproduire...") et si plus tard le test avec _raw ne marchait vraiment pas ou si c'était autre chose et je ne sais quoi.

#11

Mis à jour par Nicolas Roche il y a plus de 2 ans

Oui et non :

Et avec form_var_valeur_raw ?

Tu me proposais de modifier la valeur du résumé, alors qu'il fallait modifier la valeur du critère en indiquant la clé de l'item, ex: '1'.

Dans le ticket lié où le champ utilisé dans le formulaire est une liste, il fallait indiquer l'équivalent de {{ form_var_cle_raw }}.
(c'est différent parce que dans la procédure indiquée ici pour reproduire le bug, j'ai mis un champ texte).

J'ai pensé que c'était plus ou moins ce que tu me suggérais de faire et que j'avais lu trop vite.

Et donc il y a rien c'est ok pour fermer ce ticket ainsi ?

Oui, j'en profite juste ici pour proposer un test qui couvre ce cas de figure (recherche sur un liste où l'id est différent du texte).
A prendre ou à laisser (moi ça m'aurait aidé).

#12

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Solution proposée à Fermé

Tu me proposais de modifier la valeur du résumé, alors qu'il fallait modifier la valeur du critère en indiquant la clé de l'item, ex: '1'.

Ok j'ai tapé trop vite là ça n'avait de fait aucun sens.

On assigne/cherche en utilisant _raw, ça doit être connu.

Si on veut autre chose la question est posée dans #48556; ton patch étendu à la recherche par libellé pourrait en être le test.

Formats disponibles : Atom PDF