- 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>
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
"""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"
|