A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.
This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).
Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
"""
|
||
BreakPilot Customer Portal
|
||
|
||
Slim customer-facing frontend with:
|
||
- Login/Register
|
||
- My Consents view
|
||
- Data Export Request (GDPR)
|
||
- Legal Documents viewing
|
||
"""
|
||
|
||
from pathlib import Path
|
||
from fastapi import APIRouter
|
||
from fastapi.responses import HTMLResponse
|
||
|
||
router = APIRouter()
|
||
|
||
# Path to templates
|
||
TEMPLATES_DIR = Path(__file__).parent / "templates"
|
||
|
||
|
||
@router.get("/customer", response_class=HTMLResponse)
|
||
def customer_portal():
|
||
"""Serve the customer portal (new slim frontend)"""
|
||
template_path = TEMPLATES_DIR / "customer.html"
|
||
if template_path.exists():
|
||
return template_path.read_text(encoding="utf-8")
|
||
else:
|
||
return """
|
||
<!DOCTYPE html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>BreakPilot – Fehler</title>
|
||
</head>
|
||
<body>
|
||
<h1>Template nicht gefunden</h1>
|
||
<p>Die Template-Datei customer.html wurde nicht gefunden.</p>
|
||
</body>
|
||
</html>
|
||
"""
|
||
|
||
|
||
@router.get("/account")
|
||
async def account_redirect():
|
||
"""Redirect /account to /customer"""
|
||
from fastapi.responses import RedirectResponse
|
||
return RedirectResponse(url="/customer")
|
||
|
||
|
||
@router.get("/mein-konto")
|
||
async def mein_konto_redirect():
|
||
"""German URL redirect to /customer"""
|
||
from fastapi.responses import RedirectResponse
|
||
return RedirectResponse(url="/customer")
|