From 3812dd5d47990adb4e6cafa4e064ed3f0afa635b Mon Sep 17 00:00:00 2001 From: Niklas Meinzer Date: Wed, 8 Oct 2025 10:18:56 +0200 Subject: [PATCH] Add past events page --- new-registration-app/main.py | 34 +++++++++++++++++++---- new-registration-app/templates/base.html | 2 +- new-registration-app/templates/index.html | 2 +- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/new-registration-app/main.py b/new-registration-app/main.py index 644020e..b164275 100644 --- a/new-registration-app/main.py +++ b/new-registration-app/main.py @@ -1,7 +1,7 @@ import locale from contextlib import asynccontextmanager -from datetime import datetime -from typing import Annotated, Union +from datetime import datetime, timedelta +from typing import Annotated import starlette.status as status from fastapi import Depends, FastAPI, Request @@ -45,13 +45,37 @@ SessionDep = Annotated[Session, Depends(get_session)] @app.get("/") -async def read_root(request: Request, session: SessionDep): - statement = select(Event).order_by(Event.event_time) +async def index(request: Request, session: SessionDep): + """Displays coming events and a button to register new ones""" + now = datetime.now() + # TODO: Once we refactored to use SQLAlchemy directly, we can probably do a nicer filtering on the date alone + statement = ( + select(Event) + .order_by(Event.event_time) + .where(Event.event_time >= now - timedelta(days=1)) + ) events = session.exec(statement).all() return templates.TemplateResponse( request=request, name="index.html", - context={"events": events, "current_page": "home", "now": datetime.now()}, + context={"events": events, "current_page": "home", "now": now}, + ) + + +@app.get("/past_events") +async def past_events(request: Request, session: SessionDep): + now = datetime.now() + # TODO: Once we refactored to use SQLAlchemy directly, we can probably do a nicer filtering on the date alone + statement = ( + select(Event) + .order_by(Event.event_time) + .where(Event.event_time < now - timedelta(days=1)) + ) + events = session.exec(statement).all() + return templates.TemplateResponse( + request=request, + name="index.html", + context={"events": events, "current_page": "past", "now": now}, ) diff --git a/new-registration-app/templates/base.html b/new-registration-app/templates/base.html index 016b6dd..f73ab1a 100644 --- a/new-registration-app/templates/base.html +++ b/new-registration-app/templates/base.html @@ -24,7 +24,7 @@ Home