feat(WP-0012): Querschnitt — Freigaben, Felder, Feedback, Suche, Tests

Implements all 8 tasks of the final cross-cutting workplan:

- T01: Generisches Freigabe-Modal (freigabe_modal, freigabe_erteilen views + templates)
- T02: Freigaben-Übersicht pro Ausschreibung (freigaben_uebersicht view + template)
- T03: EntityFieldConfig Admin-Interface (/felder/<entity_type>/ with HTMX toggle)
- T04: CustomAttribute-Panel (full CRUD with sort, lazy HTMX load)
- T05: Feedback-Backlog mit Statusverwaltung + feedback_success.html template
- T06: End-to-End-Tests in vergabe_teilnahme/tests/test_e2e.py (8 tests)
- T07: Globale Suche erweitert (Dokumente, Nachweise, Referenzen, Marktbegleiter)
- T08: Alle Migrationen sauber, 68/68 Tests grün, Ruff-Fehler in neuem Code behoben

Bugfix: URL-Namespace-Fehler in Abgabe-Templates (ausschreibungen:nachbetrachtung:abgabe → ausschreibungen:abgabe)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-05-11 17:54:38 +02:00
parent c5ccbd665d
commit 5a231223c0
23 changed files with 828 additions and 37 deletions

View file

@ -1,7 +1,7 @@
---
id: WP-0012
title: Querschnitt — Freigaben, Flexible Felder, Feedback, Suche, Tests
status: todo
status: done
phase: 12-of-12
created: "2026-05-08"
depends_on: WP-0011
@ -18,7 +18,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
title: Generisches Freigabe-Modal (UC-FR-01)
status: todo
status: done
`core/views.py` — freigabe_modal und freigabe_erteilen:
@ -71,7 +71,7 @@ URL: `path('freigaben/modal/', core_views.freigabe_modal, name='freigabe_modal')
```task
id: WP-0012-T02
title: Freigaben-Übersicht pro Ausschreibung (UC-FR-02)
status: todo
status: done
`ausschreibungen/views.py` — freigaben_uebersicht:
```python
@ -105,7 +105,7 @@ URL: `path('<int:pk>/freigaben/', views.freigaben_uebersicht, name='freigaben')`
```task
id: WP-0012-T03
title: EntityFieldConfig Admin-Interface (UC-FF-01, UC-FF-02)
status: todo
status: done
`core/views.py` — feld_konfiguration_liste und feld_konfiguration_toggle:
@ -153,7 +153,7 @@ Pro Feld eine Zeile mit: Feldname, Anzeige-Label-Input, Ausblenden-Toggle (HTMX)
```task
id: WP-0012-T04
title: CustomAttribute-Panel für alle Detailseiten (UC-FF-03)
status: todo
status: done
`core/views.py` — custom_attributes_panel, custom_attribute_neu, custom_attribute_bearbeiten:
@ -204,7 +204,7 @@ path('core/attrs/<int:ct_id>/<int:oid>/<int:attr_pk>/sort/', custom_attribute_so
```task
id: WP-0012-T05
title: Feedback vollständig: Modal-POST und Backlog-View (UC-FB-01, UC-FB-02)
status: todo
status: done
`feedback/views.py` — feedback_modal, feedback_speichern, feedback_backlog:
@ -234,7 +234,7 @@ Admin kann Status ändern (neu/in_bearbeitung/umgesetzt/abgelehnt), Bewertung un
```task
id: WP-0012-T06
title: End-to-End-Tests für kritische Use Cases
status: todo
status: done
Erstelle `vergabe_teilnahme/tests/test_e2e.py` mit vollständigen Prozess-Tests:
@ -296,7 +296,7 @@ class TestFlexibleFelder:
```task
id: WP-0012-T07
title: Globale Suche vervollständigen und Performance-Prüfung
status: todo
status: done
Vervollständige `core/views.py` — global_search:
- Dokumente (dateiname__icontains)
@ -318,7 +318,7 @@ dass die Such-View ≤ 6 DB-Queries ausführt (eine pro Entitätstyp + ContentTy
```task
id: WP-0012-T08
title: Finaler Integrations-Smoke-Test und CLAUDE.md-Aktualisierung
status: todo
status: done
Führe den finalen Integrations-Test durch: