Merkliste serverseitig statt localStorage (post-v2) #140
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#140
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Aus Redesign-Brief §11.1. Die aktuelle Merkliste lebt in
localStorageund ist damit nur pro Gerät verfügbar. Mit dem v2-Redesign (#139) soll sie serverseitig pro Nutzer:in persistieren.Abhängigkeit: Erst nach Stabilisierungs-Phase von v2 umsetzen — ist kein reiner Frontend-Refactor und verlässt den v2-Scope bewusst.
Backend
GET / POST / DELETE /api/me/merkliste, authentifiziert (bestehende Keycloak-JWT-Validierung)POST-Body:{antrag_id, notiz?}(Upsert)DELETE /api/me/merkliste/{antrag_id}GETliefert sortiert nachcreated_at DESCFrontend (v2)
localStorageMigration aus localStorage
Beim ersten Login nach Deploy: Modal „Wir haben {n} lokal gespeicherte Merkeinträge auf diesem Gerät. In dein Konto übernehmen?" → Ja: batch-POST, Nein: Dialog schließen.
Login-Konsequenz
Nicht-angemeldete Nutzer:innen: Stern-Button verlinkt zu Anmelden. Alternative: weiterhin lokale Fallback-Liste mit Merge-Dialog nach Login.
Default-Empfehlung: Fallback-Liste weiter zulassen, Merge nach Login.
Datenschutz
Datenschutzerklärung erweitern: „Wir speichern die von Ihnen gemerkten Antrags-IDs, um sie geräteübergreifend verfügbar zu machen." Account-Löschung entfernt Merkliste via Cascade.
Tests
Akzeptanzkriterien
Labels
backend,enhancement,post-v2Bereits implementiert in app/main.py: GET/POST/DELETE /api/me/merkliste + bulk-import-Endpunkt, plus /v2/merkliste-View. Schließen als done.