From 7c1e0fa0b0832481dbbe7aa5dfcb928a204e2f81 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Sun, 3 May 2026 21:24:38 +0200 Subject: [PATCH] feat(#170): Chart-Click-Tag-Filter + Transparenz-Banner + top_k 50 default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Feedback: "Welche Meldungen werden da angezeigt? Es wurden ja viel mehr indiziert." **1. Transparenz-Banner im News-Tab** Zeigt jetzt explizit: - "X News angezeigt" - "Y News im Zeitraum (mit Embedding)" - "Z News insgesamt embedded" - Hinweis wenn only_relevant aktiv ist - Hinweis wenn top_k limitierend ist **2. Chart als Filter** — Klick auf einen Tag im News-Volumen-Chart wechselt zum News-Tab und filtert auf diesen Tag. - Chart bekommt onClick-Handler ueber getElementsAtEventForMode - Cursor wechselt bei Hover ueber Datenpunkte - Im News-Tab erscheint Pill "Tag: 2026-05-01 [× Tag-Filter entfernen]" **3. Backend `single_date`-Param** `aggregate_top_themen(single_date="YYYY-MM-DD")` filtert auf genau diesen Tag (overrides days_window). Endpoint: `/api/aktuelle-themen/top ?date=YYYY-MM-DD`. Response neu: `n_in_window`, `n_shown`, `filter.single_date`. **4. Default top_k 20 → 50** (max 200), damit weniger oft auf "top_k limitierend" gestoßen wird. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/main.py | 5 ++ app/templates/v2/screens/aktuelle-themen.html | 57 +++++++++++++++++-- app/themen_matching.py | 13 ++++- 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/app/main.py b/app/main.py index e4ad7eb..e2a6e37 100644 --- a/app/main.py +++ b/app/main.py @@ -2031,11 +2031,15 @@ async def api_aktuelle_themen_top( min_similarity: float = 0.4, matches_per_news: int = 3, only_relevant: bool = False, + date: Optional[str] = None, ): """Top-K News der letzten N Tage mit Antrags-Match. Mit `only_relevant=true` werden News mit Relevance-Level "low" oder "none" rausgefiltert. + + Mit `date=YYYY-MM-DD` werden nur News dieses Tages angezeigt + (overrides `days`). """ from .themen_matching import aggregate_top_themen return aggregate_top_themen( @@ -2044,6 +2048,7 @@ async def api_aktuelle_themen_top( min_similarity=min_similarity, matches_per_news=matches_per_news, only_relevant=only_relevant, + single_date=date, ) diff --git a/app/templates/v2/screens/aktuelle-themen.html b/app/templates/v2/screens/aktuelle-themen.html index 3263475..0a78cf8 100644 --- a/app/templates/v2/screens/aktuelle-themen.html +++ b/app/templates/v2/screens/aktuelle-themen.html @@ -168,7 +168,7 @@ - +