GeotrekCE / Geotrek-rando-v3

Geotrek public data website (version 3)
https://geotrek-rando-v3.readthedocs.io/stable/
MIT License
16 stars 14 forks source link

GTR - Home - Suggestions - Pouvoir remonter les x événements à venir (et non pas par ID) #876

Closed babastienne closed 1 year ago

babastienne commented 1 year ago

Proposition de paramètres à ajouter dans la configuration de la page d'accueil :

enableDisplayNextEvents: (false by default)
numberOfEventsToDisplay : (3 by default)

Par défaut ajout de l'encart au-dessus de la zone custom footer html.

dtrucs commented 1 year ago

Dans les suggestions de la page d'accueil, nous avons actuellement la possibilité de remonter des ids (comme pour les autres types). Par exemple :

      {
        "titleTranslationId": "home.events",
        "iconUrl": "/icons/category-events.svg",
        "ids": ["1", "5"],
        "type": "events"
      }

Ici il s'agit de faire cohabiter cette nouvelle fonctionnalité avec l'existant :

      {
        "titleTranslationId": "home.events",
        "iconUrl": "/icons/category-events.svg",
        "numberOfNextEventsToDisplay": 5,
        "type": "events"
      }

Dans cette situation si ids est renseigné, il sera ignoré au profit de numberOfNextEventsToDisplay.

NB: Ce développement sera plus rapide si https://github.com/GeotrekCE/Geotrek-admin/issues/3458 est mis en place.
Aujourd'hui nous manipulons une boucle <endpointType>/<id>/ par rapport à la liste définit par ids pour chaque suggestion et pour cette fonctionnalité une liste.

Si nous pouvons indiquer une liste d'IDs en paramètre d'une boucle, la refacto globale des suggestions se résumerait par un

`<endpointType>/?id[]=${[...ids]}/`

et pour cette fonctionnalité

`/touristicevent/?updated_after=${today}&page_size=${numberOfNextEventsToDisplay}`
camillemonchicourt commented 1 year ago

Oui cette demande de fonctionnalité m'est déjà remonté aussi.

Par contre, pour être bien au clair, comment on choisit les 5 événements à afficher si on en a 15 dans le future ? Il est souhaité de remonter les événements à venir les plus proches de la date actuelle ?

Pour moi, il ne faut pas utiliser updated_after, cela veut juste que l'objet a été modifié après la date fournie. C'est utilisé pour synchroniser des données entre 2 bases de données.

Pour retrouver les événements à venir, on compare la date de fin avec la date du jour. Mais il faudrait pouvoir les ordonner par date, pour ne prendre que les 5 premiers. Pas possible avec l'API actuellement il me semble.

camillemonchicourt commented 1 year ago

PS : C'est UPCOMING, plutôt que NEXT il me semble, si on veut parler des événements à venir.

babastienne commented 1 year ago

Oui en effet, mieux d'utiliser Upcoming.

Et oui, il faut remonter les 5 plus proches de la date du jour dans l'hypothèse où il y a plus de 5 évènements à venir.

D'ailleurs, il faut aussi gérer le cas où il y a moins d'évènements à venir que le nombre configuré dans les paramètres.

Le champ begin_date de l'API peut servir pour retrouver l'information. Attention car il peut arriver que cette valeur soit antérieure à la date du jour (dans les cas d'évènements sur plusieurs jours).

camillemonchicourt commented 1 year ago

Oui c'est pour ça qu'on utilise end_date et pas begin_date.

Par exemple il y a des expositions qui durent 6 mois. La date de début est passée depuis longtemps, mais l'expo est en cours car la date de fin est supérieure à la date du jour.