admin 0884f02e15 Responsive/warme Neugestaltung + Abo-Zahlungsgeruest (4,99EUR/Monat)
Responsive & Design:
- Sidebar wird unter 900px zum Off-Canvas-Menue (Hamburger-Button,
  Backdrop, Auto-Close bei Navigation) statt fix 228px breit zu bleiben
- Formular-/Statistik-Grids brechen bei 900px/560px auf weniger Spalten
  um, Modals gehen unter 560px auf Vollbild, iOS-Zoom-Bug bei
  Formularfeldern durch font-size:16px auf Mobile vermieden
- Wärmere Optik ausschliesslich über CSS-Variablen (:root): Creme-
  Hintergrund, weichere Akzentfarbe, groessere Radien, neuer
  --shadow-Token auf Card/Modal - kein Redesign pro Seite noetig, da
  die App durchgehend über diese Variablen themt

Abo-/Zahlungsgeruest (Anbieter voraussichtlich PayPal, noch nicht
angebunden):
- nutzer.abo_bis / abo_typ + globaler Schalter einstellungen.abo_pflicht
  (Default AUS) - solange PayPal nicht wirklich läuft, sperrt das Gate
  niemanden aus
- _hat_aktiven_zugang() zentral in global_auth_check(): blockiert bei
  aktiver Zahlungspflicht ohne gueltiges Abo mit 402 Payment Required,
  laesst /api/abo/* und /api/auth/logout immer durch
- POST /api/abo/aktivieren ist bewusst ein 501-Stub bis PayPal echt
  angebunden ist - kein vorgetaeuschter Erfolg
- Admin-Dashboard: "Freischalten"-Aktion pro Konto (1-12 Monate,
  Pflicht-Begruendung, audit-geloggt) - deckt die geforderte
  Moeglichkeit ab, Konten kostenlos freizuschalten
  (POST /api/admin/nutzer/<uid>/abo-freischalten)
- Backend-Einstellungen: neue Karte "Abo & Zahlung" fuer Preis und
  den abo_pflicht-Schalter
  - Frontend: neue Seite "Mein Abo" (pgMeinAbo), aboBlockiert-Flag in
  initApp() leitet jede Navigation dorthin um, wenn kein Zugang besteht

Verifiziert: JS-Syntax-Check, Playwright-Screenshots auf Desktop/
Tablet/Mobile (Sidebar-Slide-in, Grid-Umbruch, Interview-Wizard auf
Handy), API-Tests fuer das komplette Abo-Gate (Toggle an/aus, 402,
Freischaltung, Stub-Endpoint, Restore auf sicheren Default).
2026-07-18 11:26:57 +02:00
S
Description
No description provided
1.7 MiB
1 Stars 1 Watchers 0 Forks
Languages
Python 48%
TypeScript 33.6%
HTML 17.9%
Dockerfile 0.2%
CSS 0.2%