3 Commits

Author SHA1 Message Date
5b92bc8465 Ask for age instead of birth date
All checks were successful
release-tag / release-image (push) Successful in 36s
2025-05-26 20:48:47 +02:00
83ec86b027 update 2025-05-26 20:43:35 +02:00
726767c950 fix? hopefully ..
All checks were successful
release-tag / release-image (push) Successful in 33s
2025-05-26 11:02:21 +02:00
6 changed files with 32 additions and 13 deletions

View File

@@ -26,17 +26,25 @@ templates = Jinja2Templates(directory="app/templates")
@api_router.get("/") @api_router.get("/")
def index(request: Request): def index(request: Request):
reg_open, not_before, not_after = is_registration_open() reg_open, not_before, not_after = is_registration_open()
print(reg_open, not_before, not_after)
if reg_open: if reg_open:
return templates.TemplateResponse( return templates.TemplateResponse(
request=request, name="registration-open.html", context={} request=request, name="registration-open.html", context={}
) )
else: elif not_before:
return templates.TemplateResponse( return templates.TemplateResponse(
request=request, name="registration-closed.html", context={ request=request, name="registration-closed.html", context={
"not_before": settings.NOT_BEFORE, "not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER, "not_after": settings.NOT_AFTER,
} }
) )
elif not_after:
return templates.TemplateResponse(
request=request, name="registration-not-open.html", context={
"not_before": settings.NOT_BEFORE,
"not_after": settings.NOT_AFTER,
}
)
@api_router.get("/success.html") @api_router.get("/success.html")
def success(request: Request): def success(request: Request):

View File

@@ -4,10 +4,9 @@ from pydantic import EmailStr
from sqlmodel import Field, SQLModel from sqlmodel import Field, SQLModel
from enum import Enum from enum import Enum
from datetime import date, datetime from datetime import datetime
from app.core.config import settings
from sqlalchemy.sql import func
class VoiceEnum(str, Enum): class VoiceEnum(str, Enum):
@@ -30,7 +29,7 @@ class RegistrationBase(SQLModel):
email: EmailStr = Field(max_length=255) email: EmailStr = Field(max_length=255)
first_name: str first_name: str
last_name: str last_name: str
birthday: date age: int
voice: VoiceEnum voice: VoiceEnum
duration: PeriodEnum duration: PeriodEnum
number_of_attempts: int number_of_attempts: int
@@ -42,4 +41,5 @@ class RegistrationCreate(RegistrationBase):
class Registration(RegistrationBase, table=True): class Registration(RegistrationBase, table=True):
id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True) id: uuid.UUID = Field(default_factory=uuid.uuid4, primary_key=True)
timestamp: datetime = Field(default_factory=func.now) timestamp: datetime = Field(default_factory=lambda : datetime.now(tz=settings.TZ))

0
app/static/styles.css Normal file
View File

View File

@@ -5,7 +5,7 @@
</head> </head>
<body> <body>
Die Anmeldung ist leider noch nicht geöffnet. Sie öffnet am {{ not_before }} und schließt am {{ not_after }}. Die Anmeldung ist leider bereits geschlossen. Folge uns, um vom nächsten Anmeldezeitraum zu erfahren.
</body> </body>
</html> </html>

View File

@@ -0,0 +1,11 @@
<html>
<head>
<title>Choriosity Anmeldung</title>
</head>
<body>
Die Anmeldung ist noch nicht geöffnet. Sie öffnet {{ not_before.strftime('am %d.%m.%Y um %H:%M Uhr') }} und schließt {{ not_after.strftime('am %d.%m.%Y um %H:%M Uhr') }}.
</body>
</html>

View File

@@ -8,10 +8,10 @@
<form method="POST" action="/registration/register_form"> <form method="POST" action="/registration/register_form">
<label for="email">E-Mail-Adresse:</label> <input type="email" id="email" name="email" /> <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" /> <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" /> <label for="last_name">Dein Nachname:</label> <input type="text" id="last_name" name="last_name" /><br />
<label for="birthday">Dein Geburtstag:</label> <input type="date" id="birthday" name="birthday" /> <label for="age">Dein Alter:</label> <input type="number" id="age" name="age" /><br />
<fieldset> <fieldset>
<legend>Welche Stimme singst du?</legend> <legend>Welche Stimme singst du?</legend>
@@ -71,7 +71,7 @@
</div> </div>
</fieldset> </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" /> <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 />
<input type="submit" value="Anmelden" /> <input type="submit" value="Anmelden" />