gwoe-antragspruefer/app/templates/v2/screens
Dotty Dotter aef8f83a08 feat: Antrag-Detail News-Match-Box + Test-Coverage fuer aktuelle-themen
**News-Match-Box im Antrag-Detail:**
Reverse-Sicht zur /aktuelle-themen-Seite — pro Antrag-Detail-Page eine
Box "Aktuelle News passend zu diesem Antrag" mit den Top-5 Matches der
letzten 90 Tage. Pro News-Card direkter "PM-Vorschlag generieren"-Button
mit Idempotenz-Check (bestehender Draft wird ohne LLM-Call zurueckgegeben).

Loesst das User-Feedback "ich oeffne ja meist Antrags-Detail, nicht den
News-Tab — da fehlt mir die News-Sicht". Box laedt lazy via fetch und
bleibt komplett versteckt wenn keine Matches existieren (kein Noise).

**Test-Coverage fuer die heutigen Backend-Aenderungen:**

`tests/test_llm_bewerter.py`:
- 6 Tests fuer `_recover_unescaped_newlines` (clean, raw newline, tab+cr,
  outside-string, makes-invalid-valid, preserves-already-escaped)
- 2 Tests fuer `json_object_mode` pass-through (off → kein Param,
  on → response_format={"type":"json_object"})
- 1 Integration: Recovery greift im bewerte()-Loop ohne Retry

`tests/test_endpoints_smoke.py`:
- Vote-Orphans-Endpoint (GET) Smoke
- Vote-Orphans-Auto-Rate Auth-Wall
- Batch-Analyze Auth-Wall (incl. ALL-Modus)
- Aktuelle-Themen-Endpoints (top, zeitreihe, top-antraege, cluster,
  drafts-list, drafts-versions) — 8 Tests

`tests/test_batch_helpers.py`:
- 4 Unit-Tests fuer _enqueue_for_bl-Logik via Inline-Repro mit Mocks
  (already-rated skip, no-adapter, limit-cap, empty-text-skip)

Suite: 1084 passed, 50 skipped (Smoke-Tests skippen lokal weil
FastAPI nicht importbar, greifen aber gegen dev/CI).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 02:22:22 +02:00
..
abos.html ux(v2): Partei-Dropdown statt Freitext in /v2/abos und /v2/feed 2026-04-25 22:37:31 +02:00
admin_abos.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
admin_freischaltungen.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
admin_queue.html fix: Admin-Queue-Ansicht — Daten wurden nicht angezeigt 2026-05-03 22:49:13 +02:00
admin_wahlprogramme.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
aktuelle-themen.html feat(#170): Chart-Click-Tag-Filter + Transparenz-Banner + top_k 50 default 2026-05-03 21:24:38 +02:00
antrag_detail.html feat: Antrag-Detail News-Match-Box + Test-Coverage fuer aktuelle-themen 2026-05-06 02:22:22 +02:00
auswertungen.html feat(#172): Vote-Orphans-Banner + Bulk-Auto-Bewerten-Endpoint 2026-05-06 02:03:23 +02:00
batch.html feat: Batch-Analyse mit "Alle Bundeslaender"-Modus 2026-05-06 02:00:03 +02:00
cluster.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
durchsuchen.html feat(v2): globaler BL-Selector im Header + Auth-gated Sidebar + Queue-Widget 2026-04-25 21:50:36 +02:00
feed.html ux(v2): Partei-Dropdown statt Freitext in /v2/abos und /v2/feed 2026-04-25 22:37:31 +02:00
landtag_suche.html feat(#146): Fraktionen je Treffer in Landtag-Suche anzeigen 2026-04-28 01:47:54 +02:00
legal.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
merkliste.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
methodik.html feat(#106 Folge): Datenquellen-Tabelle auf /methodik um Plenum-Vote-Spalte erweitert 2026-04-28 23:12:58 +02:00
neu.html feat(v2): globaler BL-Selector im Header + Auth-gated Sidebar + Queue-Widget 2026-04-25 21:50:36 +02:00
quellen.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00
tags.html feat(#139,#129,#138,#141): v2-Frontend (ECOnGOOD-CD), Login-Modal, Auto-DL, OG-Cards 2026-04-25 20:55:57 +02:00