Pour le coup je suis arrivé à une solution mais qui ne me satisfait qu’a moitié puisqu’il faut que je copie dans n colonne qui représenterons mes n résultats afin de pouvoir les utiliser plus tard dans mon code HTML.
Voici la formule en question.
1 - La première fait réference à la date du jour :
from datetime import date
evenements = Evenements.lookupRecords(sort_by=‹ Date ›)
Vérifier si des événements existent
if not evenements:
return « »
Filtrer les événements futurs par rapport à la date actuelle
aujourd_hui = date.today()
evenements_futurs = [e for e in evenements if e.Date >= aujourd_hui]
Vérifier s’il y a des événements futurs
if not evenements_futurs:
return « »
Récupérer le prochain événement (celui avec la date la plus proche)
prochain_evenement = min(evenements_futurs, key=lambda x: x.Date)
Formatage de la date pour l’affichage
date_prochain = prochain_evenement.Date.strftime(« %Y/%m/%d »)
nom_evenement = prochain_evenement.Evenement
lieu = prochain_evenement.Lieu
site = prochain_evenement.Site_Internet
Retourner le résultat sous la forme « Nom de l’événement - Date - Lieu »
f"{nom_evenement} - {date_prochain} - {lieu} - {site}"
2 - Les autres font réferences au résultat de la colonne précédente :
from datetime import date
Récupérer la date de l’événement le plus récent dans derniers_evenements_0
if $derniers_evenements_0:
# Extraire la date de la dernière ligne de derniers_evenements_0
dernier_evenement_str = $derniers_evenements_0.split(« \n »)[-1]
if " - " in dernier_evenement_str:
date_part = dernier_evenement_str.split(" - « )[1]
dernier_evenement_date = date.fromisoformat(date_part.replace( »/", « - »))
else:
dernier_evenement_date = today
else:
dernier_evenement_date = date.today()
Récupérer le prochain événement après cette date
evenements = Evenements.lookupRecords(sort_by=‹ Date ›)
prochains_evenements = [e for e in evenements if e.Date > dernier_evenement_date]
if prochains_evenements:
prochain_evenement = min(prochains_evenements, key=lambda x: x.Date)
date_prochain = prochain_evenement.Date.strftime(« %Y/%m/%d »)
nom_evenement = prochain_evenement.Evenement
lieu = prochain_evenement.Lieu
site = prochain_evenement.Site_Internet if prochain_evenement.Site_Internet else « Aucun site disponible »
return f"{nom_evenement} - {date_prochain} - {lieu} - {site}"
else:
return « Aucun événement futur trouvé »
3 - Utilsation :
Pour ceux qui veulent mon objectif était d’aboutir à un carrousel qui afficherait en continue les différents évènements résultants de la formule. ça fonctionne plutôt bien.
Je pense que certains d’entre vous auront des propositions beaucoup plus simple que celle que je présente ici.
Merci d’avance