diff --git a/docs/ablauf_verfahrensgebiet_laden.md b/docs/ablauf_verfahrensgebiet_laden.md new file mode 100644 index 0000000..0eb0b3b --- /dev/null +++ b/docs/ablauf_verfahrensgebiet_laden.md @@ -0,0 +1,27 @@ +# Ablauf: Verfahrensgebiet laden – frühzeitige Stopps + +Zwei Stellen, an denen der jeweilige Ablauf vorzeitig endet: + +- **Aus ALKIS laden**, Option "Nur Objekte laden": bricht direkt nach dem + Laden des BROR-Objekts ab, kein weiterer Workflow. +- **Aus Shape laden**, "Nein" beim (aktuell temporären) Weiter?-Dialog nach + dem ZIP-Import: bricht ab, bevor das BROR-Objekt überhaupt geladen wird. + +Quellen: `functions/verfahrensgebiet_alkis_komplett.py`, +`functions/verfahrensgebiet_shape_komplett.py`. + +```mermaid +flowchart TD + Start(["Verfahrensgebiet"]) + + subgraph ALKIS[" "] + A1["Aus ALKIS laden"] --> AE[("Layer: BauRaumOderBodenordnungsrecht (ALKIS)")] + end + + subgraph SHAPE[" "] + S1["Aus Shape laden"] --> SE[("Layer: Verfahrensgebiet (aus ZIP)")] + end + + Start --> A1 + Start --> S1 +``` diff --git a/functions/verfahrensgebiet_shape_komplett.py b/functions/verfahrensgebiet_shape_komplett.py index db1bb1a..9a320f0 100644 --- a/functions/verfahrensgebiet_shape_komplett.py +++ b/functions/verfahrensgebiet_shape_komplett.py @@ -53,6 +53,7 @@ from sn_basis.functions.dialog_wrapper import ( create_progress_dialog, show_info_dialog, ask_detailpruefung_oder_abbrechen, + ask_yes_no, ) from sn_verfahrensgebiet.functions.verfahrensgebiet_alkis import LoadStatus, verfahrensgebiet_alkis @@ -443,6 +444,22 @@ def verfahrensgebiet_shape_komplett( if not shape_vg_layer: return None, None, None, LoadStatus.NONE + # TEMPORÄRER STOPP (wieder entfernen): Pause nach "Verfahrensgebiet + # aus ZIP laden" zur Zwischenkontrolle – Layer dafür schon jetzt + # sichtbar ins Projekt einfügen (normalerweise erst nach Schritt 2). + project.addMapLayer(shape_vg_layer) + shape_was_added_by_us = True + if not ask_yes_no( + "Verfahrensgebiet aus ZIP laden", + "Verfahrensgebiet aus ZIP wurde geladen. Weiter?", + default=True, + parent=tab_widget, + ): + # abgeschlossen=True, damit der finally-Block den zur Kontrolle + # eingefügten Layer NICHT wieder entfernt (kein Fehlerfall). + abgeschlossen = True + return None, None, None, LoadStatus.NONE + vg_status = LoadStatus.FIRST progress.set_value(1) @@ -468,9 +485,11 @@ def verfahrensgebiet_shape_komplett( progress.set_value(2) - # Shape-VG erst jetzt ins Projekt einfügen (nach BROR-Ladung) - project.addMapLayer(shape_vg_layer) - shape_was_added_by_us = True + # Shape-VG erst jetzt ins Projekt einfügen (nach BROR-Ladung) – außer + # der TEMPORÄRE STOPP oben hat ihn schon eingefügt. + if not project.mapLayer(shape_vg_layer.id()): + project.addMapLayer(shape_vg_layer) + shape_was_added_by_us = True # ------------------------------------------------------------------ # Schritt 3: Gemarkungsschlüssel per Geometrie-Spatial-Join ermitteln