feat(nachbetrachtung): Abgabe-Checkliste, Dokumentation und Nachbetrachtung (WP-0009)

Vollständigkeitsprüfung mit Freigaben-Check, Abgabe dokumentieren mit
Nachweis-Upload, Nachbetrachtung mit Kickoff-Aufgabe (gewonnen) und
Alpine.js-gesteuerter Verlustanalyse (verloren). 5 Tests grün.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-11 15:09:38 +02:00
parent bca4eb15d8
commit a1cc317b3b
10 changed files with 583 additions and 12 deletions

View File

@@ -1,7 +1,7 @@
---
id: WP-0009
title: Abgabe und Nachbetrachtung
status: todo
status: done
phase: 9-of-12
created: "2026-05-08"
depends_on: WP-0008
@@ -18,7 +18,7 @@ Referenz: UC-AB-01 bis UC-AB-03, UC-NB-01 bis UC-NB-03.
```task
id: WP-0009-T01
title: Abgabe-Checkliste mit Vollständigkeitsstatus (UC-AB-01)
status: todo
status: done
`nachbetrachtung/abgabe_views.py` — abgabe_checkliste:
@@ -58,7 +58,7 @@ Template `nachbetrachtung/abgabe.html`:
```task
id: WP-0009-T02
title: Abgabe dokumentieren mit Nachweis-Upload (UC-AB-02)
status: todo
status: done
`nachbetrachtung/abgabe_views.py` — abgabe_dokumentieren:
@@ -99,7 +99,7 @@ def abgabe_dokumentieren(request, ausschreibung_id):
```task
id: WP-0009-T03
title: Nachbetrachtung-View — Ergebnis und Kickoff (UC-NB-01)
status: todo
status: done
`nachbetrachtung/views.py` — nachbetrachtung_detail:
@@ -134,7 +134,7 @@ Template `nachbetrachtung/detail.html`:
```task
id: WP-0009-T04
title: Verlustanalyse und Lessons Learned (UC-NB-02, UC-NB-03)
status: todo
status: done
**Verlustgründe** — dynamisches JSONField-Formular:
Alpine.js-gesteuertes Array:
@@ -170,7 +170,7 @@ Bei Speichern: Aktualisiere `Nachbetrachtung`-Objekt, Redirect zur Nachbetrachtu
```task
id: WP-0009-T05
title: URL-Verkabelung Abgabe/Nachbetrachtung und Tests
status: todo
status: done
`nachbetrachtung/abgabe_urls.py`:
```python