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>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
749d6d6f52
commit
1b5a715c70
+39
-20
@@ -1,28 +1,47 @@
|
||||
"""sn_basis/functions/landkreise.py – Sächsische Landkreise/Helfer mit Kennzahl.
|
||||
|
||||
Quelle: landkreiskennzahlen.csv
|
||||
Daten liegen in sn_basis/data/landkreise.json (auch von anderen sn_*-Modulen
|
||||
lesbar, z.B. per ``from sn_basis.functions.landkreise import LANDKREISE``).
|
||||
"""
|
||||
|
||||
#: Liste von (Landkreiskennzahl, Landkreis/Helfer)-Tupeln, in CSV-Reihenfolge.
|
||||
LANDKREISE: list[tuple[str, str]] = [
|
||||
("11", "Chemnitz, Stadt"),
|
||||
("12", "Dresden, Stadt"),
|
||||
("13", "Leipzig, Stadt"),
|
||||
("21", "Erzgebirgskreis"),
|
||||
("22", "Mittelsachsen"),
|
||||
("23", "Vogtlandkreis"),
|
||||
("24", "Zwickau"),
|
||||
("25", "Bautzen"),
|
||||
("26", "Görlitz"),
|
||||
("27", "Meißen"),
|
||||
("28", "Sächsische Schweiz-Osterzgebirge"),
|
||||
("29", "Leipzig"),
|
||||
("30", "Nordsachsen"),
|
||||
("80", "LfULG"),
|
||||
]
|
||||
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)
|
||||
KENNZAHL_ZU_NAME: "dict[str, str]" = dict(LANDKREISE)
|
||||
|
||||
#: Name -> Kennzahl
|
||||
NAME_ZU_KENNZAHL: dict[str, str] = {name: kennzahl for kennzahl, name in LANDKREISE}
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user