QR-Stats: Registrierungen (bestätigt) vs. Versuche (unbestätigt) + Account-Detail-Liste

Rene: Statistik zählte alles in einen Topf (3 statt 2) und zeigte nicht,
WER sich registriert hat. Jetzt:
- registrations = email_verified=1, attempts = unbestätigte Versuche —
  Versuche werden bei späterer Bestätigung automatisch zu Registrierungen
- Admin: 👥-Button pro Kontingent klappt Account-Liste auf (Name, E-Mail,
  Datum, ✓ bestätigt/ Versuch, Sticker-Nr #seq) — lazy geladen, admin-only
  (personenbezogene Daten); Partner sehen weiter nur Zahlen (Registr. +N)
- Test deckt Versuch→Bestätigung-Übergang und Detail-Endpoint ab
This commit is contained in:
rene 2026-06-07 18:43:18 +02:00
parent f604ab7c4f
commit 970480c1d6
9 changed files with 110 additions and 26 deletions

View file

@ -86,14 +86,14 @@
<title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1257"></script>
<script src="/js/boot-early.js?v=1258"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1257">
<link rel="stylesheet" href="/css/layout.css?v=1257">
<link rel="stylesheet" href="/css/components.css?v=1257">
<link rel="stylesheet" href="/css/utilities.css?v=1257">
<link rel="stylesheet" href="/css/lists.css?v=1257">
<link rel="stylesheet" href="/css/design-system.css?v=1258">
<link rel="stylesheet" href="/css/layout.css?v=1258">
<link rel="stylesheet" href="/css/components.css?v=1258">
<link rel="stylesheet" href="/css/utilities.css?v=1258">
<link rel="stylesheet" href="/css/lists.css?v=1258">
</head>
<body>
@ -612,11 +612,11 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1257"></script>
<script src="/js/ui.js?v=1257"></script>
<script src="/js/app.js?v=1257"></script>
<script src="/js/worlds.js?v=1257"></script>
<script src="/js/offline-indicator.js?v=1257"></script>
<script src="/js/api.js?v=1258"></script>
<script src="/js/ui.js?v=1258"></script>
<script src="/js/app.js?v=1258"></script>
<script src="/js/worlds.js?v=1258"></script>
<script src="/js/offline-indicator.js?v=1258"></script>
<!-- Feature-Seiten werden lazy geladen -->
@ -626,7 +626,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1257"></script>
<script src="/js/boot.js?v=1258"></script>
</body>