Funktion angelegt, Button eingefügt
This commit is contained in:
@@ -23,6 +23,10 @@ from sn_verfahrensgebiet.functions.flurstueck_alkis import (
|
||||
)
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett import verfahrensgebiet_alkis_komplett
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_shape_komplett import verfahrensgebiet_shape_komplett
|
||||
from sn_verfahrensgebiet.functions.beteiligung_pruefung import (
|
||||
beteiligung_pruefen,
|
||||
BeteiligungPruefungFehler,
|
||||
)
|
||||
from sn_verfahrensgebiet.functions.grenzpunkt_alkis import grenzpunkte_gemarkungsweise, JOINED_LAYER_NAME
|
||||
from sn_verfahrensgebiet.functions.gemarkung_alkis import (
|
||||
gemarkung_schluessel_und_namen_von_vg_geometrie,
|
||||
@@ -72,6 +76,15 @@ class WorkingTab(QWidget):
|
||||
row_verf_buttons.addWidget(self.btn_verf_shape)
|
||||
layout.addLayout(row_verf_buttons)
|
||||
|
||||
row_beteiligung_buttons = QHBoxLayout()
|
||||
self.btn_beteiligung_pruefen = QPushButton("Beteiligung prüfen")
|
||||
self.btn_beteiligung_pruefen.setToolTip(
|
||||
"CSV-Export aus dem BI-Server verwenden. benötigte Spalten: "
|
||||
"FLA_Verfahren-VEF_VKZF, FLA-Flurstuecke-Flurstueck, FLA_Beteiligung"
|
||||
)
|
||||
row_beteiligung_buttons.addWidget(self.btn_beteiligung_pruefen)
|
||||
layout.addLayout(row_beteiligung_buttons)
|
||||
|
||||
# Abschnitt 1b: Verfahrensgebiet-Layer auswählen
|
||||
row_layer_label = QHBoxLayout()
|
||||
lbl_layer = QLabel("Oder: Verfahrensgebiet-Layer auswählen")
|
||||
@@ -171,6 +184,7 @@ class WorkingTab(QWidget):
|
||||
self.btn_verf_aus_liste.clicked.connect(self.handle_verf_aus_liste)
|
||||
self.btn_verf_shape.clicked.connect(self.handle_verf_shape)
|
||||
# self.btn_flurst_shape.clicked.connect(self.handle_flurst_shape)
|
||||
self.btn_beteiligung_pruefen.clicked.connect(self.handle_beteiligung_pruefen)
|
||||
|
||||
# Beim Init: aktuelle Verfahrensgebiet-Layer-ID laden und im Dropdown anzeigen
|
||||
self._restore_verf_layer_selection()
|
||||
@@ -278,6 +292,40 @@ class WorkingTab(QWidget):
|
||||
finally:
|
||||
self._set_busy(self.btn_verf_shape, False, "Aus Shape laden")
|
||||
|
||||
def handle_beteiligung_pruefen(self) -> None:
|
||||
"""Gleicht eine BI-Server-CSV-Beteiligungsliste mit dem Verfahrensgebiet ab.
|
||||
|
||||
Delegiert an :func:`~sn_verfahrensgebiet.functions.beteiligung_pruefung.beteiligung_pruefen`.
|
||||
Je nach Projektzustand (try1/try2/try3) werden ein oder mehrere
|
||||
Ergebnis-Layer ins Projekt eingefügt, gestylt und eine Statistik als
|
||||
Messagebox angezeigt.
|
||||
"""
|
||||
self._set_busy(self.btn_beteiligung_pruefen, True, "Beteiligung prüfen")
|
||||
try:
|
||||
try:
|
||||
ergebnis = beteiligung_pruefen(self)
|
||||
except BeteiligungPruefungFehler as exc:
|
||||
QMessageBox.critical(self, "Beteiligung prüfen", str(exc))
|
||||
return
|
||||
|
||||
if ergebnis is None:
|
||||
return # Nutzerabbruch des Dateidialogs
|
||||
|
||||
project = QgsProject.instance()
|
||||
for layer, style_name in ergebnis.layers:
|
||||
if layer is None or not layer.isValid():
|
||||
continue
|
||||
if not project.mapLayer(layer.id()):
|
||||
project.addMapLayer(layer)
|
||||
if style_name:
|
||||
apply_style(layer, style_name)
|
||||
|
||||
iface.mapCanvas().refresh()
|
||||
QMessageBox.information(self, "Beteiligung prüfen", ergebnis.statistik_text)
|
||||
|
||||
finally:
|
||||
self._set_busy(self.btn_beteiligung_pruefen, False, "Beteiligung prüfen")
|
||||
|
||||
def _set_busy(self, button: QPushButton, busy: bool, original_text: str = "Aus ALKIS laden") -> None:
|
||||
"""Setzt den Busy-State eines Buttons.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user