Änderungshistorie für Antragsideen #5

Open
opened 2026-03-31 00:29:15 +02:00 by tobias · 0 comments
Owner

Beschreibung

Jede Änderung an einer Antragsidee soll nachvollziehbar dokumentiert werden.

Anforderungen

Datenmodell

CREATE TABLE antraege_history (
    id INTEGER PRIMARY KEY,
    antrag_id INTEGER REFERENCES antraege(id),
    feld TEXT NOT NULL,          -- welches Feld geändert
    alter_wert TEXT,
    neuer_wert TEXT,
    geaendert_von TEXT,          -- Username (aus SSO oder "system")
    geaendert_am DATETIME DEFAULT (datetime('now'))
);

Backend

  • Bei jedem PUT/PATCH: Diff berechnen (was hat sich geändert?)
  • Pro geändertem Feld einen History-Eintrag
  • geaendert_von aus JWT-Token (wenn SSO aktiv) oder "anonym"

Frontend

  • In Detailansicht: Tab oder Abschnitt "Änderungsverlauf"
  • Chronologisch, neueste zuerst
  • Feldname + alter Wert → neuer Wert + Zeitpunkt + Wer

API

  • GET /api/antraege/:id/history — Änderungsverlauf eines Eintrags

Abhängigkeiten

  • #4 (Migrationssystem) — Schema-Änderung braucht Migration
  • #3 (SSO) — Optional, für geaendert_von mit echtem Username
## Beschreibung Jede Änderung an einer Antragsidee soll nachvollziehbar dokumentiert werden. ## Anforderungen ### Datenmodell ```sql CREATE TABLE antraege_history ( id INTEGER PRIMARY KEY, antrag_id INTEGER REFERENCES antraege(id), feld TEXT NOT NULL, -- welches Feld geändert alter_wert TEXT, neuer_wert TEXT, geaendert_von TEXT, -- Username (aus SSO oder "system") geaendert_am DATETIME DEFAULT (datetime('now')) ); ``` ### Backend - Bei jedem PUT/PATCH: Diff berechnen (was hat sich geändert?) - Pro geändertem Feld einen History-Eintrag - `geaendert_von` aus JWT-Token (wenn SSO aktiv) oder "anonym" ### Frontend - In Detailansicht: Tab oder Abschnitt "Änderungsverlauf" - Chronologisch, neueste zuerst - Feldname + alter Wert → neuer Wert + Zeitpunkt + Wer ### API - `GET /api/antraege/:id/history` — Änderungsverlauf eines Eintrags ## Abhängigkeiten - #4 (Migrationssystem) — Schema-Änderung braucht Migration - #3 (SSO) — Optional, für `geaendert_von` mit echtem Username
tobias added the
feature
backend
labels 2026-03-31 00:29:15 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: tobias/antragsideen-hagen#5
No description provided.