1 Commits
v0.5 ... master

Author SHA1 Message Date
394512f6eb update form 2025-05-27 10:56:48 +02:00
3 changed files with 44 additions and 80 deletions

View File

@@ -1,8 +1,6 @@
from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse
from fastapi.templating import Jinja2Templates
from app.api.main import api_router
@@ -23,40 +21,47 @@ app = FastAPI(
templates = Jinja2Templates(directory="app/templates")
@api_router.get("/")
def index(request: Request):
reg_open, not_before, not_after = is_registration_open()
print(reg_open, not_before, not_after)
if reg_open:
return templates.TemplateResponse(
request=request, name="registration-open.html", context={}
)
elif not_before:
return templates.TemplateResponse(
request=request, name="registration-closed.html", context={
request=request,
name="registration-closed.html",
context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
}
},
)
elif not_after:
return templates.TemplateResponse(
request=request, name="registration-not-open.html", context={
request=request,
name="registration-not-open.html",
context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
}
},
)
@api_router.get("/success.html")
def success(request: Request):
return templates.TemplateResponse(
request=request, name="registration-success.html", context={
request=request,
name="registration-success.html",
context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
}
},
)
app.include_router(api_router, prefix=settings.API_V1_STR)
app.mount("/static", StaticFiles(directory="app/static"), name="static")

View File

@@ -42,4 +42,3 @@ class RegistrationCreate(RegistrationBase):
class Registration(RegistrationBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
timestamp: datetime = Field(default_factory=lambda: datetime.now(tz=settings.TZ))

View File

@@ -8,70 +8,30 @@
<form method="POST" action="/registration/register_form">
<label for="email">Deine E-Mail-Adresse:</label> <input type="email" id="email" name="email" /><br />
<label for="first_name">Dein Vorname:</label> <input type="text" id="first_name" name="first_name" /><br />
<label for="last_name">Dein Nachname:</label> <input type="text" id="last_name" name="last_name" /><br />
<label for="age">Dein Alter:</label> <input type="number" id="age" name="age" /><br />
<label for="email">Deine E-Mail-Adresse:</label> <input type="email" id="email" name="email" required /><br />
<label for="first_name">Dein Vorname:</label> <input type="text" id="first_name" name="first_name" required /><br />
<label for="last_name">Dein Nachname:</label> <input type="text" id="last_name" name="last_name" required /><br />
<label for="age">Dein Alter:</label> <input type="number" id="age" name="age" min="1" max="199" step="1" required /><br />
<fieldset>
<legend>Welche Stimme singst du?</legend>
<label for="voice">Wie lange bleibst du in Ulm?</label>
<select name="voice" id="voice">
<option value="Bass">Bass</option>
<option value="Tenor">Tenor</option>
<option value="Alt">Alt</option>
<option value="Sopran">Sopran</option>
<option value="Alt oder Sopran">Alt oder Sopran</option>
<option value="Bass oder Tenor">Bass oder Tenor</option>
</select><br />
<div>
<input type="radio" id="base" name="voice" value="Bass" />
<label for="base">Bass</label>
</div>
<label for="duration">Wie lange bleibst du in Ulm?</label>
<select name="duration" id="duration">
<option value="1/2 Jahr">1/2 Jahr</option>
<option value="1/2 - 1 Jahr">1/2 - 1 Jahr</option>
<option value="1 - 2 Jahre">1 - 2 Jahre</option>
<option value="mehr als zwei Jahre">länger als 2 Jahre</option>
</select> <br />
<div>
<input type="radio" id="tenor" name="voice" value="Tenor" />
<label for="tenor">Tenor</label>
</div>
<div>
<input type="radio" id="alto" name="voice" value="Alt" />
<label for="alto">Alt</label>
</div>
<div>
<input type="radio" id="soprano" name="voice" value="Sopran" />
<label for="soprano">Sopran</label>
</div>
<div>
<input type="radio" id="women" name="voice" value="Alt oder Sopran" />
<label for="women">Sopran oder Alt</label>
</div>
<div>
<input type="radio" id="men" name="voice" value="Bass oder Tenor" />
<label for="men">Bass oder Tenor</label>
</div>
</fieldset>
<fieldset>
<legend>Wie lange bleibst du in Ulm?</legend>
<div>
<input type="radio" id="halfyear" name="duration" value="1/2 Jahr" />
<label for="halfyear">1/2 Jahr</label>
</div>
<div>
<input type="radio" id="halfyear" name="duration" value="1/2 - 1 Jahr" />
<label for="halfyear">1/2 - 1 Jahr</label>
</div>
<div>
<input type="radio" id="twoyears" name="duration" value="1 - 2 Jahre" />
<label for="twoyears">1 - 2 jahre</label>
</div>
<div>
<input type="radio" id="longterm" name="duration" value="mehr als zwei Jahre" />
<label for="longterm">länger als 2 Jahre</label>
</div>
</fieldset>
<label for="number_of_attempts">Wie oft hast du schon versucht, dich anzumelden?</label><input type="number" id="number_of_attempts" name="number_of_attempts" /><br />
<label for="number_of_attempts">Wie oft hast du schon versucht, dich anzumelden?</label><input type="number" id="number_of_attempts" name="number_of_attempts" min="0" max="10" value="0" required /><br />
<input type="submit" value="Anmelden" />