Suche auf Anträge einschränken: Typ-Erkennung + Filter pro Adapter #127
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#127
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Der GWÖ-Antragsprüfer bewertet aktuell ALLE Drucksachen-Typen gleich — Kleine Anfragen, Große Anfragen, Beschlussempfehlungen, Unterrichtungen etc. werden genauso bewertet wie echte Anträge und Gesetzentwürfe. Das führt zu sinnlosen Bewertungen (z.B. Kleine Anfrage 18/18448 hat GWÖ-Score 9.0, wird aber nie abgestimmt).
Ziel
Drucksache.typwird mit dem Original-Typ des jeweiligen Parlaments befüllt (z.B. "Antrag", "Gesetzentwurf", "Kleine Anfrage", "Dringlichkeitsantrag")Normierte Kategorien (Vorschlag)
antraggesetzentwurfaenderungsantragdringlichkeitsantragbeschlussempfehlungkleine_anfragegrosse_anfrageunterrichtungpetitionsonstigeImplementierung
1. Übersetzungstabelle pro Adapter
2. Adapter-Änderungen
Pro Adapter:
Drucksache.typspeichern (Original-String vom Landtag)dokTyp-Filter in der Suche nutzen (wenn API das unterstützt)3. DB-Migration
4. Filter in der Analyse-Pipeline
Akzeptanzkriterien
Drucksache.typenthält den Original-Typ vom Landtagtyp+typ_normiertSpaltenAdapter Typ-Recherche — Ergebnis
Übersicht
Drucksache.typgesetzt?dokTyp=''(leer=alle) — filterbar.e-document-result-item__categoryETYPF="Antrag"aktiv"Antrag"ETYPF="Antrag"aktivdoctype_fullETYPF="Antrag"aktivETYPF="Antrag"aktivWEV03document_type=Nonedoctype_fulllines.l4="Antrag"self.document_typdtyp=antrag"Antrag"f.drucksachetyp=Antragdrucksachetyphit["type"]hit["type"]hit["type"]<p>Antrag...</p>WEV03"Antrag vom DD.MM.YYYY"Sections={}leeritem["DocumentType"]"Antrag"Drei Kategorien
Server-seitig aktiv (7 Adapter): LSA, BB, RP, NI, BW, SH, BUND — diese filtern bereits auf Anträge, andere Typen kommen gar nicht erst zurück.
Server-seitig aktivierbar (3 Adapter): MV, HH, TH (ParLDokAdapter) —
FACET_TYPE=8mitid="Antrag"ist dokumentiert und wäre ein Ein-Zeilen-Fix in_build_search_body.Nur client-seitig (7 Adapter): NRW, BE, BY, HE, HB, SL, SN — Typ-Information ist in der Antwort vorhanden, wird client-seitig gefiltert. Für NRW wäre
dokTyp-Parameter sofort nutzbar.Wichtigster Fix: NRW
NRW hat
dokTyp=''(alle Typen) → Das erklärt warum Kleine Anfragen durchkommen. Fix:Die möglichen Werte für
dokTypmüssen aus dem OPAL-Formular ermittelt werden (Dropdown-Optionen).Fazit
Drucksache.typwird bereits von ALLEN 17 Adaptern gesetzt — der Wert kommt aus verschiedenen Quellen (HTML, JSON, Config), ist aber immer vorhanden. Was fehlt:typ+typ_normiertinassessmentsdokTyp-Filter auf "Antrag" setzenImplementiert und deployed ✅
Was gebaut wurde
app/drucksache_typen.py(neu, 80 LOC)normalize_typ(original)— case-insensitiv, substring-match, spezifischere zuerstist_abstimmbar(typ_normiert)— {antrag, gesetzentwurf, aenderungsantrag, dringlichkeitsantrag, entschliessungsantrag}DrucksacheDataclass erweiterttyp_normiert: str— automatisch via__post_init__gesetztParlamentAdapter._filter_abstimmbar()— zentraler Filter in der BasisklasseNRW Typ-Erkennung aus Dokument-Text
DB-Migration:
typ TEXT+typ_normiert TEXTSpalten in assessmentsTestergebnisse — alle 17 Adapter
Verifizierung
Kleine Anfragen werden jetzt übersprungen, Anträge und Gesetzentwürfe durchgelassen.
Schließe.