diff --git a/__init__.py b/__init__.py index 7510e49..109fe3a 100644 --- a/__init__.py +++ b/__init__.py @@ -1,3 +1,17 @@ +"""sn_verfahrensgebiet – QGIS-Plugin für Verfahrensgebiets-Management. +Verwaltet die Abgrenzung und Verwaltung von Verfahrensgebieten. +""" + + def classFactory(iface): + """Factory-Funktion für QGIS. + Wird von QGIS aufgerufen, um die Plugin-Instanz zu erstellen. + + Args: + iface: QGIS-Schnittstellenobjekt + + Returns: + Verfahrensgebiet: Instanziiertes Plugin + """ from .main import Verfahrensgebiet return Verfahrensgebiet(iface) diff --git a/functions/verfahrensgebiet_alkis.py b/functions/verfahrensgebiet_alkis.py index ae7df77..a7f4acf 100644 --- a/functions/verfahrensgebiet_alkis.py +++ b/functions/verfahrensgebiet_alkis.py @@ -1,4 +1,7 @@ -#sn_verfahrensgebiet/functions/verfahrensgebiet_alkis +"""sn_verfahrensgebiet/functions/verfahrensgebiet_alkis.py – ALKIS-Integration. +Lädt Verfahrensgebiete aus dem ALKIS-WFS-Dienst. +""" + from enum import Enum from sn_basis.functions import ( QgsVectorLayer, QgsProject, QgsFeature, QgsField, QgsGeometry @@ -11,6 +14,14 @@ alkis_NAS_url = "https://geodienste.sachsen.de/aaa/public_alkis/nas/wfs" typename = "adv:AX_BauRaumOderBodenordnungsrecht" class LoadStatus(Enum): + """Status eines Layer-Ladevorgangs. + + Attributes: + NONE: Nichts geladen + FIRST: Erstmalig geladen + RELOAD: Neu geladen + KEEP: Vorhandener Layer behalten + """ NONE = "none" # nichts geladen FIRST = "first" # erstmalig geladen RELOAD = "reload" # neu geladen @@ -18,6 +29,14 @@ class LoadStatus(Enum): def _check_existing_layer(tab_widget): + """Prüft, ob ein Verfahrensgebiet-Layer bereits existiert. + + Args: + tab_widget: Parent-Widget für Dialoge + + Returns: + Tuple[Optional[QgsVectorLayer], LoadStatus]: Layer und Status + """ project = QgsProject.instance() existing_layers = project.mapLayersByName("Verfahrensgebiet") if not existing_layers: @@ -40,6 +59,14 @@ def _check_existing_layer(tab_widget): def verfahrensgebiet_alkis(tab_widget): + """Lädt Verfahrensgebiet aus ALKIS-WFS basierend auf Verfahrensnummer. + + Args: + tab_widget: Parent-Widget für Dialoge und Meldungen + + Returns: + Tuple[Optional[QgsVectorLayer], LoadStatus]: Geladener Layer und Status + """ verfahrensnummer = get_variable("verfahrensnummer") if not verfahrensnummer: QMessageBox.critical(tab_widget, "Fehler", diff --git a/main.py b/main.py index a573ceb..1b55ccd 100644 --- a/main.py +++ b/main.py @@ -1,3 +1,7 @@ +"""sn_verfahrensgebiet/main.py – Einstiegspunkt des sn_verfahrensgebiet Plugins. +Orchestriert die Verwaltung von Verfahrensgebiets-Layern und deren Eigenschaften. +""" + from qgis.utils import plugins from sn_basis.ui.dockmanager import DockManager from .ui.dockwidget import DockWidget @@ -5,6 +9,9 @@ from sn_basis.modules.DataGrabber import DataGrabber from sn_basis.modules.Pruefmanager import Pruefmanager class Verfahrensgebiet: + """Einstiegspunkt des sn_verfahrensgebiet-Plugins. + Verwaltet die DockWidget-Initialisierung und das Verfahrensgebiets-Management. + """ def __init__(self, iface): self.iface = iface self.pruefmanager = Pruefmanager(ui_modus="qgis") diff --git a/ui/dockwidget.py b/ui/dockwidget.py index 7e09d45..acd2945 100644 --- a/ui/dockwidget.py +++ b/ui/dockwidget.py @@ -1,3 +1,7 @@ +"""sn_verfahrensgebiet/ui/dockwidget.py – Haupt-DockWidget für sn_verfahrensgebiet. +Verwaltet die Tabs für Verfahrensgebiet-Bearbeitung, Druck und Einstellungen. +""" + from sn_basis.ui.tabs.settings_tab import SettingsTab from sn_basis.ui.tabs.print_tab import PrintTab from sn_verfahrensgebiet.ui.tabs.working_tab import WorkingTab @@ -7,9 +11,25 @@ from sn_basis.functions.message_wrapper import error class DockWidget(BaseDockWidget): + """Haupt-DockWidget für sn_verfahrensgebiet mit Tab-Verwaltung. + + Attributes: + tabs: Liste von Tab-Klassen (WorkingTab, PrintTab, SettingsTab) + pruefmanager: Prüfmanager-Instanz für Validierung + data_grabber: DataGrabber-Instanz für Fachdatenabruf + """ + tabs = [WorkingTab, PrintTab, SettingsTab] def __init__(self, parent=None, subtitle="", pruefmanager=None, data_grabber=None): + """Initialisiert das DockWidget mit Services und Tabs. + + Args: + parent: Übergeordnetes Widget + subtitle: Untertitel des DockWidgets + pruefmanager: Prüfmanager-Instanz + data_grabber: DataGrabber-Instanz + """ super().__init__(parent, subtitle) self.pruefmanager = pruefmanager diff --git a/ui/tabs/working_tab.py b/ui/tabs/working_tab.py index 954f009..b0519db 100644 --- a/ui/tabs/working_tab.py +++ b/ui/tabs/working_tab.py @@ -1,3 +1,7 @@ +"""sn_verfahrensgebiet/ui/tabs/working_tab.py – Bearbeitungs-Tab. +Verwaltet die Verfahrensgebiet-Abgrenzung und ALKIS-Integration. +""" + from sn_basis.functions.qt_wrapper import QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton, QMessageBox from sn_basis.functions.qt_wrapper import Qt from sn_basis.functions import Qgis, QgsProject #QgsMessageLog @@ -11,9 +15,20 @@ from sn_basis.functions.message_wrapper import success, info, warning, error from sn_basis.functions.ly_style_wrapper import apply_style class WorkingTab(QWidget): + """Tab für die Verfahrensgebiet-Bearbeitung und Verwaltung. + + Attributes: + tab_title: Anzeigetitel des Tabs ("Bearbeitung") + """ + tab_title = "Bearbeitung" def __init__(self, parent=None): + """Initialisiert den Working-Tab mit Verfahrensgebiet-Verwaltung. + + Args: + parent: Übergeordnetes Widget + """ super().__init__(parent) layout = QVBoxLayout()