Add past events page

This commit is contained in:
2025-10-08 10:18:56 +02:00
parent e1130fa493
commit 3812dd5d47
3 changed files with 31 additions and 7 deletions

View File

@@ -1,7 +1,7 @@
import locale import locale
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from datetime import datetime from datetime import datetime, timedelta
from typing import Annotated, Union from typing import Annotated
import starlette.status as status import starlette.status as status
from fastapi import Depends, FastAPI, Request from fastapi import Depends, FastAPI, Request
@@ -45,13 +45,37 @@ SessionDep = Annotated[Session, Depends(get_session)]
@app.get("/") @app.get("/")
async def read_root(request: Request, session: SessionDep): async def index(request: Request, session: SessionDep):
statement = select(Event).order_by(Event.event_time) """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() events = session.exec(statement).all()
return templates.TemplateResponse( return templates.TemplateResponse(
request=request, request=request,
name="index.html", 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},
) )

View File

@@ -24,7 +24,7 @@
<a class="nav-link {% if current_page == 'home' %}active{% endif %}" {% if current_page == 'home' %}aria-current="page"{% endif %} href="/">Home</a> <a class="nav-link {% if current_page == 'home' %}active{% endif %}" {% if current_page == 'home' %}aria-current="page"{% endif %} href="/">Home</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link {% if current_page == 'vergangene' %}active{% endif %}" {% if current_page == 'vergangene' %}aria-current="page"{% endif %} href="/vergangene">Vergangene</a> <a class="nav-link {% if current_page == 'past' %}active{% endif %}" {% if current_page == 'past' %}aria-current="page"{% endif %} href="/past_events">Vergangene</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link {% if current_page == 'preise' %}active{% endif %}" {% if current_page == 'preise' %}aria-current="page"{% endif %} href="/preise">Preise</a> <a class="nav-link {% if current_page == 'preise' %}active{% endif %}" {% if current_page == 'preise' %}aria-current="page"{% endif %} href="/preise">Preise</a>

View File

@@ -2,7 +2,7 @@
{% block content %} {% block content %}
<div class="row mt-4 mb-3"> <div class="row mt-4 mb-3">
<div class="col d-flex justify-content-between align-items-center"> <div class="col d-flex justify-content-between align-items-center">
<h2>Kommende Events</h2> <h2>{% if current_page == "home" %}Kommende{% else %}Vergangene{% endif %} Kochabende</h2>
<a href="/event/add" class="btn btn-primary"> <a href="/event/add" class="btn btn-primary">
<i class="bi bi-plus-circle"></i> Neues Event erstellen <i class="bi bi-plus-circle"></i> Neues Event erstellen
</a> </a>