68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
from fastapi import FastAPI, Request
|
|
from fastapi.staticfiles import StaticFiles
|
|
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
from app.api.main import api_router
|
|
from app.core.config import settings
|
|
|
|
from app.core.db import init_db, engine
|
|
|
|
from sqlmodel import Session
|
|
|
|
from app.core.utils import is_registration_open
|
|
|
|
with Session(engine) as session:
|
|
init_db(session)
|
|
|
|
app = FastAPI(
|
|
title=settings.PROJECT_NAME, openapi_url=f"{settings.API_V1_STR}/openapi.json"
|
|
)
|
|
|
|
templates = Jinja2Templates(directory="app/templates")
|
|
|
|
|
|
@api_router.get("/")
|
|
def index(request: Request):
|
|
reg_open, not_before, not_after = is_registration_open()
|
|
|
|
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={
|
|
"not_before": settings.NOT_BEFORE,
|
|
"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")
|
|
def success(request: Request):
|
|
return templates.TemplateResponse(
|
|
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")
|