- Neues Modell UsageEvent (device_id, Plattform/Browser aus User-Agent
serverseitig geparst, Standalone-Flag, Zeitstempel) - komplett anonym,
device_id ist eine zufällige, nur lokal im Browser gespeicherte ID
- POST /app/track/: nimmt ein Nutzungssignal entgegen (max. 1x pro Gerät/Tag,
siehe home01.js: pingUsageIfNeeded())
- GET /app/dashboard/: Übersicht für Admins (staff_member_required, nutzt
bestehenden Django-Admin-Login) - Geräte heute/7/30 Tage, Plattform- und
Browser-Verteilung, Standalone-Quote, letzte Signale
- UsageEvent zusätzlich im normalen Django-Admin registriert
- Migration bewusst nicht mitcommittet (Projekt-Konvention, siehe .gitignore) -
muss auf jedem Environment einmalig per `manage.py makemigrations app &&
manage.py migrate` erzeugt werden
Lokal getestet: Track-Endpoint, Dashboard-Rendering mit Testdaten, Admin-Login-
Schutz (unauthenticated -> 302), Django-Admin-Listing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>