.. -*- coding: utf-8 -*- .. _annexe-technique-4-jinja-filters: ========================================================== Annexe technique 4 - Filtres pour les patrons de documents ========================================================== :Auteurs: Étienne Loks, Ishtar team :Date: 2021-01-08 :Copyright: CC-BY 3.0 :Ishtar Version: v3.1.0 ---------------------------------- Les patrons de documents permettent d'utiliser des filtres sur les données de la base de données. Cela permet essentiellement de mettre en forme les champs . Certains de ces filtres sont directement disponibles via la bibliothèque utilisée dans Ishtar, d'autres ont été développés au sein d'Ishtar. Pour utiliser un filtre, à la suite de la variable, il faut utiliser le caractère `|`, par exemple : `{{variable|capfirst}}`. .. note:: Les filtres peuvent se chaîner. On peut donc écrire : `{{variable|human_date|capitalize}}.` Pour les différents exemples nous utilisons directement une chaîne de caractères pour illuster, en utilisation réelle on utilise un nom de variable. Les différents filtres disponibles sont : - **capfirt** Ce filtre met la première lettre en majuscule et ne touche pas au reste de la chaîne. - `{{"saint georges d'oléron"|capfisrt}}` -> `Saint georges d'oléron` - **lowerfirst** Ce filtre met la première lettre en minuscule et ne touche pas au reste de la chaîne - `{{"SAINT-GEORGES D'OLÉRON"|lowerfirst}}` -> `sAINT GEORGES D'OLÉRON` - **capitalize** Ce filtre met la première lettre de chaque mot en majuscule et le reste de la chaîne en minuscule. - `{{"SAINT-GEORGES D'OLÉRON"|capitalize}}` -> `Saint-Georges d'Oléron` - **human_date** Ce filtre permet d'afficher une date en toutes lettres. - `{{"2020-01-01"|human_date}}` -> `1 janvier 2020` - **splitpart** Ce filtre permet d'extraire un élément depuis une chaîne de caractères en prenant en compte un séparateur. Par exemple depuis la chaîne `2,3,10`, accéder au troisième élément : `10`. Ce filtre nécessite au minimum un argument : le numéro de l'élément souhaité (en commençant le compte à 0). Par défaut le séparateur `,` est utilisé si l'on souhaite un autre séparateur, on spécifie celui-ci en second argument. - `{{"9,2,10"|splitpart(1)}}` -> `2` - `{{"chaise;bureau;papier;paragraphe"|splitpart(0, ";")}}` -> `chaise`