Files
BillManager/template_helper.py
2026-03-16 17:47:16 +01:00

20 lines
723 B
Python

"""
Helper pour injecter automatiquement current_user dans le contexte Jinja2.
"""
from fastapi import Request
from fastapi.templating import Jinja2Templates
from starlette.responses import HTMLResponse, Response
def render(templates: Jinja2Templates, template_name: str,
request: Request, context: dict = None,
status_code: int = 200) -> HTMLResponse:
ctx = context or {}
ctx["request"] = request
if "current_user" not in ctx:
ctx["current_user"] = getattr(request.state, "current_user", None)
# Compatible avec toutes les versions de Starlette/FastAPI
response = templates.TemplateResponse(template_name, ctx)
response.status_code = status_code
return response