August 23, 2022 Salut tout le monde. Je voulais vérifier un truc: il n'y a pas moyen de limiter la taille d'affichage à moins de 10 pages pour une BDD en mode galerie? C'est une linked view du calendrier et je l'affiche dans un bloc synchronisé qui fait office de pied de page, du coup je me demandais s'il y avait pas un moyen de limiter l'affichage aux 3-4 événements à venir seulement (l'affichage est est filtré sur aujourd'hui ou après) pour que ça prenne moins de place?
Pour afficher un nombre limité d’éléments (en dehors des possibilités natives de Notion), il faut pouvoir filtrer la base de données à l’aide d’une formule qui ne sélectionnera qu’un nombre défini d’éléments. Pour cela, il faut d’abord pouvoir recenser l’ensemble des éléments concernés, d’où la création d’une relation vers une seconde base de données ou vers la même base de données (comme dans le cas présenté, propriété Autorelation). La relation permet de lier tous les événements vers une entrée appelée Filtrage. Remarque : La création de nouvelles entrées liées à Filtrage est facilitée par une vue spécifique, Création d’événements, qui possède un filtre ne permettant d’afficher que les entrées possédant une Autorelation liée à Filtrage. Toute nouvelle entrée créé à partir de cette vue héritera des propriétés du filtre.
La liaison permet de récupérer par agrégation la liste des id() des événements qui nous intéressent (propriété Agrégation des id()). L’id() est un identifiant unique propre à chaque entrée. Il sera visible uniquement dans les entrées possédant une date et dont cette date est supérieure à l’instant présent (now()). Remarque : Pour la démonstration, now() est remplacé dans l’exemple ci-dessous par la propriété now() dont la valeur ne change pas.
→ La propriété id unique est donc une formule du style if(or(prop("Date") < now(), empty(prop("Date"))), format(""), id()) : seuls les id()des événements à venir sont affichés, sinon la propriété reste vide.
→ La propriété Agrégation des id() est une liste pseudo-ordonnée d’identifiants uniques : chaque création d’entrée permet de rajouter un élément à la fin de la liste, de sorte que la liste possède un pseudo-ordre en fonction de la date de création des événements (et non pas en fonction de la date qu’on associe).
→ La propriété Sélection permet, à partir de la liste d’id(), dans un premier temps d’identifier le Xième élément de la liste puis dans un deuxième temps de ne garder que les X premiers éléments :
replace(prop("Agrégation des id()"), "(.*" + replace(prop("Agrégation des id()"), "^([^,]*,){**4**}(.*)$", "$1") + ").*", "$1")
Le résultat de la Sélection est renvoyé par agrégation dans chaque entrée (propriété Éléments sélectionnés) pour pouvoir être comparé avec l’id() unique de chaque entrée.
→ Le propriété Filtre gère la comparaison en recherchant dans les Éléments sélectionnés la présence de l’id() unique :contains(prop("Éléments sélectionnés"), if(empty(prop("id unique")), "x", prop("id unique"))).
Il en résulte que les 4 premiers événements (selon leur ordre de création) dont la date est à venir sont marquées. Il ne reste qu’à appliquer à la vue un filtre pour afficher uniquement les entrées dont la valeur Filtre est vraie (cf. Vue filtrée (4 éléments affichés)).