Phase 2: User experience enhancements to templates handling, dashboard and overlays.

This commit is contained in:
2025-11-17 11:55:53 +01:00
parent 6010666dcf
commit 6af58808ad
10 changed files with 368 additions and 58 deletions

16
main.py
View File

@@ -44,8 +44,8 @@ app.include_router(auth.router)
app.add_middleware(SessionMiddleware, secret_key=settings.ENCRYPTION_KEY)
@app.get("/")
async def read_root():
return FileResponse(os.path.join(STATIC_DIR, "login.html"))
async def read_root(request: Request):
return templates.TemplateResponse("login.html", {"request": request})
@app.get("/dashboard")
async def read_dashboard(request: Request, db: Session = Depends(auth.get_db)):
@@ -72,15 +72,19 @@ async def logout(request: Request):
return RedirectResponse(url="/")
@app.get("/overlay/{user_id}")
async def read_overlay(request: Request, user_id: int, db: Session = Depends(auth.get_db)):
async def read_overlay(request: Request, user_id: int, theme_override: str = None, db: Session = Depends(auth.get_db)):
# This endpoint serves the overlay page.
user = db.query(models.User).filter(models.User.id == user_id).first()
if not user:
raise HTTPException(status_code=404, detail="User not found")
theme = "dark-purple" # Default theme
if user.settings and user.settings.overlay_theme:
theme = user.settings.overlay_theme
# The theme can be forced by a query parameter for previewing
if theme_override:
theme = theme_override
else:
theme = "dark-purple" # Default theme
if user.settings and user.settings.overlay_theme:
theme = user.settings.overlay_theme
return templates.TemplateResponse(f"overlay-{theme}.html", {"request": request})