Translate the whole site to English: English routes with 301 redirects from the Dutch paths, English UI, docs, seeds and captions, one-time live content migration

This commit is contained in:
2026-10-05 11:25:41 +02:00
parent bbdecdc95b
commit ff547e1677
153 changed files with 1095 additions and 774 deletions
+30
View File
@@ -0,0 +1,30 @@
# retoor <retoor@molodetz.nl>
from fastapi import APIRouter, Request
from molodetz.database import get_setting, update_user
from molodetz.responses import action_result, respond
from molodetz.schemas.account import PageOut
from molodetz.seo import base_seo_context
from molodetz.utils.audit import record
from molodetz.utils.auth import invalidate_user_cache, require_user
from molodetz.utils.request_meta import safe_next
router = APIRouter()
@router.get("")
async def terms(request: Request):
seo = base_seo_context(request, "Terms", breadcrumbs=[("Molodetz", "/"), ("Terms", "/terms")])
ctx = {"title": "Terms", "terms_version": get_setting("terms_version", "1"), "next": safe_next(request.query_params.get("next"), "/"), "seo": seo}
return respond(request, "terms.html", ctx, model=PageOut)
@router.post("/accept")
async def accept_terms(request: Request):
user = require_user(request)
version = get_setting("terms_version", "1")
update_user(user["uid"], terms_version=version)
invalidate_user_cache(propagate=True)
record(request, "auth.terms.accept", payload={"version": version}, user=user)
form = await request.form() if not request.headers.get("content-type", "").startswith("application/json") else {}
return action_result(request, safe_next(form.get("next") if form else None, "/"))