feat: Registereintrag und Export (Schritt 6 der Baureihenfolge)
Jede Genehmigung (genehmigt/genehmigt_mit_auflagen) erzeugt jetzt automatisch einen append-only registereintrag mit Zweck, Abteilung, Werkzeug, Datenklasse, Einstufung, Auflagen, Verantwortliche/r und Gültigkeit. Ebene 3 (verantwortlicher/pruefer) kann das Register unter GET /registereintraege einsehen und als CSV oder PDF exportieren. Der PDF-Export nutzt das bereits vorhandene, bisher ungenutzte go-pdf/fpdf (keine neue Abhängigkeit) mit UnicodeTranslatorFromDescriptor für deutsche Umlaute. Abgelehnte Entscheidungen und Rückfragen erzeugen bewusst keinen Registereintrag. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
40
CLAUDE.md
40
CLAUDE.md
@@ -220,7 +220,7 @@ mehrfacher Neubewertung eines Antrags erhalten bleibt.
|
||||
|
||||
---
|
||||
|
||||
## Entscheidung, Register, Wiedervorlage (Schritt 5 erledigt, Schritt 6-7 geplant)
|
||||
## Entscheidung, Register, Wiedervorlage (Schritt 5+6 erledigt, Schritt 7 geplant)
|
||||
|
||||
**Schritt 5 (Entscheidung, Snapshot, Audit-Log) ist umgesetzt.** Ebene 3
|
||||
(Fachebene) hat einen Posteingang (`GET /faelle`, alle offenen —
|
||||
@@ -255,10 +255,16 @@ Genehmigungen erhalten ein Ablaufdatum (`gueltig_bis`: 12 Monate, bei
|
||||
die Benachrichtigung, wenn sich im Katalog eine Eigenschaft ändert, auf
|
||||
der eine aktive Genehmigung beruht (Wiedervorlage).
|
||||
|
||||
**Noch nicht gebaut (Schritt 6):** ein `registereintrag` wird bislang
|
||||
NICHT automatisch aus einer Genehmigung erzeugt, und es gibt keinen
|
||||
PDF-/CSV-Export. Geplant: Zweck, Abteilung, Werkzeug, Datenklasse,
|
||||
Einstufung, Auflagen, Verantwortliche/r, Datum, Gültigkeit.
|
||||
**Schritt 6 (Registereintrag, Export) ist umgesetzt.** Jede Genehmigung
|
||||
erzeugt automatisch einen `registereintrag` (append-only, Migration
|
||||
0011): Zweck (`antrag.titel`), Abteilung, Werkzeug, Datenklasse,
|
||||
Einstufung, Auflagen (die Anforderungen der Bewertung), Verantwortliche/r,
|
||||
Entscheidungsdatum, Gültigkeit — siehe `internal/web/register_handlers.go`.
|
||||
`GET /registereintraege` (Ebene 3, `verantwortlicher`/`pruefer`) zeigt
|
||||
sie, `GET /registereintraege/export.{csv,pdf}` exportiert. Abgelehnte
|
||||
Entscheidungen und Rückfragen erzeugen bewusst KEINEN Registereintrag —
|
||||
das Register ist eine Genehmigungsliste, kein vollständiges Antragslog
|
||||
(das leistet bereits `GET /faelle`).
|
||||
|
||||
---
|
||||
|
||||
@@ -346,12 +352,13 @@ nicht anzulegen. Noch nicht gebaut (kein Abo-System).
|
||||
- `entscheidung` — die Entscheidung eines/einer Verantwortlichen über
|
||||
einen Antrag, mit Snapshot des gewählten Werkzeugs (`werkzeug_snapshot`,
|
||||
JSONB) und Ablaufdatum (`gueltig_bis`) bei Genehmigung (Schritt 5).
|
||||
- `registereintrag` — **noch nicht gebaut**, geplant für Schritt 6.
|
||||
- `registereintrag` — automatisch bei jeder Genehmigung erzeugt
|
||||
(Schritt 6), denormalisierter Nachweis (eigene Textspalten statt
|
||||
Joins über bewertung/entscheidung/werkzeug).
|
||||
|
||||
**Append-only:** kein UPDATE auf `audit_log` (Trigger `forbid_update_delete`,
|
||||
wiederverwendet aus dem alten Produkt), ebenso `bewertung` und
|
||||
`entscheidung`. `registereintrag` wird bei seiner Einführung ebenfalls
|
||||
append-only.
|
||||
wiederverwendet aus dem alten Produkt), ebenso `bewertung`,
|
||||
`entscheidung` und `registereintrag`.
|
||||
|
||||
---
|
||||
|
||||
@@ -391,7 +398,20 @@ append-only.
|
||||
vollständigen Werkzeugdatensatz ein und braucht ein zulässiges
|
||||
Werkzeug aus der Bewertung, `entscheidung` ist append-only, jede
|
||||
Entscheidung erzeugt einen `audit_log`-Eintrag.)
|
||||
6. Registereintrag und Export
|
||||
6. ~~Registereintrag und Export~~ — **erledigt** (`internal/web/register_handlers.go`:
|
||||
`GET /registereintraege` zeigt alle Registereinträge des Mandanten,
|
||||
`GET /registereintraege/export.{csv,pdf}` exportiert sie. Jede
|
||||
Genehmigung — `genehmigt` oder `genehmigt_mit_auflagen` — erzeugt in
|
||||
`handleFallEntscheiden` automatisch einen `registereintrag`
|
||||
[append-only, Migration 0011]: Zweck [`antrag.titel`], Abteilung,
|
||||
Werkzeug, Datenklasse, Einstufung, Auflagen [die Anforderungen der
|
||||
Bewertung], Verantwortliche/r, Entscheidungsdatum, Gültigkeit —
|
||||
bewusst denormalisiert [eigene Textspalten statt Joins], damit ein
|
||||
Eintrag nicht von einem späteren Katalog-/Abteilungs-Wandel abhängt.
|
||||
Abgelehnte Entscheidungen und Rückfragen erzeugen keinen Eintrag.
|
||||
Der PDF-Export nutzt das bereits vorhandene, bis dahin ungenutzte
|
||||
`go-pdf/fpdf` [keine neue Abhängigkeit] mit `UnicodeTranslatorFromDescriptor`
|
||||
für deutsche Umlaute.)
|
||||
7. Wiedervorlage und Katalog-Benachrichtigung
|
||||
|
||||
Nicht bauen (v1): automatische Genehmigung ohne Mensch, Erkennung
|
||||
|
||||
Reference in New Issue
Block a user