Landkreis-Auswahldialog bei fehlenden Projekteigenschaften, Style-Fix "Nur laden"

- Ist weder Verfahrensnummer noch Landkreis in den Projekteigenschaften
  gesetzt, wird jetzt per Dialog ein Landkreis abgefragt (inkl. "Alle
  Landkreise") statt direkt abzubrechen.
- Verfahrensgebiet-spezifische ALKIS-Dialoge aus sn_basis hierher verschoben:
  neue Datei functions/verfahrensgebiet_dialoge.py
  (ask_bror_kombinationen, ask_landkreis_objekte, ask_landkreis_auswahl).
- Bugfix: BROR-Layer bekommt seinen Style (BauRaumOderBodenordnungsrecht.qml)
  jetzt direkt beim Laden in verfahrensgebiet_alkis_komplett(), unabhängig
  vom weiteren Ablauf. working_tab.py überspringt bei "Nur Objekte laden"
  jetzt den gesamten VG-Nachbehandlungsblock (Style/Extent/Haken/Combobox/
  Erfolgsmeldung), da dort kein echter VG-Layer entsteht. Detailprüfung/
  Verifikation im echten QGIS (nicht nur per Unittest) steht noch aus.
- Bugfix: Erfolgsmeldung "Layer wurde ... geladen (inkl.
  Flurstücksverschneidung)" erscheint nicht mehr bei "Nur Objekte laden".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Michael Otto
2026-08-28 13:55:03 +02:00
co-authored by Claude Sonnet 5
parent 148d4dfa15
commit 5816b2af22
6 changed files with 392 additions and 29 deletions
+23 -8
View File
@@ -52,6 +52,9 @@ from sn_basis.functions.dialog_wrapper import (
show_info_dialog,
ask_detailpruefung_oder_vg_laden,
)
from sn_basis.functions.landkreise import LANDKREISE, ALLE_LANDKREISE
from sn_basis.functions.ly_style_wrapper import apply_style
from sn_verfahrensgebiet.functions.verfahrensgebiet_dialoge import ask_landkreis_auswahl
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis import (
_suche_verfahrensgebiet_features,
@@ -79,6 +82,8 @@ from sn_verfahrensgebiet.functions.knickpunkt_pruefung import (
FELD_VKZ = "verfahrensnummer"
#: Anzeigename des BROR-Layers im Projekt
BROR_LAYER_NAME = "BauRaumOderBodenordnungsrecht (ALKIS)"
#: QML-Stildatei für den BROR-Layer (sn_verfahrensgebiet/styles/)
BROR_STYLE_QML = "BauRaumOderBodenordnungsrecht.qml"
#: Projektvariable für die Flächentoleranz (in m²); Default 0
FLAECHEN_TOLERANZ_VARIABLE = "flaechen_toleranz_m2"
#: Minimale implizite Flächentoleranz – Abweichungen unter diesem Wert
@@ -309,13 +314,17 @@ def verfahrensgebiet_alkis_komplett(
landkreis_kennzahl = get_variable("landkreis_kennzahl")
if not verfahrensnummer and not landkreis_kennzahl:
QMessageBox.critical(
tab_widget,
"Fehler",
"Weder eine Verfahrensnummer noch ein Landkreis ist in den "
"Projekteigenschaften eingetragen!",
)
return None, None, None, LoadStatus.NONE
# Keine Projekteigenschaften vorhanden – Landkreis per Dialog abfragen,
# statt direkt abzubrechen.
landkreis_kennzahl = ask_landkreis_auswahl(tab_widget, LANDKREISE)
if not landkreis_kennzahl:
QMessageBox.critical(
tab_widget,
"Fehler",
"Weder eine Verfahrensnummer noch ein Landkreis ist in den "
"Projekteigenschaften eingetragen!",
)
return None, None, None, LoadStatus.NONE
landkreis_modus = not verfahrensnummer
@@ -323,7 +332,10 @@ def verfahrensgebiet_alkis_komplett(
# Dialog 1: Verfahrensgebiet(e) in ALKIS ermitteln/suchen
# ------------------------------------------------------------------
if landkreis_modus:
such_label = f"Objekte in Landkreis {landkreis_kennzahl} ermitteln/suchen …"
if landkreis_kennzahl == ALLE_LANDKREISE:
such_label = "Objekte in allen Landkreisen ermitteln/suchen …"
else:
such_label = f"Objekte in Landkreis {landkreis_kennzahl} ermitteln/suchen …"
else:
such_label = "Verfahrensgebiet(e) in ALKIS ermitteln/suchen …"
@@ -378,6 +390,9 @@ def verfahrensgebiet_alkis_komplett(
if vg_status in (LoadStatus.FIRST, LoadStatus.RELOAD):
project.addMapLayer(alkis_vg_layer)
bror_was_added_by_us = True
# Style direkt nach dem Laden anwenden – unabhängig vom weiteren
# Ablauf, damit auch "Nur Objekte laden" den Style erhält.
apply_style(alkis_vg_layer, BROR_STYLE_QML)
if nur_laden:
# Nutzer hat "Nur laden" angehakt – kein Dialog 2, kein weiterer