fix: add i18n context to platform routes in main.py

The platform homepage and content page routes in main.py were missing
i18n globals (_(), t(), current_language, etc.) which caused template
rendering errors when using translation functions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-27 18:13:45 +01:00
parent 29a06d8c46
commit cba32410ac

62
main.py
View File

@@ -38,6 +38,7 @@ from app.exceptions.handler import setup_exception_handlers
# Import page routers
from app.routes import admin_pages, platform_pages, shop_pages, vendor_pages
from app.utils.i18n import get_jinja2_globals
from middleware.context import ContextMiddleware
from middleware.language import LanguageMiddleware
from middleware.logging import LoggingMiddleware
@@ -360,6 +361,10 @@ async def platform_homepage(request: Request, db: Session = Depends(get_db)):
db, vendor_id=None, footer_only=True, include_unpublished=False
)
# Get language from request state and build i18n context
language = getattr(request.state, "language", "fr")
i18n_globals = get_jinja2_globals(language)
if homepage:
# Use template selection from CMS
template_name = homepage.template or "default"
@@ -367,26 +372,27 @@ async def platform_homepage(request: Request, db: Session = Depends(get_db)):
logger.info(f"[PLATFORM] Rendering CMS homepage with template: {template_path}")
return templates.TemplateResponse(
template_path,
{
"request": request,
"page": homepage,
"header_pages": header_pages,
"footer_pages": footer_pages,
},
)
context = {
"request": request,
"page": homepage,
"header_pages": header_pages,
"footer_pages": footer_pages,
}
context.update(i18n_globals)
return templates.TemplateResponse(template_path, context)
# Fallback to default static template
logger.info("[PLATFORM] No CMS homepage found, using default template")
return templates.TemplateResponse(
"platform/homepage-default.html",
{
"request": request,
"header_pages": header_pages,
"footer_pages": footer_pages,
},
)
context = {
"request": request,
"header_pages": header_pages,
"footer_pages": footer_pages,
}
context.update(i18n_globals)
return templates.TemplateResponse("platform/homepage-default.html", context)
@app.get("/{slug}", response_class=HTMLResponse, include_in_schema=False)
@@ -428,15 +434,19 @@ async def platform_content_page(
logger.info(f"[PLATFORM] Rendering content page: {page.title} (/{slug})")
return templates.TemplateResponse(
"platform/content-page.html",
{
"request": request,
"page": page,
"header_pages": header_pages,
"footer_pages": footer_pages,
},
)
# Get language from request state and build i18n context
language = getattr(request.state, "language", "fr")
i18n_globals = get_jinja2_globals(language)
context = {
"request": request,
"page": page,
"header_pages": header_pages,
"footer_pages": footer_pages,
}
context.update(i18n_globals)
return templates.TemplateResponse("platform/content-page.html", context)
logger.info("=" * 80)