feat(aufgaben): Verknüpfungen, implizite Fälligkeit, Issue-Facade (WP-0015)

- Aufgabe.erstellt_am für implizite 7-Tage-Fälligkeit
- frist_effektiv property; ist_ueberfaellig nutzt sie
- AufgabenVerknuepfung (GenericForeignKey) mit HTMX-Panel
- ExternalIssue (OneToOne) mit IssueAdapter-ABC und HTMX-Panel
- link_registry.py und issue_facade.py als zentrale Registries
- 8 neue Tests, 76 gesamt grün

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 04:18:28 +02:00
parent a0c0ddf2eb
commit 816c281f6a
19 changed files with 713 additions and 19 deletions

View File

@@ -1,7 +1,7 @@
---
id: WP-0015
title: Aufgaben — Verknüpfungen, implizite Fälligkeit, Issue-Facade
status: todo
status: done
phase: 15-of-n
created: "2026-05-14"
depends_on: WP-0014
@@ -33,7 +33,7 @@ Drei eigenständige Erweiterungen des Aufgaben-Moduls:
```task
id: WP-0015-T01
title: Aufgabe.erstellt_am — Feld + Migration
status: todo
status: done
`apps/aufgaben/models.py` — Feld ergänzen:
@@ -55,7 +55,7 @@ für auto_now_add bei ALTER TABLE).
```task
id: WP-0015-T02
title: Implizite Fälligkeit — Property + Überfälligkeitsprüfung
status: todo
status: done
**Modell** (`apps/aufgaben/models.py`):
@@ -125,7 +125,7 @@ angezeigt wird:
```task
id: WP-0015-T03
title: AufgabenVerknuepfung — Modell + Migration + Admin
status: todo
status: done
Neues Modell in `apps/aufgaben/models.py`:
@@ -165,7 +165,7 @@ Preispunkt). Wird in der Form als Auswahlfeld verwendet.
```task
id: WP-0015-T04
title: Verknüpfungen-View — Liste + Hinzufügen (HTMX)
status: todo
status: done
**URLs** (`apps/aufgaben/urls.py`) ergänzen:
@@ -227,7 +227,7 @@ ermittelbar), Kommentar, Löschen-Button.
```task
id: WP-0015-T05
title: Verknüpfungen-View — Entfernen (HTMX DELETE)
status: todo
status: done
**URL** in `apps/aufgaben/urls.py`:
@@ -265,7 +265,7 @@ Im `verknuepfung_row.html` Löschen-Button als HTMX-POST mit
```task
id: WP-0015-T06
title: ExternalIssue — Modell + Migration + Service-Interface
status: todo
status: done
**Modell** in einem neuen Modul `apps/aufgaben/issue_models.py`
(oder direkt in `models.py`):
@@ -345,7 +345,7 @@ Migration erstellen und ausführen. Admin registrieren.
```task
id: WP-0015-T07
title: Issue-Facade UI — Panel auf Aufgaben-Detailseite
status: todo
status: done
**URLs** in `apps/aufgaben/urls.py`:
@@ -398,7 +398,7 @@ Key, Sync-Status, Notizen, Buttons "Bearbeiten" und "Entfernen".
```task
id: WP-0015-T08
title: Tests + Smoke-Check
status: todo
status: done
Bestehende 68 Tests müssen grün bleiben.