fix(workplans): bring vergabe-teilnahme onto the work-record convention
This repository predates the convention wholesale: no file declared a type at all, identifiers were bare WP-NNNN with no repository prefix, and no file carried a hub identifier. Seventeen real workplans were therefore invisible to every projection while the hub separately held sixteen records for them — so a forge-derived reset read all sixteen as no longer deriving. Adds type: workplan, moves identifiers to VT-WP-NNNN, qualifies 135 task identifiers with their workplan, and derives projection UUIDs. Frontmatter status done maps to finished; task-block statuses are a different vocabulary and are untouched. Known remaining divergence: task fences contain prose after the YAML, so only 15 of 135 tasks parse. Recorded rather than rewritten — reflowing someone's workplan content is not a mechanical change. Refs STATE-WP-0083-T05 Assistant: claude-code Assistant-Model: opus Assistant-Process: 2583210@bnt-lap001 Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
This commit is contained in:
parent
9ff191c85c
commit
8838725e70
17 changed files with 219 additions and 168 deletions
|
|
@ -1,10 +1,13 @@
|
|||
---
|
||||
id: WP-0001
|
||||
id: VT-WP-0001
|
||||
type: workplan
|
||||
title: Projektgerüst — Django-Setup, Tailwind, Dev-Stack
|
||||
status: done
|
||||
status: finished
|
||||
phase: 1-of-12
|
||||
created: "2026-05-08"
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "d0ed2d2b-4d36-50b3-82f5-aabb60cf9734"
|
||||
---
|
||||
|
||||
# WP-0001 — Projektgerüst
|
||||
|
|
@ -19,7 +22,7 @@ für PostgreSQL, pytest-django, Makefile.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0001-T01
|
||||
id: VT-WP-0001-T01
|
||||
title: pyproject.toml und uv-Projektstruktur anlegen
|
||||
status: done
|
||||
|
||||
|
|
@ -40,7 +43,7 @@ Führe `uv sync` aus und bestätige, dass die virtuelle Umgebung erstellt wird.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T02
|
||||
id: VT-WP-0001-T02
|
||||
title: Django-Projekt initialisieren und Settings-Struktur anlegen
|
||||
status: done
|
||||
|
||||
|
|
@ -62,7 +65,7 @@ Passe `manage.py` und `vergabe_teilnahme/wsgi.py` auf
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T03
|
||||
id: VT-WP-0001-T03
|
||||
title: .env.example und PostgreSQL-Konfiguration
|
||||
status: done
|
||||
|
||||
|
|
@ -84,7 +87,7 @@ Prüfe dass `.env` und `*.sqlite3` in `.gitignore` enthalten sind.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T04
|
||||
id: VT-WP-0001-T04
|
||||
title: Alle Django-Apps anlegen
|
||||
status: done
|
||||
|
||||
|
|
@ -104,7 +107,7 @@ Stelle sicher, dass `django.contrib.contenttypes` ebenfalls in INSTALLED_APPS is
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T05
|
||||
id: VT-WP-0001-T05
|
||||
title: Tailwind CSS v4 via Vite integrieren
|
||||
status: done
|
||||
|
||||
|
|
@ -181,7 +184,7 @@ Führe `npm install` aus.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T06
|
||||
id: VT-WP-0001-T06
|
||||
title: HTMX und Alpine.js einbinden
|
||||
status: done
|
||||
|
||||
|
|
@ -200,7 +203,7 @@ Prüfe: `ls static/vendor/htmx/` und `ls static/vendor/alpinejs/` sollten die Da
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T07
|
||||
id: VT-WP-0001-T07
|
||||
title: Docker Compose für Entwicklungs-PostgreSQL
|
||||
status: done
|
||||
|
||||
|
|
@ -229,7 +232,7 @@ Prüfe Verbindung: `uv run manage.py check --database default`
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T08
|
||||
id: VT-WP-0001-T08
|
||||
title: pytest-django konfigurieren
|
||||
status: done
|
||||
|
||||
|
|
@ -263,7 +266,7 @@ Prüfe: `uv run pytest --co -q` (keine Tests vorhanden, aber Konfiguration valid
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T09
|
||||
id: VT-WP-0001-T09
|
||||
title: Makefile für häufige Dev-Commands
|
||||
status: done
|
||||
|
||||
|
|
@ -306,7 +309,7 @@ Prüfe: `make db` startet PostgreSQL, `make migrate` läuft fehlerfrei durch
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T10
|
||||
id: VT-WP-0001-T10
|
||||
title: Django URL-Grundkonfiguration und Health-Check
|
||||
status: done
|
||||
|
||||
|
|
@ -342,7 +345,7 @@ gibt `{"status": "ok"}` zurück.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T11
|
||||
id: VT-WP-0001-T11
|
||||
title: CLAUDE.md mit Build-Commands aktualisieren
|
||||
status: done
|
||||
|
||||
|
|
@ -388,7 +391,7 @@ Füge außerdem `static/dist/` zu `.gitignore` hinzu.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0001-T12
|
||||
id: VT-WP-0001-T12
|
||||
title: Erstes `uv run manage.py migrate` und Smoke-Test
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0002
|
||||
id: VT-WP-0002
|
||||
type: workplan
|
||||
title: Fachmodelle — alle Django-Models, Migrationen, Admin
|
||||
status: done
|
||||
status: finished
|
||||
phase: 2-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0001
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "1e8f2b8c-e2e1-5388-89c1-a7fa6c27d93e"
|
||||
---
|
||||
|
||||
# WP-0002 — Fachmodelle
|
||||
|
|
@ -20,7 +23,7 @@ und ein Management-Command für Seed-Daten.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0002-T01
|
||||
id: VT-WP-0002-T01
|
||||
title: Accounts-App: Mitarbeiter-Modell (AbstractUser)
|
||||
status: done
|
||||
|
||||
|
|
@ -54,7 +57,7 @@ Setze `AUTH_USER_MODEL = 'accounts.Mitarbeiter'` in `settings/base.py` (bereits
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T02
|
||||
id: VT-WP-0002-T02
|
||||
title: Core-App: FlexibleModel-Mixin und Basis-Infrastruktur
|
||||
status: done
|
||||
|
||||
|
|
@ -103,7 +106,7 @@ Alle vier in `core/admin.py` registrieren.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T03
|
||||
id: VT-WP-0002-T03
|
||||
title: Core-App: services.py mit Utility-Funktionen
|
||||
status: done
|
||||
|
||||
|
|
@ -158,7 +161,7 @@ Schreibe Tests in `vergabe_teilnahme/apps/core/tests/test_services.py`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T04
|
||||
id: VT-WP-0002-T04
|
||||
title: Ausschreibungen-App: Ausschreibung-Modell
|
||||
status: done
|
||||
|
||||
|
|
@ -182,7 +185,7 @@ Admin-Registrierung mit list_display=['titel', 'ausschreiber', 'status', 'abgabe
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T05
|
||||
id: VT-WP-0002-T05
|
||||
title: Lose-App: Los- und Anforderung-Modell
|
||||
status: done
|
||||
|
||||
|
|
@ -214,7 +217,7 @@ Admin für beide Modelle.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T06
|
||||
id: VT-WP-0002-T06
|
||||
title: Aufgaben-App: Aufgabe- und Bieterfrage-Modell
|
||||
status: done
|
||||
|
||||
|
|
@ -241,7 +244,7 @@ Admin für beide Modelle.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T07
|
||||
id: VT-WP-0002-T07
|
||||
title: Dokumente-App: Dokument-Modell mit Datei-Upload
|
||||
status: done
|
||||
|
||||
|
|
@ -269,7 +272,7 @@ Admin-Registrierung.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T08
|
||||
id: VT-WP-0002-T08
|
||||
title: Preise-App: Preispunkt-Modell
|
||||
status: done
|
||||
|
||||
|
|
@ -302,7 +305,7 @@ Admin mit list_display=['konkrete_leistung', 'leistungstyp', 'einzelpreis', 'ver
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T09
|
||||
id: VT-WP-0002-T09
|
||||
title: Partner-App: Subunternehmer und Dienstleistertyp
|
||||
status: done
|
||||
|
||||
|
|
@ -335,7 +338,7 @@ Admin für alle drei Modelle.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T10
|
||||
id: VT-WP-0002-T10
|
||||
title: Bibliothek-App: Nachweis, Referenz, Leistungsblatt, Entscheidungsregel
|
||||
status: done
|
||||
|
||||
|
|
@ -374,7 +377,7 @@ Admin für alle vier Modelle.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T11
|
||||
id: VT-WP-0002-T11
|
||||
title: Marktbegleiter-App: Marktbegleiter und Ausschreibungspassage
|
||||
status: done
|
||||
|
||||
|
|
@ -414,7 +417,7 @@ Admin für beide Modelle.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T12
|
||||
id: VT-WP-0002-T12
|
||||
title: Nachbetrachtung- und Feedback-Modelle
|
||||
status: done
|
||||
|
||||
|
|
@ -452,7 +455,7 @@ Admin für beide Modelle.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T13
|
||||
id: VT-WP-0002-T13
|
||||
title: Alle Migrationen generieren und ausführen
|
||||
status: done
|
||||
|
||||
|
|
@ -481,7 +484,7 @@ Prüfe: `uv run manage.py showmigrations` → alle Migrationen als [X] markiert.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0002-T14
|
||||
id: VT-WP-0002-T14
|
||||
title: Management-Command für Entwicklungs-Seed-Daten
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0003
|
||||
id: VT-WP-0003
|
||||
type: workplan
|
||||
title: Basis-UI — Shell-Layout, Templates, Template-Tags, Navigation
|
||||
status: done
|
||||
status: finished
|
||||
phase: 3-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0002
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "c30bc1a8-e9c7-5af7-a1df-ebee1f750d42"
|
||||
---
|
||||
|
||||
# WP-0003 — Basis-UI
|
||||
|
|
@ -23,7 +26,7 @@ Tailwind-Klassen aus WP-0001 (`static/src/main.css`) werden hier genutzt.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0003-T01
|
||||
id: VT-WP-0003-T01
|
||||
title: Template-Verzeichnisstruktur und base.html Shell-Layout
|
||||
status: done
|
||||
|
||||
|
|
@ -93,7 +96,7 @@ TEMPLATES = [{
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T02
|
||||
id: VT-WP-0003-T02
|
||||
title: Topbar-Partial
|
||||
status: done
|
||||
|
||||
|
|
@ -119,7 +122,7 @@ Topbar-Höhe: `h-14` (56px), `bg-white border-b border-slate-200`.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T03
|
||||
id: VT-WP-0003-T03
|
||||
title: Sidebar globale Navigation
|
||||
status: done
|
||||
|
||||
|
|
@ -174,7 +177,7 @@ Füge CSS-Hilfsklassen in `static/src/main.css` hinzu:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T04
|
||||
id: VT-WP-0003-T04
|
||||
title: Context-Processor und Phasen-Navigator-Partial
|
||||
status: done
|
||||
|
||||
|
|
@ -222,7 +225,7 @@ Implementiere diese Funktion in `core/services.py`.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T05
|
||||
id: VT-WP-0003-T05
|
||||
title: Breadcrumb-Partial
|
||||
status: done
|
||||
|
||||
|
|
@ -251,7 +254,7 @@ Erstelle eine Hilfsfunktion `core.views_helpers.make_breadcrumbs(*args)` die die
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T06
|
||||
id: VT-WP-0003-T06
|
||||
title: Template-Tags: status_badge und phase_badge
|
||||
status: done
|
||||
|
||||
|
|
@ -305,7 +308,7 @@ Erstelle `partials/status_badge.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T07
|
||||
id: VT-WP-0003-T07
|
||||
title: Template-Tag: render_field (EntityFieldConfig-aware)
|
||||
status: done
|
||||
|
||||
|
|
@ -358,7 +361,7 @@ da Admin-Änderungen sofort wirken sollen — entscheide dich für kein Caching
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T08
|
||||
id: VT-WP-0003-T08
|
||||
title: Feedback-Button und Feedback-Modal-Partial
|
||||
status: done
|
||||
|
||||
|
|
@ -418,7 +421,7 @@ Verkable URLs in `feedback/urls.py` und include in Haupt-URLs.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T09
|
||||
id: VT-WP-0003-T09
|
||||
title: Error-Templates und Django-URL-Konfiguration
|
||||
status: done
|
||||
|
||||
|
|
@ -463,7 +466,7 @@ path('lose/', include('vergabe_teilnahme.apps.lose.urls')),
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0003-T10
|
||||
id: VT-WP-0003-T10
|
||||
title: Einfache Startseite mit Redirect und Smoke-Test
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0004
|
||||
id: VT-WP-0004
|
||||
type: workplan
|
||||
title: Dashboard und Ausschreibungen-CRUD
|
||||
status: done
|
||||
status: finished
|
||||
phase: 4-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0003
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "0cc0da42-a90a-5c30-9789-35d855f217b4"
|
||||
---
|
||||
|
||||
# WP-0004 — Dashboard und Ausschreibungen-CRUD
|
||||
|
|
@ -19,7 +22,7 @@ Entscheidungsregel-Auswertung, Archivierung und historische Erfassung.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0004-T01
|
||||
id: VT-WP-0004-T01
|
||||
title: Dashboard-View mit Kacheln und Fristenliste
|
||||
status: todo
|
||||
|
||||
|
|
@ -67,7 +70,7 @@ Ablaufende Nachweise: Nachweis-Modell aus Bibliothek mit `gueltig_bis ≤ heute
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T02
|
||||
id: VT-WP-0004-T02
|
||||
title: Ausschreibungsliste mit Filter und HTMX-Suche
|
||||
status: todo
|
||||
|
||||
|
|
@ -107,7 +110,7 @@ Verantwortlicher, Link zum Detail.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T03
|
||||
id: VT-WP-0004-T03
|
||||
title: Ausschreibung anlegen — Form und View (UC-AS-01)
|
||||
status: todo
|
||||
|
||||
|
|
@ -158,7 +161,7 @@ Submit: "Speichern" (btn-primary), "Abbrechen" (btn-ghost, zurück zur Liste).
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T04
|
||||
id: VT-WP-0004-T04
|
||||
title: Ausschreibung-Detailseite (Phase 1 — Stammdaten)
|
||||
status: todo
|
||||
|
||||
|
|
@ -192,7 +195,7 @@ def ausschreibung_detail(request, pk):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T05
|
||||
id: VT-WP-0004-T05
|
||||
title: Ausschreibung bearbeiten (Edit-View) und Status inline wechseln
|
||||
status: todo
|
||||
|
||||
|
|
@ -236,7 +239,7 @@ def ausschreibung_status(request, pk):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T06
|
||||
id: VT-WP-0004-T06
|
||||
title: Teilnahmeentscheidung-Seite (Phase 2, UC-AS-04)
|
||||
status: todo
|
||||
|
||||
|
|
@ -272,7 +275,7 @@ def ausschreibung_entscheidung(request, pk):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T07
|
||||
id: VT-WP-0004-T07
|
||||
title: Entscheidungsregel-Auswertungs-Service
|
||||
status: todo
|
||||
|
||||
|
|
@ -321,7 +324,7 @@ def _wende_regel_an(regel, ausschreibung):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T08
|
||||
id: VT-WP-0004-T08
|
||||
title: Ausschreibung archivieren und historisch erfassen (UC-AS-06, UC-AS-07)
|
||||
status: todo
|
||||
|
||||
|
|
@ -351,7 +354,7 @@ Die View prüft diesen Parameter und setzt `historisch_erfassen` im initialen Fo
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T09
|
||||
id: VT-WP-0004-T09
|
||||
title: Globale Suchleiste — HTMX-Endpunkt und Ergebnis-Template
|
||||
status: todo
|
||||
|
||||
|
|
@ -397,7 +400,7 @@ Topbar-Formular (aus WP-0003-T02) zeigt Ergebnisse in `#search-results`.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T10
|
||||
id: VT-WP-0004-T10
|
||||
title: Ausschreibungen-URL-Verkabelung und App-Namespace
|
||||
status: todo
|
||||
|
||||
|
|
@ -436,7 +439,7 @@ Smoke-Test: alle Hauptseiten (/ausschreibungen/, /ausschreibungen/neu/) laden oh
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T11
|
||||
id: VT-WP-0004-T11
|
||||
title: Ausschreibungs-Tests (Models und Views)
|
||||
status: todo
|
||||
|
||||
|
|
@ -468,7 +471,7 @@ class AusschreibungFactory(factory.django.DjangoModelFactory):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0004-T12
|
||||
id: VT-WP-0004-T12
|
||||
title: Seed-Daten prüfen und Dashboard-Kacheln verifizieren
|
||||
status: todo
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0005
|
||||
id: VT-WP-0005
|
||||
type: workplan
|
||||
title: Lose und Anforderungen
|
||||
status: done
|
||||
status: finished
|
||||
phase: 5-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0004
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "fb1f5726-529f-5d0e-9b12-dcee4e47f01f"
|
||||
---
|
||||
|
||||
# WP-0005 — Lose und Anforderungen
|
||||
|
|
@ -18,7 +21,7 @@ Implementiert alle Views, Forms und Templates für Lose (UC-LA-01) und Anforderu
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0005-T01
|
||||
id: VT-WP-0005-T01
|
||||
title: Lose-Liste und Lose anlegen (UC-LA-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -45,7 +48,7 @@ path('<int:los_pk>/bearbeiten/', views.los_bearbeiten, name='bearbeiten'),
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T02
|
||||
id: VT-WP-0005-T02
|
||||
title: Los-Detail-Seite mit eingebetteten Anforderungen
|
||||
status: done
|
||||
|
||||
|
|
@ -72,7 +75,7 @@ def los_detail(request, ausschreibung_id, los_pk):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T03
|
||||
id: VT-WP-0005-T03
|
||||
title: Anforderungsliste nach Los gruppiert (UC-LA-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -90,7 +93,7 @@ Template `lose/anforderungen_liste.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T04
|
||||
id: VT-WP-0005-T04
|
||||
title: Anforderung anlegen und Detailseite (UC-LA-02, UC-LA-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -116,7 +119,7 @@ def anforderung_status(request, ausschreibung_id, pk):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T05
|
||||
id: VT-WP-0005-T05
|
||||
title: Nachweis-Verknüpfung mit Bibliothek (UC-LA-04)
|
||||
status: done
|
||||
|
||||
|
|
@ -140,7 +143,7 @@ Zeige zugeordnete Nachweise auf Anforderungsdetail als Liste mit Ablaufstatus-Ba
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T06
|
||||
id: VT-WP-0005-T06
|
||||
title: Ausschlusskriterium-Eskalation auf Phase-2-Seite (UC-LA-05)
|
||||
status: done
|
||||
|
||||
|
|
@ -169,7 +172,7 @@ dann Phase-2-Seite öffnen → Banner erscheint.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T07
|
||||
id: VT-WP-0005-T07
|
||||
title: Aufgabe aus Anforderung ableiten (UC-AU-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -196,7 +199,7 @@ Nach Erstellen: Anforderungsdetail zeigt die neue Aufgabe im Abschnitt "Verbunde
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0005-T08
|
||||
id: VT-WP-0005-T08
|
||||
title: Tests für Lose und Anforderungen
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0006
|
||||
id: VT-WP-0006
|
||||
type: workplan
|
||||
title: Aufgaben und Bieterfragen
|
||||
status: done
|
||||
status: finished
|
||||
phase: 6-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0005
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "9417f6d2-8340-505f-baf2-f7f90358da5a"
|
||||
---
|
||||
|
||||
# WP-0006 — Aufgaben und Bieterfragen
|
||||
|
|
@ -16,7 +19,7 @@ Implementiert alle Views für Aufgaben (UC-AU-01 bis UC-AU-04) und Bieterfragen
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0006-T01
|
||||
id: VT-WP-0006-T01
|
||||
title: Aufgabenliste pro Ausschreibung und globale Liste (UC-OV-03, UC-AU-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -44,7 +47,7 @@ Globale URL in Haupt-urls.py: `path('aufgaben/', include('vergabe_teilnahme.apps
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0006-T02
|
||||
id: VT-WP-0006-T02
|
||||
title: Aufgabe anlegen und zuweisen (UC-AU-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -62,7 +65,7 @@ status: done
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0006-T03
|
||||
id: VT-WP-0006-T03
|
||||
title: Aufgabenstatus inline ändern und Ergebnis dokumentieren (UC-AU-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -88,7 +91,7 @@ Nutzer kann Ergebnis eintragen und separat abspeichern.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0006-T04
|
||||
id: VT-WP-0006-T04
|
||||
title: Bieterfragen-Liste und Bieterfrage anlegen (UC-BF-01, UC-BF-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -117,7 +120,7 @@ path('<int:pk>/antwort/', views.bieterfrage_antwort, name='antwort'),
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0006-T05
|
||||
id: VT-WP-0006-T05
|
||||
title: Bieterfragen-Workflow und Antwort einarbeiten (UC-BF-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -137,7 +140,7 @@ Auf der Bieterfragen-Detailseite:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0006-T06
|
||||
id: VT-WP-0006-T06
|
||||
title: Aufgaben- und Bieterfragen-Tests
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0007
|
||||
id: VT-WP-0007
|
||||
type: workplan
|
||||
title: Dokumentenmanagement
|
||||
status: done
|
||||
status: finished
|
||||
phase: 7-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0006
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "0768ec09-284f-5480-9196-bb77fc025073"
|
||||
---
|
||||
|
||||
# WP-0007 — Dokumentenmanagement
|
||||
|
|
@ -16,7 +19,7 @@ für alle Dokumente. Referenz: UC-DO-01 bis UC-DO-05.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0007-T01
|
||||
id: VT-WP-0007-T01
|
||||
title: Dokument-Upload und Kategorisierung (UC-DO-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -38,7 +41,7 @@ gewählten Dateien (Dateinamen-Liste). Für jede Datei eigenes Formular-Submit
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0007-T02
|
||||
id: VT-WP-0007-T02
|
||||
title: Dokumentenliste und Dokumentdetail
|
||||
status: done
|
||||
|
||||
|
|
@ -59,7 +62,7 @@ Template `dokumente/liste.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0007-T03
|
||||
id: VT-WP-0007-T03
|
||||
title: Neue Dokumentversion hochladen (UC-DO-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -86,7 +89,7 @@ Logik `naechste_version(alte_version_str)`: "1.0" → "2.0", "2.3" → "3.0" (Ma
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0007-T04
|
||||
id: VT-WP-0007-T04
|
||||
title: Dokumentstatus-Workflow und finale Abgabeversion (UC-DO-03, UC-DO-04)
|
||||
status: done
|
||||
|
||||
|
|
@ -113,7 +116,7 @@ Nach Kennzeichnung erscheint grüner "Final" Badge; weitere Uploads zu dieser Ve
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0007-T05
|
||||
id: VT-WP-0007-T05
|
||||
title: Standarddokument aus Bibliothek zuordnen (UC-DO-05)
|
||||
status: done
|
||||
|
||||
|
|
@ -131,7 +134,7 @@ Ablaufende/abgelaufene Nachweise: Zeige Warnung in orange/rot.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0007-T06
|
||||
id: VT-WP-0007-T06
|
||||
title: Dokument-URL-Verkabelung und Tests
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0008
|
||||
id: VT-WP-0008
|
||||
type: workplan
|
||||
title: Preise und Marktpreisauswertung
|
||||
status: done
|
||||
status: finished
|
||||
phase: 8-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0007
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "e0e5c46d-a62d-57df-9229-f374c725c792"
|
||||
---
|
||||
|
||||
# WP-0008 — Preise und Marktpreisauswertung
|
||||
|
|
@ -16,7 +19,7 @@ und Leistungstyp-Auswertung. Referenz: UC-PR-01 bis UC-PR-04, FR-25 bis FR-36.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0008-T01
|
||||
id: VT-WP-0008-T01
|
||||
title: Preispunkt anlegen mit Vergleichsgewicht-Validierung (UC-PR-01, UC-PR-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -42,7 +45,7 @@ Template `preise/form.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0008-T02
|
||||
id: VT-WP-0008-T02
|
||||
title: Preispunkt-Liste pro Ausschreibung
|
||||
status: done
|
||||
|
||||
|
|
@ -65,7 +68,7 @@ Gesamtpreis-Auto-Berechnung:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0008-T03
|
||||
id: VT-WP-0008-T03
|
||||
title: Leistungstyp-Auswertung mit gewichtetem Durchschnitt (UC-PR-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -107,7 +110,7 @@ Darunter: Tabelle aller Einzelmesspunkte mit Ausschreibungstitel, Datum, Gewicht
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0008-T04
|
||||
id: VT-WP-0008-T04
|
||||
title: Globaler Preisvergleich (cross-Ausschreibung, UC-PR-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -129,7 +132,7 @@ in Haupt-URLs einbinden.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0008-T05
|
||||
id: VT-WP-0008-T05
|
||||
title: Preisfreigabe und URL-Verkabelung (UC-PR-04)
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0009
|
||||
id: VT-WP-0009
|
||||
type: workplan
|
||||
title: Abgabe und Nachbetrachtung
|
||||
status: done
|
||||
status: finished
|
||||
phase: 9-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0008
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "c59a0bb1-b332-5777-b916-38b7a3ac83ff"
|
||||
---
|
||||
|
||||
# WP-0009 — Abgabe (Phase 6/7) und Nachbetrachtung (Phase 8)
|
||||
|
|
@ -17,7 +20,7 @@ Referenz: UC-AB-01 bis UC-AB-03, UC-NB-01 bis UC-NB-03.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0009-T01
|
||||
id: VT-WP-0009-T01
|
||||
title: Abgabe-Checkliste mit Vollständigkeitsstatus (UC-AB-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -57,7 +60,7 @@ Template `nachbetrachtung/abgabe.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0009-T02
|
||||
id: VT-WP-0009-T02
|
||||
title: Abgabe dokumentieren mit Nachweis-Upload (UC-AB-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -98,7 +101,7 @@ def abgabe_dokumentieren(request, ausschreibung_id):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0009-T03
|
||||
id: VT-WP-0009-T03
|
||||
title: Nachbetrachtung-View — Ergebnis und Kickoff (UC-NB-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -133,7 +136,7 @@ Template `nachbetrachtung/detail.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0009-T04
|
||||
id: VT-WP-0009-T04
|
||||
title: Verlustanalyse und Lessons Learned (UC-NB-02, UC-NB-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -169,7 +172,7 @@ Bei Speichern: Aktualisiere `Nachbetrachtung`-Objekt, Redirect zur Nachbetrachtu
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0009-T05
|
||||
id: VT-WP-0009-T05
|
||||
title: URL-Verkabelung Abgabe/Nachbetrachtung und Tests
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0010
|
||||
id: VT-WP-0010
|
||||
type: workplan
|
||||
title: Subunternehmer, Partner und Bibliothek
|
||||
status: done
|
||||
status: finished
|
||||
phase: 10-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0009
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "9d0f69c0-d3f2-5d4a-9036-d5a5705da4e4"
|
||||
---
|
||||
|
||||
# WP-0010 — Subunternehmer, Partner und Bibliothek
|
||||
|
|
@ -16,7 +19,7 @@ Entscheidungsregel-Verwaltung. Referenz: UC-SU-01 bis UC-SU-04, UC-BIB-01 bis UC
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0010-T01
|
||||
id: VT-WP-0010-T01
|
||||
title: Subunternehmer-Katalog: Liste, Suche, Anlegen (UC-SU-01, UC-SU-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -39,7 +42,7 @@ CustomAttribute-Panel.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0010-T02
|
||||
id: VT-WP-0010-T02
|
||||
title: Subunternehmer einer Ausschreibung/Los zuordnen (UC-SU-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -77,7 +80,7 @@ drei Checkboxen (Zusage, Nachweis, Preis) — HTMX-togglebar.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0010-T03
|
||||
id: VT-WP-0010-T03
|
||||
title: Dienstleistertyp-Katalog und Subunternehmer als gesperrt markieren (UC-SU-04)
|
||||
status: done
|
||||
|
||||
|
|
@ -115,7 +118,7 @@ urlpatterns = [
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0010-T04
|
||||
id: VT-WP-0010-T04
|
||||
title: Bibliothek: Nachweis-Katalog mit Ablaufwarnung (UC-BIB-01, UC-BIB-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -147,7 +150,7 @@ path('nachweise/<int:pk>/version/', views.nachweis_neue_version, name='nachweis_
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0010-T05
|
||||
id: VT-WP-0010-T05
|
||||
title: Bibliothek: Referenz anlegen und zuordnen (UC-BIB-03, UC-BIB-04)
|
||||
status: done
|
||||
|
||||
|
|
@ -169,7 +172,7 @@ Zeigt Freigabestatus und Nutzungseinschränkungen als Warnung.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0010-T06
|
||||
id: VT-WP-0010-T06
|
||||
title: Bibliothek: Leistungsblatt und Entscheidungsregel (UC-BIB-05)
|
||||
status: done
|
||||
|
||||
|
|
@ -191,7 +194,7 @@ Auf der Entscheidungsseite (Phase 2) werden nur `aktiv=True` Regeln angezeigt.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0010-T07
|
||||
id: VT-WP-0010-T07
|
||||
title: Bibliothek URL-Verkabelung und Tests
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0011
|
||||
id: VT-WP-0011
|
||||
type: workplan
|
||||
title: Marktbegleiter-Analyse
|
||||
status: done
|
||||
status: finished
|
||||
phase: 11-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0010
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "fe7cd651-b5c1-58e7-9bd2-8641b589bd2e"
|
||||
---
|
||||
|
||||
# WP-0011 — Marktbegleiter-Analyse
|
||||
|
|
@ -16,7 +19,7 @@ Musterauswertung. Referenz: UC-MB-01 bis UC-MB-03.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0011-T01
|
||||
id: VT-WP-0011-T01
|
||||
title: Marktbegleiter-Katalog: Liste und Anlegen (UC-MB-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -37,7 +40,7 @@ marktbegleiter_detail:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0011-T02
|
||||
id: VT-WP-0011-T02
|
||||
title: Ausschreibungspassage erfassen (UC-MB-02, UC-MB-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -60,7 +63,7 @@ und im Marktbegleiter-Profil.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0011-T03
|
||||
id: VT-WP-0011-T03
|
||||
title: Marktbegleiter-Musterauswertung (UC-MB-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -96,7 +99,7 @@ Template `marktbegleiter/auswertung.html`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0011-T04
|
||||
id: VT-WP-0011-T04
|
||||
title: URL-Verkabelung und Tests
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0012
|
||||
id: VT-WP-0012
|
||||
type: workplan
|
||||
title: Querschnitt — Freigaben, Flexible Felder, Feedback, Suche, Tests
|
||||
status: done
|
||||
status: finished
|
||||
phase: 12-of-12
|
||||
created: "2026-05-08"
|
||||
depends_on: WP-0011
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "360f3eff-832a-5edd-bd7f-1c669d12af9e"
|
||||
---
|
||||
|
||||
# WP-0012 — Querschnitt
|
||||
|
|
@ -17,7 +20,7 @@ Referenz: UC-FR-01, UC-FR-02, UC-FF-01 bis UC-FF-03, UC-FB-01, UC-FB-02.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0012-T01
|
||||
id: VT-WP-0012-T01
|
||||
title: Generisches Freigabe-Modal (UC-FR-01)
|
||||
status: done
|
||||
|
||||
|
|
@ -70,7 +73,7 @@ URL: `path('freigaben/modal/', core_views.freigabe_modal, name='freigabe_modal')
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T02
|
||||
id: VT-WP-0012-T02
|
||||
title: Freigaben-Übersicht pro Ausschreibung (UC-FR-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -104,7 +107,7 @@ URL: `path('<int:pk>/freigaben/', views.freigaben_uebersicht, name='freigaben')`
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T03
|
||||
id: VT-WP-0012-T03
|
||||
title: EntityFieldConfig Admin-Interface (UC-FF-01, UC-FF-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -152,7 +155,7 @@ Pro Feld eine Zeile mit: Feldname, Anzeige-Label-Input, Ausblenden-Toggle (HTMX)
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T04
|
||||
id: VT-WP-0012-T04
|
||||
title: CustomAttribute-Panel für alle Detailseiten (UC-FF-03)
|
||||
status: done
|
||||
|
||||
|
|
@ -203,7 +206,7 @@ path('core/attrs/<int:ct_id>/<int:oid>/<int:attr_pk>/sort/', custom_attribute_so
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T05
|
||||
id: VT-WP-0012-T05
|
||||
title: Feedback vollständig: Modal-POST und Backlog-View (UC-FB-01, UC-FB-02)
|
||||
status: done
|
||||
|
||||
|
|
@ -233,7 +236,7 @@ Admin kann Status ändern (neu/in_bearbeitung/umgesetzt/abgelehnt), Bewertung un
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T06
|
||||
id: VT-WP-0012-T06
|
||||
title: End-to-End-Tests für kritische Use Cases
|
||||
status: done
|
||||
|
||||
|
|
@ -295,7 +298,7 @@ class TestFlexibleFelder:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T07
|
||||
id: VT-WP-0012-T07
|
||||
title: Globale Suche vervollständigen und Performance-Prüfung
|
||||
status: done
|
||||
|
||||
|
|
@ -317,7 +320,7 @@ dass die Such-View ≤ 6 DB-Queries ausführt (eine pro Entitätstyp + ContentTy
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0012-T08
|
||||
id: VT-WP-0012-T08
|
||||
title: Finaler Integrations-Smoke-Test und CLAUDE.md-Aktualisierung
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0013
|
||||
id: VT-WP-0013
|
||||
type: workplan
|
||||
title: Feedback-Bugs — Fehlerbehebungen und Verbesserungen aus dem Backlog
|
||||
status: done
|
||||
status: finished
|
||||
phase: 13-of-13
|
||||
created: "2026-05-14"
|
||||
depends_on: WP-0012
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "571742c6-613a-58e5-8067-6ed8de1cafed"
|
||||
---
|
||||
|
||||
# WP-0013 — Feedback-Bugs
|
||||
|
|
@ -18,7 +21,7 @@ zuerst die kritischen Fehler (Fristen, Teilnahmeentscheidung), dann mittlere
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0013-T01
|
||||
id: VT-WP-0013-T01
|
||||
title: Fehler — Fristen verschwinden nach Speichern (Feedback #4, Hoch)
|
||||
status: done
|
||||
|
||||
|
|
@ -36,7 +39,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T02
|
||||
id: VT-WP-0013-T02
|
||||
title: Fehler — Phase Teilnahmeentscheidung liefert Fehler (Feedback #6, Hoch)
|
||||
status: done
|
||||
|
||||
|
|
@ -50,7 +53,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T03
|
||||
id: VT-WP-0013-T03
|
||||
title: Fehler — Phase "Detaillierte Durchsicht" fehlerhaft (Feedback #7, Mittel)
|
||||
status: done
|
||||
|
||||
|
|
@ -65,7 +68,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T04
|
||||
id: VT-WP-0013-T04
|
||||
title: Fehler — Abgabe-Seite defekt (Feedback #8, Mittel)
|
||||
status: done
|
||||
|
||||
|
|
@ -80,7 +83,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T05
|
||||
id: VT-WP-0013-T05
|
||||
title: Hinweis — Ausschreibungen-Liste: Ausschreiber zuerst, Volumen ergänzen (Feedback #5, Mittel)
|
||||
status: done
|
||||
|
||||
|
|
@ -96,7 +99,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T06
|
||||
id: VT-WP-0013-T06
|
||||
title: Fehler — Feedback-Backlog bei leerem Bestand (Feedback #1, Niedrig)
|
||||
status: done
|
||||
|
||||
|
|
@ -111,7 +114,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T07
|
||||
id: VT-WP-0013-T07
|
||||
title: Hinweis — Rechtsgrundlage in Ausschreibungs-Stammdaten (Feedback #2, Mittel)
|
||||
status: done
|
||||
|
||||
|
|
@ -127,7 +130,7 @@ Schritte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0013-T08
|
||||
id: VT-WP-0013-T08
|
||||
title: Hinweis — Bindefrist: Tage erfassen, Datum berechnen (Feedback #3, Niedrig)
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0014
|
||||
id: VT-WP-0014
|
||||
type: workplan
|
||||
title: Aufgaben-Phasenzuordnung und Fertigstellungs-Scores in Übersichten
|
||||
status: done
|
||||
status: finished
|
||||
phase: 14-of-n
|
||||
created: "2026-05-14"
|
||||
depends_on: WP-0013
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "20481b06-592e-5fe4-9301-e397c3c101fd"
|
||||
---
|
||||
|
||||
# WP-0014 — Aufgaben-Phasenzuordnung und Scores
|
||||
|
|
@ -19,7 +22,7 @@ abgeschlossen.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0014-T01
|
||||
id: VT-WP-0014-T01
|
||||
title: Aufgabe.phase — Feld + Migration
|
||||
status: done
|
||||
|
||||
|
|
@ -48,7 +51,7 @@ Migration erstellen und ausführen.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T02
|
||||
id: VT-WP-0014-T02
|
||||
title: aufgaben_score() Helper in core/services.py
|
||||
status: done
|
||||
|
||||
|
|
@ -72,7 +75,7 @@ das Ergebnis direkt im Kontext.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T03
|
||||
id: VT-WP-0014-T03
|
||||
title: Aufgaben-Score in Ausschreibungen-Liste
|
||||
status: done
|
||||
|
||||
|
|
@ -107,7 +110,7 @@ nach der Volumen-Spalte:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T04
|
||||
id: VT-WP-0014-T04
|
||||
title: Aufgaben-Score in Ausschreibungs-Detail
|
||||
status: done
|
||||
|
||||
|
|
@ -137,7 +140,7 @@ Kopfbereich (neben Phase-Status), z.B.:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T05
|
||||
id: VT-WP-0014-T05
|
||||
title: Aufgaben-Score in Lose-Liste
|
||||
status: done
|
||||
|
||||
|
|
@ -160,7 +163,7 @@ lose = Los.objects.filter(ausschreibung=a).annotate(
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T06
|
||||
id: VT-WP-0014-T06
|
||||
title: Aufgaben-Score in Phase-Navigation
|
||||
status: done
|
||||
|
||||
|
|
@ -194,7 +197,7 @@ Fortschrittsbalken oder Score-Text anzeigen wenn `aufgaben_total > 0`:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T07
|
||||
id: VT-WP-0014-T07
|
||||
title: Phasen-Filter in Aufgaben-Liste
|
||||
status: done
|
||||
|
||||
|
|
@ -227,7 +230,7 @@ Kontext: `phase_choices=Aufgabe.PHASE_CHOICES`, `current_phase=phase_filter or '
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0014-T08
|
||||
id: VT-WP-0014-T08
|
||||
title: Tests + Smoke-Check aller geänderten Seiten
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0015
|
||||
id: VT-WP-0015
|
||||
type: workplan
|
||||
title: Aufgaben — Verknüpfungen, implizite Fälligkeit, Issue-Facade
|
||||
status: done
|
||||
status: finished
|
||||
phase: 15-of-n
|
||||
created: "2026-05-14"
|
||||
depends_on: WP-0014
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "0f2cf2d3-5c2c-5346-a3da-ca3a9e11038d"
|
||||
---
|
||||
|
||||
# WP-0015 — Aufgaben: Verknüpfungen, implizite Fälligkeit, Issue-Facade
|
||||
|
|
@ -32,7 +35,7 @@ Drei eigenständige Erweiterungen des Aufgaben-Moduls:
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0015-T01
|
||||
id: VT-WP-0015-T01
|
||||
title: Aufgabe.erstellt_am — Feld + Migration
|
||||
status: done
|
||||
|
||||
|
|
@ -54,7 +57,7 @@ für auto_now_add bei ALTER TABLE).
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T02
|
||||
id: VT-WP-0015-T02
|
||||
title: Implizite Fälligkeit — Property + Überfälligkeitsprüfung
|
||||
status: done
|
||||
|
||||
|
|
@ -124,7 +127,7 @@ angezeigt wird:
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T03
|
||||
id: VT-WP-0015-T03
|
||||
title: AufgabenVerknuepfung — Modell + Migration + Admin
|
||||
status: done
|
||||
|
||||
|
|
@ -164,7 +167,7 @@ Preispunkt). Wird in der Form als Auswahlfeld verwendet.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T04
|
||||
id: VT-WP-0015-T04
|
||||
title: Verknüpfungen-View — Liste + Hinzufügen (HTMX)
|
||||
status: done
|
||||
|
||||
|
|
@ -226,7 +229,7 @@ ermittelbar), Kommentar, Löschen-Button.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T05
|
||||
id: VT-WP-0015-T05
|
||||
title: Verknüpfungen-View — Entfernen (HTMX DELETE)
|
||||
status: done
|
||||
|
||||
|
|
@ -264,7 +267,7 @@ Im `verknuepfung_row.html` Löschen-Button als HTMX-POST mit
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T06
|
||||
id: VT-WP-0015-T06
|
||||
title: ExternalIssue — Modell + Migration + Service-Interface
|
||||
status: done
|
||||
|
||||
|
|
@ -344,7 +347,7 @@ Migration erstellen und ausführen. Admin registrieren.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T07
|
||||
id: VT-WP-0015-T07
|
||||
title: Issue-Facade UI — Panel auf Aufgaben-Detailseite
|
||||
status: done
|
||||
|
||||
|
|
@ -397,7 +400,7 @@ Key, Sync-Status, Notizen, Buttons "Bearbeiten" und "Entfernen".
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0015-T08
|
||||
id: VT-WP-0015-T08
|
||||
title: Tests + Smoke-Check
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0016
|
||||
id: VT-WP-0016
|
||||
type: workplan
|
||||
title: Issue-Facade Integration — lokale Aufgabenverfolgung + Remote-Delegation
|
||||
status: done
|
||||
status: finished
|
||||
phase: 16-of-n
|
||||
created: "2026-05-14"
|
||||
depends_on: WP-0015
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "4c4bf9bb-bd26-596f-919d-a05127c7012d"
|
||||
---
|
||||
|
||||
# WP-0016 — Issue-Facade Integration
|
||||
|
|
@ -33,7 +36,7 @@ Status wird von dort zurückgelesen.
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0016-T01
|
||||
id: VT-WP-0016-T01
|
||||
title: Package-Installation + Django-Settings
|
||||
status: done
|
||||
|
||||
|
|
@ -82,7 +85,7 @@ uv run python -c "from issue_tracker.backends.local import LocalSQLiteBackend; p
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T02
|
||||
id: VT-WP-0016-T02
|
||||
title: Backend-Utility — issue_backends.py
|
||||
status: done
|
||||
|
||||
|
|
@ -139,7 +142,7 @@ pro Request cheap genug für eine Einzelbenutzer-App).
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T03
|
||||
id: VT-WP-0016-T03
|
||||
title: ExternalIssue-Modell erweitern + Migration
|
||||
status: done
|
||||
|
||||
|
|
@ -201,7 +204,7 @@ uv run python manage.py migrate
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T04
|
||||
id: VT-WP-0016-T04
|
||||
title: Service-Schicht — issue_facade.py ersetzen
|
||||
status: done
|
||||
|
||||
|
|
@ -324,7 +327,7 @@ Der ABC `IssueAdapter` aus WP-0015 entfällt damit vollständig —
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T05
|
||||
id: VT-WP-0016-T05
|
||||
title: ExternalIssueForm anpassen + Views verkabeln
|
||||
status: done
|
||||
|
||||
|
|
@ -438,7 +441,7 @@ path('<int:pk>/issue/sync/', views.external_issue_sync, name='external_issue_syn
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T06
|
||||
id: VT-WP-0016-T06
|
||||
title: Admin + ExternalIssueAdmin aktualisieren
|
||||
status: done
|
||||
|
||||
|
|
@ -456,7 +459,7 @@ class ExternalIssueAdmin(admin.ModelAdmin):
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T07
|
||||
id: VT-WP-0016-T07
|
||||
title: UI — ExternalIssue-Panel aktualisieren
|
||||
status: done
|
||||
|
||||
|
|
@ -545,7 +548,7 @@ View als Kontext-Variable übergeben werden. Einfachste Lösung: in
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0016-T08
|
||||
id: VT-WP-0016-T08
|
||||
title: Tests + Smoke-Check
|
||||
status: done
|
||||
|
||||
|
|
@ -1,11 +1,14 @@
|
|||
---
|
||||
id: WP-0017
|
||||
id: VT-WP-0017
|
||||
type: workplan
|
||||
title: whynot-design Adoption — Phase 1 (Tokens + CSS)
|
||||
status: finished
|
||||
phase: 17-of-n
|
||||
created: "2026-05-23"
|
||||
depends_on: WP-0016
|
||||
domain: communication
|
||||
repo: vergabe-teilnahme
|
||||
state_hub_workstream_id: "b54cc8ba-3bf3-5331-99c3-3955e9e57e65"
|
||||
---
|
||||
|
||||
# WP-0017 — whynot-design Adoption · Phase 1 (Tokens + CSS)
|
||||
|
|
@ -40,7 +43,7 @@ Inventar und Lücken-Liste in
|
|||
---
|
||||
|
||||
```task
|
||||
id: WP-0017-T01
|
||||
id: VT-WP-0017-T01
|
||||
title: Vendor-Sync-Skript + initiale Vendor-Übernahme
|
||||
status: done
|
||||
|
||||
|
|
@ -113,7 +116,7 @@ Diffs gegen den Vendor sind Teil des Review-Surfaces beim nächsten Bump.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0017-T02
|
||||
id: VT-WP-0017-T02
|
||||
title: CSS-Integration in static/src/main.css
|
||||
status: done
|
||||
|
||||
|
|
@ -227,7 +230,7 @@ später durch self-hosting ersetzt werden — ist heute nicht relevant
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0017-T03
|
||||
id: VT-WP-0017-T03
|
||||
title: Base-Template — Body-Hintergrund auf whynot-Palette
|
||||
status: done
|
||||
|
||||
|
|
@ -248,7 +251,7 @@ weiterhin parallel zur whynot-Palette.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0017-T04
|
||||
id: VT-WP-0017-T04
|
||||
title: Build + Static-Asset-Prüfung
|
||||
status: done
|
||||
|
||||
|
|
@ -278,7 +281,7 @@ adressieren (visueller Bruch wird dort sichtbar).
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0017-T05
|
||||
id: VT-WP-0017-T05
|
||||
title: Big-Bang Smoke-Test — visueller Durchlauf aller Hauptseiten
|
||||
status: done
|
||||
|
||||
|
|
@ -324,7 +327,7 @@ Sichtprüfungs-Beleg.
|
|||
```
|
||||
|
||||
```task
|
||||
id: WP-0017-T06
|
||||
id: VT-WP-0017-T06
|
||||
title: Doku-Update und Phase-2-Pflock
|
||||
status: done
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue