Dateien nach "wissensdateien" hochladen
This commit is contained in:
@@ -16,6 +16,7 @@ Durch Anpassung des Präfixes (sn_) und der ALKIS-WFS-AAA-Dienstadresse kann das
|
||||
- `tests/` — 12 unittest-Dateien, lauffähig ohne QGIS.
|
||||
- **Zentrales Pattern 1 — Mock-fähige Wrapper:** Jede `functions/*_wrapper.py` versucht `qgis.core`/`qgis.PyQt` zu importieren und fällt bei Fehler auf eine im selben File definierte Mock-Implementierung zurück (`QGIS_AVAILABLE`-Flag). Dadurch ist fast die gesamte Fachlogik ohne laufendes QGIS testbar. **Neue QGIS/Qt-API-Nutzung muss immer hinter diesen Wrappern erfolgen, inkl. Mock-Zweig.**
|
||||
- **Zentrales Pattern 2 — Prüfer/Pruefmanager-Pipeline:** `pruef_ergebnis` (Ergebnis-Objekt: `ok`, `meldung`, `aktion`, `kontext`) wird von reinen, UI-freien `*pruefer`-Klassen (`Dateipruefer`, `Linkpruefer`, `Layerpruefer`, `Stilpruefer`, `Datenbankpruefer` [Stub]) erzeugt. `Pruefmanager` ist die einzige Stelle, die daraus ggf. einen Dialog macht (`ui_modus="qgis"` vs. Testmodus). `DataGrabber` (Quelle klassifizieren) → Prüfer → `Datenabruf` (Netzwerk-Fetch inkl. Raumfilter) → `Datenschreiber` (GeoPackage schreiben, Stile in `layer_styles`-Tabelle). Neue Datenimport-Features sollten diesem "klassifizieren → validieren (rein) → zentrale Entscheidung → ausführen"-Muster folgen.
|
||||
- **Zentrales Pattern 3 — Progress-Messagebox für mehrstufige Funktionen:** Jede Funktion, die aus mehreren sequentiellen Verarbeitungsschritten besteht (z. B. iterative Datenabrufe über mehrere Layer/Quellen, Batch-Verarbeitung, mehrstufige Prüf-Workflows), muss grundsätzlich eine Progress-Messagebox (Fortschrittsdialog) verwenden und dem Nutzer den Bearbeitungsfortschritt anzeigen. Bereitstellung erfolgt zentral über die Wrapper-Schicht (`message_wrapper`/`qgisui_wrapper`, inkl. Mock-Fallback nach Pattern 1), damit alle drei Plugins denselben Progress-Dialog nutzen. Einstufige, kurz laufende Funktionen sind ausgenommen.
|
||||
|
||||
## 3. Domänen-Glossar
|
||||
|
||||
@@ -26,6 +27,7 @@ Durch Anpassung des Präfixes (sn_) und der ALKIS-WFS-AAA-Dienstadresse kann das
|
||||
- **Kartenname, Massstab, Druckbereich, Druckpuffer, Zielgroesse, Endlosrolle** — Print-Tab-Konzepte (Kartentyp §38/§41/Baufreigabe, Maßstab, Druckbereich-Modus, Randpuffer, Zielgröße, Endlospapier).
|
||||
- **Raumfilter** — `"ohne" | "Verfahrensgebiet" | "Pufferlayer"` — Filtermodus beim Datenabruf.
|
||||
- **ALKIS, FlurbG, §38/§41** — amtliches Liegenschaftskatasterinformationssystem; Flurbereinigungsgesetz; die beiden zentralen gesetzlichen Kartentypen.
|
||||
- **Progress-Messagebox** — verpflichtender Fortschrittsdialog für mehrstufige Funktionen (siehe Pattern 3, Abschnitt 2, und Konvention 11, Abschnitt 7).
|
||||
|
||||
## 4. Datenquellen / Formate
|
||||
|
||||
@@ -62,3 +64,4 @@ Durch Anpassung des Präfixes (sn_) und der ALKIS-WFS-AAA-Dienstadresse kann das
|
||||
8. Signal-Lifecycle-Disziplin ist geschichtsträchtig wichtig: ein dokumentierter QGIS-3.40-Exit-Crash entstand durch offene `QgsProject`-Signalverbindungen — jede neue persistente Signal-Verbindung braucht ein passendes Teardown in `unload()`/`cleanup()`.
|
||||
9. `Datenbankpruefer.pruefe()` ist noch ein Stub ("Implementierung folgt").
|
||||
10. Debug-`print()`-Statements sind bewusst in mehreren Produktionsmodulen belassen (nicht über Logging geführt).
|
||||
11. **Vorgabe — Progress-Messagebox bei mehrstufigen Funktionen:** Jede Funktion mit mehreren sequentiellen Verarbeitungsschritten (Schleifen über Layer/Gemarkungen/Batches, mehrstufige Prüf- oder Importabläufe) zeigt grundsätzlich eine Progress-Messagebox mit Fortschrittsanzeige an, statt die UI ohne Rückmeldung blockieren zu lassen. Gilt plugin-übergreifend für sn_basis, sn_verfahrensgebiet und sn_plan41; die Progress-Messagebox wird zentral in sn_basis (Wrapper-Schicht, inkl. Mock-Fallback nach Pattern 1) bereitgestellt, damit alle Plugins denselben Dialog nutzen. Einstufige, kurz laufende Funktionen sind von der Vorgabe ausgenommen.
|
||||
|
||||
@@ -43,6 +43,7 @@ Alternativ: **Shapefile-Import via ZIP** für die Verfahrensgebiet-Quelle, weite
|
||||
- **Starke Abhängigkeit von sn_basis:** durchgängige Importe (`functions.qt_wrapper`, `.qgisui_wrapper`, `.qgiscore_wrapper`, `.dialog_wrapper`, `.message_wrapper`, `.variable_wrapper`, `.verfahrensgebiet_manager`, `.ly_style_wrapper`, `ui.base_dockwidget`, `ui.tabs.settings_tab`/`print_tab`, `ui.dockmanager.DockManager`, `modules.DataGrabber`/`Pruefmanager`/`pruef_ergebnis`/`layerpruefer`). Sowohl statischer Python-Import als auch Laufzeit-Lookup via `qgis.utils.plugins.get("sn_basis")` für UI-Wiring.
|
||||
- **Keine Kopplung zu sn_plan41** — kein einziger Verweis im Code gefunden. Integration läuft ausschließlich indirekt über sn_basis (gemeinsame Projektvariable `sn_verfahrensgebiet_layer`, Layername `"Verfahrensgebiet"`).
|
||||
- Konkrete Dialoge in `sn_basis.functions.dialog_wrapper` (`ask_bror_kombination`, `ask_detailpruefung_oder_vg_laden`, `ask_detailpruefung_oder_abbrechen`) existieren **speziell** für die BROR/ALKIS-Workflows dieses Plugins.
|
||||
- Die Progress-Messagebox für mehrstufige Funktionen (siehe Konvention 8, Abschnitt 7) wird ebenfalls aus sn_basis bezogen, nicht lokal implementiert.
|
||||
|
||||
## 6. Testing & Dev-Tooling
|
||||
|
||||
@@ -60,3 +61,4 @@ Alternativ: **Shapefile-Import via ZIP** für die Verfahrensgebiet-Quelle, weite
|
||||
5. Die Knickpunktprüfung wurde laut Changelog mehrfach überarbeitet (zuletzt von Buffer- auf Verbindungslinien-basiert) — vor Änderungen an `knickpunkt_pruefung.py` Tests/Git-Historie prüfen, aktivster und heikelster Teil der Codebasis.
|
||||
6. `styles/Gemarkungen_beschriftet.qml` ist ~852 KB groß (Labeling-Regeln für ~2000 Gemarkungen) — vorsichtig direkt bearbeiten.
|
||||
7. `[DIAG]`-Präfixe in `gemarkung_alkis.py` sind absichtliche Diagnose-Logs für WFS-Troubleshooting, kein Debug-Müll.
|
||||
8. **Vorgabe — Progress-Messagebox bei mehrstufigen Funktionen (siehe sn_basis):** Alle mehrstufigen Funktionen dieses Plugins zeigen grundsätzlich eine Progress-Messagebox mit Fortschrittsanzeige an, statt ohne Rückmeldung zu laufen. Betrifft insbesondere die bekannt langlaufenden, batchweisen WFS-Abrufe in `grenzpunkt_alkis.py` (Batching/BBox-Splitting pro Gemarkung) sowie mehrstufige Prüf-Workflows wie Knickpunkt- und Umringsprüfung. Die Progress-Messagebox selbst stammt aus sn_basis (Wrapper-Schicht) und wird nicht plugin-lokal neu gebaut.
|
||||
|
||||
Reference in New Issue
Block a user