Files
Plugin_SN_Basis/functions/landkreise.py
T
Michael OttoandClaude Sonnet 5 1b5a715c70 Landkreisliste als JSON auslagern; Verfahrensgebiet-Dialoge nach sn_verfahrensgebiet verschoben
- Landkreisliste liegt jetzt in data/landkreise.json statt hartcodiert in
  landkreise.py, damit sie ohne Codeänderung pflegbar und auch aus anderen
  Modulen nutzbar ist (Sentinel ALLE_LANDKREISE für "Alle Landkreise").
- ask_bror_kombinationen, ask_landkreis_objekte und ask_landkreis_auswahl aus
  dialog_wrapper.py entfernt: sie sind sn_verfahrensgebiet-spezifisches
  Vokabular (BROR/VKZ/Landkreis-Fallback) und gehören nicht in den
  domänenfreien sn_basis-Hub. Sie leben jetzt in
  sn_verfahrensgebiet/functions/verfahrensgebiet_dialoge.py.
- qt_wrapper.py: QTableWidget/QTableWidgetItem/QTableWidgetSelectionRange,
  SelectRows, NoEditTriggers, AscendingOrder ergänzt (für die neue
  Tabellen-Auswahl im Landkreis-Objektdialog).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-28 13:54:43 +02:00

48 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""sn_basis/functions/landkreise.py Sächsische Landkreise/Helfer mit Kennzahl.
Daten liegen in sn_basis/data/landkreise.json (auch von anderen sn_*-Modulen
lesbar, z.B. per ``from sn_basis.functions.landkreise import LANDKREISE``).
"""
import json
import os
try:
from qgis.core import Qgis, QgsMessageLog
except Exception: # Mock-Modus / außerhalb QGIS
Qgis = None
QgsMessageLog = None
# .../sn_basis/data/landkreise.json (eine Ebene über dieser Datei, dann data/)
_DATA_DATEI = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data", "landkreise.json")
def _lade_landkreise() -> "list[tuple[str, str]]":
try:
with open(_DATA_DATEI, "r", encoding="utf-8") as f:
rohdaten = json.load(f)
return [(eintrag["kennzahl"], eintrag["name"]) for eintrag in rohdaten]
except Exception as exc:
if QgsMessageLog is not None:
QgsMessageLog.logMessage(
f"landkreise.json konnte nicht geladen werden ({_DATA_DATEI}): {exc}",
"sn_basis",
Qgis.Warning,
)
else:
print(f"⚠️ landkreise.json konnte nicht geladen werden ({_DATA_DATEI}): {exc}")
return []
#: Liste von (Landkreiskennzahl, Landkreis/Helfer)-Tupeln, in Datei-Reihenfolge.
LANDKREISE: "list[tuple[str, str]]" = _lade_landkreise()
#: Kennzahl -> Name
KENNZAHL_ZU_NAME: "dict[str, str]" = dict(LANDKREISE)
#: Name -> Kennzahl
NAME_ZU_KENNZAHL: "dict[str, str]" = {name: kennzahl for kennzahl, name in LANDKREISE}
#: Sentinel-"Kennzahl" für die Auswahl "Alle Landkreise" (kein Landkreis-Filter).
ALLE_LANDKREISE = "ALLE"