From ebd31b564574103ba78cdb2f82d677f460af8986 Mon Sep 17 00:00:00 2001 From: Arthur Belleville Date: Sat, 16 May 2026 00:35:09 +0200 Subject: [PATCH] feat(10-03): add event navigation and user range query --- backend/internal/db/queries/events.sql | 20 ++++++++++++++++++++ backend/internal/web/handlers_events.go | 14 ++++++++------ backend/templates/events.templ | 4 ++-- backend/templates/events_forms.go | 14 ++++++++------ 4 files changed, 38 insertions(+), 14 deletions(-) diff --git a/backend/internal/db/queries/events.sql b/backend/internal/db/queries/events.sql index 4b20a12..a3e7b9b 100644 --- a/backend/internal/db/queries/events.sql +++ b/backend/internal/db/queries/events.sql @@ -24,6 +24,26 @@ RETURNING id, tablo_id, title, event_date, start_time, end_time, description, lo DELETE FROM events WHERE id = $1 AND tablo_id = $2; +-- name: ListUserEventsRange :many +SELECT events.id, + events.tablo_id, + events.title, + events.event_date, + events.start_time, + events.end_time, + events.description, + events.location, + events.created_at, + events.updated_at, + tablos.title AS tablo_title, + tablos.color AS tablo_color +FROM events +JOIN tablos ON tablos.id = events.tablo_id +WHERE tablos.user_id = sqlc.arg(user_id) + AND events.event_date >= sqlc.arg(start_date) + AND events.event_date <= sqlc.arg(end_date) +ORDER BY events.event_date, events.start_time, events.title; + -- name: ListEventsByTabloRange :many SELECT id, tablo_id, title, event_date, start_time, end_time, description, location, created_at, updated_at FROM events diff --git a/backend/internal/web/handlers_events.go b/backend/internal/web/handlers_events.go index 934056d..4551856 100644 --- a/backend/internal/web/handlers_events.go +++ b/backend/internal/web/handlers_events.go @@ -84,12 +84,14 @@ func buildEventsCalendar(month time.Time, events []sqlc.Event) templates.EventsC }) } return templates.EventsCalendar{ - Month: monthStart.Format("2006-01"), - MonthLabel: monthStart.Format("January 2006"), - PrevMonth: monthStart.AddDate(0, -1, 0).Format("2006-01"), - NextMonth: monthStart.AddDate(0, 1, 0).Format("2006-01"), - Days: days, - WeekdayLabs: templates.DefaultWeekdayLabels(), + Month: monthStart.Format("2006-01"), + MonthLabel: monthStart.Format("January 2006"), + PrevMonth: monthStart.AddDate(0, -1, 0).Format("2006-01"), + PrevMonthLabel: monthStart.AddDate(0, -1, 0).Format("January 2006"), + NextMonth: monthStart.AddDate(0, 1, 0).Format("2006-01"), + NextMonthLabel: monthStart.AddDate(0, 1, 0).Format("January 2006"), + Days: days, + WeekdayLabs: templates.DefaultWeekdayLabels(), } } diff --git a/backend/templates/events.templ b/backend/templates/events.templ index 8bbe7f5..3783f7e 100644 --- a/backend/templates/events.templ +++ b/backend/templates/events.templ @@ -21,7 +21,7 @@ templ EventsTabFragment(tablo sqlc.Tablo, calendar EventsCalendar, csrfToken str hx-swap="innerHTML" hx-push-url={ EventMonthURL(tablo.ID, calendar.PrevMonth) } class="ui-button ui-button-soft-neutral-md" - aria-label={ "Previous month: " + calendar.PrevMonth } + aria-label={ "Previous month: " + calendar.PrevMonthLabel } >Previous month Next month @ui.Button(ui.ButtonProps{ Label: "New event", diff --git a/backend/templates/events_forms.go b/backend/templates/events_forms.go index 653a27e..8e5e65c 100644 --- a/backend/templates/events_forms.go +++ b/backend/templates/events_forms.go @@ -28,12 +28,14 @@ type EventCreateErrors struct { } type EventsCalendar struct { - Month string - MonthLabel string - PrevMonth string - NextMonth string - Days []EventCalendarDay - WeekdayLabs []string + Month string + MonthLabel string + PrevMonth string + PrevMonthLabel string + NextMonth string + NextMonthLabel string + Days []EventCalendarDay + WeekdayLabs []string } type EventCalendarDay struct {