Support #50464
Obtenir les données fraîches d'une fiche depuis une autre fiche et filtrer les fiches sur l'identifiant d'une fiche
0%
Description
- Organisation : https://demarches-validation.test.entrouvert.org/backoffice/cards/21/
- Lien organisation : https://demarches-validation.test.entrouvert.org/backoffice/cards/22/
Le premier modèle possède un champs description
.
Le seconde modèle a l'option "Lien avec un usager" configurée sur "Optionnel" et un champs liste organisation
sourcé sur les fiches Organisations.
(Cela donne https://demarches-validation.test.entrouvert.org/backoffice/data/organisation/8/)
Je souhaite pouvoir accéder à la description de l'organisation en faisant une requête sur les fiches de liens :{{ cards|objects:"lien-organisation"|current_user|filter_by:"organisation"|filter_value:"8"|first|get:"organisation"|get:"description" }}
Le soucis c'est que l'Organisation
pointée par la fiche Lien organisation
semble être une "copie" qui ne se met pas à jour lorsque la fiche Organisation
est mise à jour. J'obtiens donc une valeur de description obsolète (datant de la création du lien).
Lors d'un appel sur l'API : {{ eservices_url }}api/cards/lien-organisation/list?NameID={{ user_nameid }}&filter-user-uuid={{ user_nameid }}&full=on même constat.
Y-a-t'il un moyen d'obtenir des données fraîches sur une fiche organisation en passant par une fiche lien organisation ?
A défaut j'ai tenté de requêter directement l'organisation. Mais "dans ce sens" je n'ai que l'identifiant de l'organisation et je n'ai pas trouvé le moyen de filtrer sur l'identifiant de la fiche. J'ai essayé avec filter_by sur id, internal_id, number_raw, par exemple :{{ cards|objects:"organisation"|filter_by:"number_raw"|filter_value:"8"|first|get:"description" }}
Est-ce que c'est possible de filtrer les fiches sur l'identifiant d'une fiche ?
A défaut je duplique l'identifiant dans une donnée de traitement (https://demarches-validation.test.entrouvert.org/backoffice/workflows/82/status/recorded/) sur laquelle je filtre :
https://demarches-validation.test.entrouvert.org/backoffice/forms/187/fields/1/
Historique
Mis à jour par Frédéric Péters il y a plus de 3 ans
Obtenir les données fraiches ça se fait via l'accès par les propriétés live.
Désolé on n'a pas encore de bon moyen pour communiquer d'un coup d'œil une structure et je ne peux pas comprendre la tienne de ton message. (et je demanderais bien un contexte plus général pour savoir par exemple où tu voudrais faire ça, pour comprendre davantage, mais ça ne donnerait en fait que davantage encore à comprendre, pas jouable).
Sans doute sur des tickets comme ça il serait quand même peut-être utile de mettre un lien vers un inspect, pour avoir directement un endroit où malgré tout tenter de comprendre des choses.
Je comprends que tu ne passes pas par des champs (de type liste); je ne sais pas pourquoi.
Je pense qu'il faut commencer à considérer des interventions dès le moment où il est imaginé nécessaire d'utiliser des requêtes, que c'est en fait quelque chose à éviter. La structure des liens entre fiches s'établit à travers des champs (de type liste), passer par des requêtes ailleurs déstructure.
Voilà j'écris donc ça sans comprendre.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Pour tenter de déconstruire,
{{ cards|objects:"lien-organisation"|current_user|filter_by:"organisation"|filter_value:"8"|first|get:"organisation"|get:"description" }}
Il y a toute une première partie
cards|objects:"lien-organisation"|current_user|filter_by:"organisation"|filter_value:"8"|first
qui devrait juste être "avoir un champ liste avec la fiche "lien organisation" souhaitée sélectionnée.
Et de là, s'il était nommé lien_orga, on aurait form_var_lien_orga_live_var_organisation_description (peut-être, j'écris toujours sans avoir d'inspect pour m'assurer de la syntaxe).
Mais faisons sans ça et avec la requête, (parce que je viens de me rendre compte d'un truc qui simplifie les choses),
Après
cards|objects:"lien-organisation"|current_user|filter_by:"organisation"|filter_value:"8"|first
tu fais
|get:"organisation"|get:"description"
qui te donnent bout par bout des trucs.
Ce qu'il faut plutôt, c'est considérer que ta première partie te donne un objet, à utiliser comme tel, dans sa globalité, et faire :
|get:"form_var_organisation_live_var_description"
Ici aussi pareil sans inpect ce n'est pas nécessairement ça, mais c'est l'idée : exploiter l'objet plutôt que le démonter petit à petit.
Mis à jour par Mikaël Ates (de retour le 29 avril) il y a plus de 3 ans
Je comprends que tu ne passes pas par des champs (de type liste); je ne sais pas pourquoi.
Si si je passe pas un champs de type liste : https://demarches-validation.test.entrouvert.org/backoffice/forms/187/fields/2/
Mais je passe par une source de donnée manuelle tapant sur l'API fiche pour pouvoir filtrer sur l'usager : https://demarches-validation.test.entrouvert.org/backoffice/forms/data-sources/17/
Dans ce cas je me rends compte qu'il n'y a pas de _live_
disponible.
Pour avoir du live sur une SD filtrée sur les usagers, il faudra sûrement #50460 ou #50459.
J'ai modifié le formulaire pour utiliser la SD générée automatique et avoir du live pour tester.
Par exemple sur la demande suivante : https://demarches-validation.test.entrouvert.org/backoffice/management/modifier-une-organisation/88/inspect :
{{ form_var_lien_organisation_live_var_organisation_description }}
: "Radio libre". KO{{ form_var_lien_organisation_live_var_organisation_live_var_description }}
: "Radio libre. Et Belge. Et de Navarre." OK{{ form_var_lien_organisation|get:"form_var_organisation_live_var_description" }}
"None" : KO
Est-ce que ce constat te paraît correct ?
Mis à jour par Frédéric Péters il y a plus de 3 ans
Oui; si l'interrogation est sur la dernière, |get:"form_var_organisation_live_var_description", ça va marcher quand c'est appelé sur l'objet en lui-même (form_var_lien_organisation est juste sa représentation sous forme de chaine); l'attribut "live" est en fait l'objet en lui-même, donc ceci serait ok :
{{ form_var_lien_organisation_live|get:"form_var_organisation_live_var_description"}}
(mais n'a pas tellement d'utilité par rapport à la forme précédente).
Mis à jour par Mikaël Ates (de retour le 29 avril) il y a environ 3 ans
- Statut changé de Nouveau à Information nécessaire
- Assigné à mis à Mikaël Ates (de retour le 29 avril)