Documentation en ligne

Utiliser les filtres de requête

Les filtres de requêtes se distinguent des autres filtres par leur capacité à interroger et remonter des données comme on pourrait le faire avec un langage de base de donnée de type SQL.

Chercher dans les demandes ou les fiches

Ils permettent de faire des requêtes sur les demandes et les fiches, en utilisant respectivement :

  • forms|objects:"slug-du-formulaire" pour les demandes
  • cards|objects:"slug-du-modele-de-fiche" pour les fiches.
forms|objects:"slug-du-formulaire"|filter_by:"nom"|filter_value:"entrouvert"

permet de chercher, dans un formulaire dont le slug est « slug-du-formulaire », si la valeur « entrouvert » est déjà présente dans un champ dont l'identifiant est « nom ».

Pour désigner le formulaire en cours, on peut remplacer

forms|objects:"slug-du-formulaire" simplement par form_objects

Récupérer la valeur d'un champ

Appliqués à une fiche cette fois, ces filtres peuvent permettre de faire remonter la valeur d'un champ particulier pour une fiche donnée :

cards|objects:"slug-modele-fiche"|filter_by:"nom"|filter_value:"entrouvert"|first|get:"telephone"

permet de récupérer le contenu du champ dont l'identifiant est « telephone », dans un modèle de fiche dont le slug est « slug-modele-fiche », pour la première fiche contenant la valeur « entrouvert » dans le champ dont l'identifiant est « nom ».

Filtres supplémentaires

  • |count retourne le nombre de résultats de la requête
  • |same_user permet de limiter les résultats aux demandes posées par le même utilisateur que la demande de départ.
  • |filter_by_user:form_user permet de filtrer les résultats aux fiches et demandes liées à un usager précis.
  • |filter_by_status:"Libellé du statut" permet de filtrer les résultats sur le statut donné.
  • |exclude_self permet d'exclure la demande de départ des résultats.
  • |order_by:"..." permet de trier les résultats sur le champ dont l'identifiant est passé en paramètre. Par exemple xxx|order_by:"nom"  pour trier sur le champ dont l'identifiant est "nom".
Exemple d'utilisation du filtre |count :
{{form_objects|filter_by:"nom"|filter_value:"entrouvert"|count}} --> retourne un entier

Une condition s'écrirait ainsi :

{% if form_objects|filter_by:"nom"|filter_value:"entrouvert"|count == 0 %}Aucune demande{% endif %}

Dernière mise à jour le 4 mai 2021 13:12 — Éditer