Paramétrage avancé des fiches
Utiliser un identifiant unique personnalisé
Configurer l'identifiant unique personnalisé
Depuis la page de conception d'un modèle de fiche, un clic sur « Gabarits » permet d'accéder à la zone « Gabarit pour un identifiant unique » qui permet de définir le champ qui sera utilisé comme identifiant (ou de construire cet identifiant sans en faire un champ).
Une fois le gabarit renseigné, l'identifiant est disponible dans la variable {{ form_identifier }}
L'utilisation de cet identifiant stable permettra d'éviter, par exemple, que les références aux fiches changent lors d'une migration depuis la plateforme de test vers la plateforme de production.
Mettre à jour les fiches
L'autre avantage important lié à l'utilisation d'un identifiant personnalisé stable concerne la mise à jour des fiches lors d'un import CSV (fonctionnalité disponible uniquement lors d'un import JSON auparavant).
La case à cocher « Mettre à jour les fiches existantes » va permettre de mettre à jour toutes les fiches dont l'identifiant existe déjà.
L'import JSON continue de fonctionner comme avant si aucun identifiant personnalisé n'est défini : l'identifiant interne UUID des fiches est utilisé pour les mises à jour. Mais si un identifiant personnalisé est défini, il est utilisé en lieu et place de l'UUID.
Lier un modèle de fiche à une page
Généralités
Depuis le menu burger d'une page du portail, vous pouvez utiliser l'entrée « Lier un modèle de fiche » pour choisir le modèle auquel vous voulez lier la page.
Avoir cette liaison permet de disposer d'un paramètre supplémentaire dans les cellules Fiche(s) de la page : « Fiche dont l'identifiant est dans l'URL ». Ce paramètre autorisera l'utilisation d'une URL du type HTTPS://ADRESSE-DE-LA-PAGE/IDENTIFIANT-FICHE/ pour afficher une fiche donnée.
Faire un moteur de recherche sur les fiches
La cellule recherche de combo peut être configurée pour chercher des usagers, codes de suivi, pages, et/ou demandes.
De la même façon cette cellule, peut être utilisée pour chercher des fiches en plus ou à la place des éléments précités. Pour cela vous devez, dans cet ordre :
- Créer une page dédiée dans combo et utiliser l'entrée « Lier un modèle de fiche » dans le menu burger. Sélectionner le modèle de fiche concerné.
- Ajouter sur cette page une cellule « Fiche(s) » et choisir comme fiche à afficher « Fiche dont l'identifiant est dans l'URL ».
- Sur une autre page du portail, configurer une cellule recherche pour qu'elle utilise cette page. Dans l'écran de configuration de la cellule, en face de « Ajouter : », cliquer sur le nom du modèle de fiches lié.
Des options supplémentaires pour la recherche de fiches depuis le portail donnent la possibilité de limiter la recherche à une vue personnalisée et de ne pas prendre en compte l’usager connecté. Cochez cette case si vous n'avez pas de résultats dans le moteur.
Avoir des cellules fiches liées sur une page Combo
Après avoir construit un moteur de recherche sur les fiches tel que décrit ci-dessus, il est fréquent de vouloir afficher sur la page de résultat d'autres cellules fiche(s) liées à la cellule fiche(s) principale (celle liée à la page).
Lorsque des modèles de fiches différents utilisent un référentiel commun, ils sont liés. Prenons l'exemple de 3 modèles de fiche :
- Établissements
- Personnes de contact
- Activités
Le modèle des activités contient un établissement qui vient des fiches établissements et c'est la même chose pour le modèle personne de contact. Les modèles « Activités » et « Personnes de contact » sont donc liés par l'utilisation de ce référentiel commun.
Pour exploiter ce lien dans la page combo des résultats, il suffit de donner un identifiant à la cellule fiche(s) principale.
En configurant une cellule fiche(s) secondaire, on aura alors une entrée supplémentaire dans la liste déroulante «
Lier un usager à une fiche
Il est fréquemment utile de lier une fiche particulière, contenant des informations métier, à un usager (à un compte) dans Publik. Le but étant :
- de pouvoir donner à cet usager des droits particuliers pour voir / modifier la fiche en question,
- de permettre aux agents habilités de voir immédiatement les informations métier liées à tel ou tel usager.
Pour pouvoir lier des usagers à des fiches, il est nécessaire d'activer dans le modèle de fiche « Lien avec un usager » (en choisissant « Optionnel »).
Une fois fait, on dispose lors de la création ou de la modification de chaque fiche d'une liste déroulante des utilisateurs en barre latérale, elle permet de choisir l'usager que l'on souhaite associer à la fiche.
Lorsqu'une fiche est liée à un usager, le filtre |filter_by_user pourra être utilisé. Par exemple dans une cellule « Contenu d'une fiche », on pourra récupérer l'identifiant d'une fiche grâce à une expression du type :
{{ cards|objects:"enfant"|filter_by_user:request.user|first|get:"id"}}
|filter_by_user:considered_user peut être utilisé dans les formulaires/fiches pour désigner le demandeur et pas la personne connectée (pour un usage backoffice).
Construire une couche cartographique GeoJson avec des fiches
Pour construire une couche cartographique geojson basée sur des fiches, vous devez concevoir un modèle de fiche avec :
- Un champ de type carte
- Une action de géolocalisation dans le workflow
Vous pourrez alors utiliser une URL de ce type comme couche cartographique dans combo :
{{eservices_url}}api/cards/IDENTIFIANT-MODELE-DE-FICHE/geojson?full=on
Cette couche cartographique sera ensuite utilisable pour afficher une carte sur le portail via une cellule carte.
Utiliser plusieurs fiches liées à une demande
Les données d'une fiche liée à une demande sont accessibles depuis cette dernière grâce aux variables {{ form_links_IDENTIFIANT_XXX }} ou XXX désigne les champs de la fiche et IDENTIFIANT le nom de l'action qui l'a créée.
Si plusieurs fiches sont liées à une demande suite à un appel webservice, il est possible d'accéder séparément aux informations des différentes fiches en utilisant un numéro d'index pour désigner la fiche visée :
{{ form_links_IDENTIFIANT_0_form_url }}.
L'ensemble des fiches est en effet accessible dans une liste via :
{{ form_links_IDENTIFIANT }}
Affichage expérimental (déconseillé) : la cellule Prototype JSON
Cette pratique est déconseillée au profit de la cellule Fiche(s). Une cellule prototype JSON n'est pas conçue pour être exploitée en production. Il est possible en revanche de s'en servir de modèle pour développer une cellule combo spécifique utilisable en production.
Configurer un accès aux API
Il s'agit d'un pré-requis. Pour pouvoir utiliser une cellule Prototype JSON, vous devez au préalable créer un compte d'accès aux API.
Depuis l'entrée « Gestion d'identité » du menu latéral vous pouvez accéder à « Clients d'API » puis « Ajouter un nouveau client d'API ».
Vous choisissez alors un nom, un identifiant et un mot de passe (c'est une bonne idée de conserver le mot de passe automatiquement généré) pour cet accès. Après création du compte, ces paramètres seront utilisables dans l'URL de la cellule JSON.
Configurer la cellule
Dans la cellule Combo il faut spécifier une URL de la forme :
https://IDENTIFIANT-API:MOT-DE-PASSE-API@{{eservices_url|split:"://"|get:1}}api/cards/SLUG-DE-LA-FICHE/list/SLUG-DE-LA-VUE/?full=on
Mettez <pre>{{json|pprint}}</pre> dans le corps de la cellule pour afficher l'ensemble de la réponse JSON
Parsez le JSON en utilisant du HTML pour afficher et mettre en forme uniquement les informations que vous souhaitez afficher dans la cellule (et supprimez <pre>{{json|pprint}}</pre> une fois que c'est fait).
Ajouter le paramètre full=on à l'URL de la cellule permettra de disposer de tous les champs des fiches dans le JSON récupéré.