Add team registration and deletion

This commit is contained in:
2025-10-07 11:55:18 +02:00
parent 98c4a93d56
commit 4a470ae09e
3 changed files with 146 additions and 5 deletions

View File

@@ -10,7 +10,7 @@ from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from sqlmodel import Session, SQLModel, create_engine, select
from models import Event, Household, Registration
from models import Event, Household, Registration, TeamRegistration
sqlite_file_name = "database.db"
sqlite_url = f"sqlite:///{sqlite_file_name}"
@@ -152,3 +152,38 @@ async def delete_registration(
session.delete(session.exec(statement).one())
session.commit()
return RedirectResponse(url=f"/event/{event_id}", status_code=status.HTTP_302_FOUND)
@app.post("/event/{event_id}/register_team")
async def add_team_registration(request: Request, event_id: int, session: SessionDep):
form_data = await request.form()
person = form_data["personName"].strip()
work_type = form_data["workType"]
statement = select(TeamRegistration).where(
TeamRegistration.person_name == person, TeamRegistration.work_type == work_type
)
if session.exec(statement).one_or_none() is None:
registration = TeamRegistration(
person_name=person,
event_id=event_id,
work_type=form_data["workType"],
)
TeamRegistration.model_validate(registration)
session.add(registration)
session.commit()
return RedirectResponse(url=f"/event/{event_id}", status_code=status.HTTP_302_FOUND)
@app.get("/event/{event_id}/register_team/{entry_id}/delete")
async def delete_team_registration(
request: Request,
event_id: int,
entry_id: int,
session: SessionDep,
):
statement = select(TeamRegistration).where(TeamRegistration.id == entry_id)
session.delete(session.exec(statement).one())
session.commit()
return RedirectResponse(url=f"/event/{event_id}", status_code=status.HTTP_302_FOUND)