Add team registration and deletion
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user