Commit Graph

150 Commits

Author SHA1 Message Date
7d6d2ebc2a chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 16:20:12 +02:00
4370be6160 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 15:34:43 +02:00
e286290794 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 15:34:29 +02:00
e08698ecdb chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 14:48:17 +02:00
37df677906 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 14:48:04 +02:00
0903d2a8a4 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 14:32:35 +02:00
ee5f530f5f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 14:17:08 +02:00
b3377af439 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 14:01:57 +02:00
8e91751528 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 14:01:43 +02:00
dd6948f5ee chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 13:46:47 +02:00
819b928041 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 13:46:19 +02:00
d7a4e4b07b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 13:30:44 +02:00
3aca040ca7 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 13:30:30 +02:00
2e0635501d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 12:44:05 +02:00
8ff7fbc5bd chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 12:28:15 +02:00
b4aac0fd33 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 12:28:03 +02:00
15ee4b3638 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 12:12:42 +02:00
bdb9370c0b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 11:57:09 +02:00
a907ed6f74 issue-facade integration 2026-05-14 11:30:30 +02:00
c2b7cc64d6 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 06:13:39 +02:00
c022279038 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 05:58:27 +02:00
cc499adc61 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 05:43:16 +02:00
3d36baa1ce chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 05:28:04 +02:00
35a71c1cc1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 05:12:52 +02:00
69fda01d95 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 04:57:33 +02:00
28e012201b chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 04:57:22 +02:00
2877898885 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 04:42:27 +02:00
256fb4c75c chore(workplan): WP-0016 — Issue-Facade Integration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 04:29:29 +02:00
d88aa9318c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 04:27:27 +02:00
816c281f6a 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>
2026-05-14 04:18:28 +02:00
a0c0ddf2eb chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 04:12:12 +02:00
b7863f60a5 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 04:11:59 +02:00
a72360cc94 docs(workplan): WP-0015 — Aufgaben-Verknüpfungen, implizite Fälligkeit, Issue-Facade
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 03:36:43 +02:00
a9c230326d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 03:31:59 +02:00
b054824862 fix(aufgaben): aufgabe_row.html nutzt aufgabe.ausschreibung_id statt ausschreibung.pk
Im globalen /aufgaben/-Kontext ist ausschreibung=None; die direkten FK-IDs
auf dem Aufgabe-Objekt sind immer vorhanden und erfordern kein Queryset-Join.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 03:17:14 +02:00
9ef6e0950a feat(aufgaben): Aufgaben-Panel auf Ausschreibungs-Detailseite + Sidebar-Link
Aufgaben sind jetzt direkt von der Detailseite erreichbar und anlegbar:
- Aufgaben-Panel mit HTMX-Inline-Formular auf ausschreibung_detail
- Globaler Sidebar-Link /aufgaben/ für ausschreibungsübergreifende Übersicht
- aufgaben-Queryset in ausschreibung_detail-Kontext ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 03:12:23 +02:00
f6af101933 Unterstützung für Lose 2026-05-14 02:57:27 +02:00
e4eb5bc368 feat(WP-0014): Aufgaben-Phasenzuordnung und Fertigstellungs-Scores
Aufgabe bekommt ein phase-Feld (1–8). aufgaben_score()-Helper in
core/services.py berechnet abgeschlossen/total/score_pct für jedes
QuerySet. Score-Spalten in Ausschreibungen-Liste, Lose-Liste und
Ausschreibungs-Detail; per-Phase-Scores in der Seitenleisten-Navigation.
Phasenfilter in Aufgaben-Liste. 68 Tests grün.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 01:47:05 +02:00
f5950b6cbc chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 01:09:14 +02:00
58889a5a82 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-14 00:54:03 +02:00
7903f59f85 fix(WP-0013): Feedback-Bugs — alle 8 Einträge aus Backlog behoben
- Fristen-Widget-Format: DateInput/DateTimeInput mit ISO-Format-Attribut, damit
  Browser date/datetime-local korrekt vorausfüllen (Feedback #4)
- Phase 2 Teilnahmeentscheidung: URL in build_phase_nav von
  /teilnahmeentscheidung/ → /entscheidung/ korrigiert (Feedback #6)
- Phase 3 Detaillierte Durchsicht: URL in build_phase_nav von
  /anforderungen/ → /lose/anforderungen/ korrigiert (Feedback #7)
- Phase 7 Abgabe: order_by('bezeichnung') → order_by('beschreibung') in
  abgabe_views.py (Dokument hat kein Feld 'bezeichnung') (Feedback #8)
- Ausschreibungen-Liste: Ausschreiber zuerst, Titel zweite Spalte,
  neues geschätztes Volumen (Feedback #5)
- Feedback-Backlog Leerstand: bereits durch vorherigen URL-Fix abgedeckt
  (Feedback #1)
- Rechtsgrundlage (VgV/UVgO/VOB/A/SektVO/GWB) als neues Formularfeld
  incl. Migration (Feedback #2)
- Bindefrist in Tagen + berechnetes Enddatum als Modell-Property
  bindefrist_berechnet, Formular und Detailansicht erweitert (Feedback #3)

68/68 Tests grün.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 00:31:55 +02:00
d6873d7b88 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-14:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-14 00:05:16 +02:00
889aa6050c chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-13:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-13 23:50:00 +02:00
40e70e64f0 fix(feedback): inline edit + live status change without reload
- Replaced broken status_aendern (missing status_choices in response)
  with a single eintrag_bearbeiten view that always returns the full
  partial context
- eintrag_zeile.html is now a <tbody x-data="{ editing: false }"> with
  two rows: display row + collapsible edit form
- Click anywhere on a row to expand the edit form; @click.stop on the
  status cell prevents accidental toggles
- Status dropdown in the display row posts via HTMX and swaps the whole
  <tbody> — no page reload needed
- Edit form covers all fields: titel, beschreibung, kategorie,
  dringlichkeit, status, bewertung, entscheidung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 23:45:10 +02:00
40739c1bfd fix(feedback): sidebar links to /feedback/backlog/ not /feedback/
The submit endpoint only accepts POST; the sidebar was pointing to it
causing a 405 on click.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 23:35:22 +02:00
2ee2e4459f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-13:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-13 23:32:57 +02:00
35333d5d73 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-13:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-13 23:32:48 +02:00
374934f08e chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-13:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-13 23:16:35 +02:00
787c77e94d chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-13:
  - update .custodian-brief.md for vergabe_teilnahme
2026-05-13 23:01:54 +02:00
c4d1a534d1 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-05-13:
  - update .custodian-brief.md for vergabe-teilnahme
2026-05-13 21:26:03 +02:00