Documentation en ligne

Afficher l'information (via les fiches)

Faire une source de données

Lorsque l'on a créé un modèle de fiche et saisi des données dedans, il est fréquent de vouloir en faire une source de données pour pouvoir utiliser le contenu des fiches dans les démarches ou dans d'autres fiches.

Les « Sources de données » sont utilisées dans Publik pour alimenter des champs de type texte ou liste (une option de ces champs permet de sélectionner la source de données voulue) qui vont afficher les informations qu'elles contiennent, éventuellement en les filtrant. Une source de données ordinaire se construit manuellement dans un espace dédié en remplissant plusieurs paramètres.

Avec les fiches, cela n'est plus nécessaire, c'est automatisé : il suffit de renseigner l'option « Gabarit du résumé » dans le modèle de fiche concerné pour que  ce modèle devienne automatiquement une source de données qui contiendra ce que l'on aura mis dans le gabarit du résumé  (le gabarit peut concaténer plusieurs champs).

Avec, par exemple, un modèle de fiche « Établissements scolaires » ayant un champ dont le nom de variable est form_var_nom, le fait d'indiquer {{form_var_nom}} dans le gabarit du résumé suffit à créer automatiquement une source de données contenant le nom de tous les établissements scolaires enregistrés dans les fiches. La source de données est immédiatement disponible, elle apparaît dans la liste des sources de données.

Pour les champs listes dont la source est un modèle de fiche, vous noterez la présence d'un bouton '+' à côté de la liste qui permet d'ajouter une nouvelle fiche sans avoir à quitter le formulaire ou la fiche en cours de saisie. La nouvelle fiche enregistrée viendra remplir automatiquement le champ de la fiche ou du formulaire que l'on est en train de compléter.

Filtrer les fiches

Vues personnalisées

Les vues personnalisées permettent d'afficher et d'enregistrer dans les interfaces de traitement (des fiches ou des démarches) des vues, sur mesure, adaptées aux besoins des gestionnaires.

Mais lorsque l'on enregistre une vue personnalisée, on peut également choisir d'en faire une source de données en sélectionnant « comme source de données ». La source de données est alors immédiatement disponible après enregistrement de la vue personnalisée.

Cela va permettre d'ajouter à vos sources de données des notions de :

  • Classement : en cliquant sur le titre des colonnes du tableau de traitement vous changer le classement de votre vue personnalisée et donc de votre source de données.
  • Tri : en cliquant sur  « critères » vous allez pouvoir ajouter des critères de tri et les paramétrer.

Vues personnalisées dynamiques

Pour aller encore plus loin et filtrer l'affichage des fiches en fonction d'un critère provenant du formulaire, il faut utiliser les vues personnalisées dynamiques.

Imaginons une fiche « Marchés » et un formulaire me permettant de choisir un jour de la semaine. Le formulaire devra afficher les marchés qui ont cours pour un jour donné, celui sélectionné par l'usager. Pour cela, nous allons construire une vue personnalisée avec un critère « jour » dans laquelle nous indiquerons le nom de variable utilisé dans le formulaire (par exemple {{form_var_jour}}). Il suffira ensuite que le champ liste affichant les marchés ait comme source de données notre vue personnalisée dynamique pour que l'ensemble fonctionne. Petite vidéo explicative :

Attention, quand le champ qui est utilisé pour construire la vue personnalisé dynamique est une champ liste sourcé par un modèle de fiche, il est nécessaire d'ajouter _raw au nom de variable pour que la vue utilise l'identifiant plutôt que le libellé. Cela ne fonctionnera pas sans le _raw

Afficher dans un formulaire les champs d'une fiche qui ne sont pas dans le gabarit du résumé

Via les sources de données issues des fiches, on dispose des informations contenues dans le gabarit du résumé. Mais on souhaite parfois récupérer dans un formulaire une information qui n'est pas présente dans le gabarit du résumé, et qui existe dans un autre champ de la fiche. C'est possible de deux façons différentes :

  • Grâce à la présence dans le formulaire d'un champ alimenté par une source de données issue d'un modèle de fiche. Ce champ va permettre de lier une fiche à la demande.
  • Grâce aux filtres de requêtes qui vont permettre d'aller interroger n'importe quel modèle de fiche.

Champ faisant le lien entre fiche et formulaire

Lorsqu'un champ du formulaire a pour source de données un modèle de fiche (ou une vue personnalisée sur un modèle de fiche), on va pouvoir utiliser son nom de variable et le suffixer avec un underscore suivi de l'identifiant du champ de la fiche pour récupérer la valeur souhaitée.

Par exemple, un champ liste form_var_ecole alimenté pour un modèle de fiche ecole, permettra à l'usager de choisir le nom d'une école particulière. Le modèle de fiche ecole possède un champ form_var_adresse que je souhaite afficher dans le formulaire. Cette adresse sera disponible dans mon formulaire grâce à la variable form_var_ecole_adresse.

À noter que cela fonctionnera avec des champs texte ou liste mais pas avec des listes à choix multiple, des fichiers et des cases à cocher. Pour ces champs, il est possible d'utiliser une variable du type form_var_ecole_live_var_adresse.

Filtres de requêtes

Pour récupérer une information contenue dans une fiche qui n'est pas liée au formulaire, il faut utiliser les filtres de requête. Ces derniers offrent un mode d'interrogation des fiches un peu comparable à un version très simplifiée du langage SQL. Typiquement pour aller chercher dans un modèle de fiche donné une information particulière on utilisera la syntaxe suivante :

cards|objects:"identifiant-modele-fiche"|filter_by:"identifiant-champ"|filter_value:"entrouvert"|first|get:"identifiant-champ-à-afficher"

cards|objects : permet d'identifier le modèle de fiche dans lequel on va chercher l'information.

|filter_by : permet d'identifier le champ sur lequel on va faire porter la recherche. Si je souhaite rechercher sur un nom contenu dans un champs form_var_nom de la fiche, je vais écrire |filter_by : "nom".

|filter_value : c'est la valeur recherchée. À noter que ce peut être une variable, typiquement une variable issue du formulaire, on écrira alors filter_value:form_var_identifiant-du-champ (sans guillemets).

|first : permet de récupérer uniquement le premier résultat (s'il y en a plusieurs).

|get : permet de désigner le champ contenant l'information que l'on souhaite afficher. Si je souhaite afficher un numéro de téléphone contenu dans le champ form_var_telephone, je vais écrire |get:"telephone".

Les filtres de requêtes s'appliquent aux fiches mais aussi aux formulaires, une section leur est consacrée dans la page dédiée aux filtres de requête.

Afficher les fiches dans les portails

Les formulaires ne sont pas les seuls endroits où l'on souhaite afficher de l'information issues des fiches, il est fréquent de vouloir le faire également sur le portail citoyen ou sur le portail agent. On dispose pour cela d'une cellule spécifique.

Il existe également une cellule prototype json utilisable à titre expérimental mais qui n'est pas destinée à une mise en production.

La cellule fiche(s)

Combo (le CMS qui est utilisé pour fabriquer les portails) dispose d'une cellule « Fiche(s) » qui permet de sélectionner un modèle de fiche et qui affichera l'ensemble des fiches ou uniquement certaines fiches du modèle.

Il faut noter que pour pouvoir voir les fiches qui sont derrière les liens affichés, il est nécessaire de disposer des permissions d'accès nécessaires. On peut cocher une option pour n'afficher que les fiches pour lesquelles l'usager a les permissions nécessaires.

Dernière mise à jour le 12 août 2023 16:24 — Éditer