From c8f8d5ada848d2ece9dc673d5784df33936a36d3 Mon Sep 17 00:00:00 2001 From: Mathieu Perrin Date: Fri, 23 Feb 2024 13:00:53 +0000 Subject: [PATCH] 169 - Add future and past event lists --- app/pages/events/event_list.php | 100 ++++++++++++++++++++++---------- database/models/events.db.php | 31 ++++++++++ 2 files changed, 99 insertions(+), 32 deletions(-) diff --git a/app/pages/events/event_list.php b/app/pages/events/event_list.php index ee0011fc..94feb3f7 100644 --- a/app/pages/events/event_list.php +++ b/app/pages/events/event_list.php @@ -5,6 +5,8 @@ formatter("d MMM"); $user = User::getCurrent(); $events = Event::listAllOpen($user->id); +$past_events = Event::listAllPastOpen($user->id); +$future_events = Event::listAllFutureOpen($user->id); if ($can_edit) $draft_events = Event::listDrafts(); @@ -95,39 +97,73 @@ function render_event(EventDto $event) - - - - - - - - - - - - - - - - - - - - - + + +
+ Événements en attente +
NomDates
Événements en attente
Événements publiés
+ + + + + + + + + + + +
NomDates
+ + - + +
+ Événements à venir + + + + + + + + + + + + +
NomDates
+
- - -

Pas d'événement pour le moment 😴

+ + +
+ Événements passés + + + + + + + + + + + +
NomDates
+
+ + +

Pas d'événement pour le moment 😴

+ \ No newline at end of file diff --git a/database/models/events.db.php b/database/models/events.db.php index 55055efc..d7649302 100644 --- a/database/models/events.db.php +++ b/database/models/events.db.php @@ -170,6 +170,37 @@ static function listAllOpen($user_id) return EventDto::fromEventList($events); } + /** @return EventDto[] */ + static function listAllFutureOpen($user_id) + { + $events = em() + ->createQuery("SELECT ev.id, ev.name, ev.start_date, ev.end_date, ev.deadline, ev.open, en.present FROM Event ev" . + " LEFT JOIN ev.entries en WITH en.user = ?1" . + " WHERE ev.open = 1" . + " AND ev.start_date > CURRENT_DATE()" . + " ORDER BY ev.start_date DESC") + ->setParameter(1, $user_id) + ->getArrayResult(); + + return EventDto::fromEventList($events); + } + + /** @return EventDto[] */ + static function listAllPastOpen($user_id) + { + $events = em() + ->createQuery("SELECT ev.id, ev.name, ev.start_date, ev.end_date, ev.deadline, ev.open, en.present FROM Event ev" . + " LEFT JOIN ev.entries en WITH en.user = ?1" . + " WHERE ev.open = 1" . + " AND ev.start_date <= CURRENT_DATE()" . + " ORDER BY ev.start_date DESC") + ->setParameter(1, $user_id) + ->getArrayResult(); + + return EventDto::fromEventList($events); + } + + static function getById($event_id, $user_id = 0) { return em()