diff --git a/metadata.txt b/metadata.txt index ac3cd01..0e5688c 100644 --- a/metadata.txt +++ b/metadata.txt @@ -20,6 +20,7 @@ experimental=False server=False hasProcessingProvider=yes changelog=unreleased: + - neue optionale Attribute "technHerstellDatum" und "erstellungsMassstab" für BP, FP, LP v6.0 - Raster-Hilfswerkzeuge: Komprimiere erzeugte Rasterpläne mit Deflate - Raster-Hilfswerkzeuge: Behebe Fehler für bestimmte Polygone v2.10.0: diff --git a/xplan_umring_algorithm_bp_6_0.py b/xplan_umring_algorithm_bp_6_0.py index c79e702..461a261 100644 --- a/xplan_umring_algorithm_bp_6_0.py +++ b/xplan_umring_algorithm_bp_6_0.py @@ -36,6 +36,7 @@ QgsProcessingParameterDateTime, QgsProcessingParameterEnum, QgsProcessingParameterFile, + QgsProcessingParameterNumber, QgsProcessingParameterString, QgsProcessingParameterVectorLayer, QgsProcessingUtils, @@ -96,8 +97,8 @@ def initAlgorithm(self, config=None): self.ags = settings.value("xplan-umring/ags", "") self.ortsteilname = "" if self.ags.startswith(("05114", "05154", "05158", "05166", "05170")): - self.ortsteilname = self.kommune - + self.ortsteilname = self.kommune + self.addParameter( QgsProcessingParameterVectorLayer( "Umring", @@ -234,6 +235,24 @@ def initAlgorithm(self, config=None): defaultValue="EPSG:25832", ) ) + self.addParameter( + QgsProcessingParameterNumber( + "Erstellungsmaßstab", + "Erstellungsmaßstab", + optional=True, + type=QgsProcessingParameterNumber.Integer, + minValue=1, + ) + ) + self.addParameter( + QgsProcessingParameterDateTime( + "DatumHerstellung", + "Datum technische Herstellung", + optional=True, + type=QgsProcessingParameterDateTime.Date, + defaultValue=None, + ) + ) self.addParameter( QgsProcessingParameterFile( name="outputZip", @@ -298,6 +317,14 @@ def showWarning(message): kbs = self.parameterAsString(parameters, "Koordinatenbezugssystem", context) + erstellungsmaßstab = self.parameterAsString( + parameters, "Erstellungsmaßstab", context + ) + + herstellungsdatum = self.parameterAsString( + parameters, "DatumHerstellung", context + ).strip() + my_output_folder = self.parameterAsString(parameters, "outputZip", context) outputs = {} @@ -407,6 +434,8 @@ def showWarning(message): Name Bebauungsplan Nummer Bebaungsplan + {herstellungsdatum} + {erstellungsmaßstab} {gml_geometry_string} @@ -516,9 +545,7 @@ def showWarning(message): gemeindename_element.text = gemeindename ortsteilname_element = next( - bp_plan_element.iter( - "{http://www.xplanung.de/xplangml/6/0}ortsteilName" - ) + bp_plan_element.iter("{http://www.xplanung.de/xplangml/6/0}ortsteilName") ) if ortsteilname == "": @@ -527,7 +554,7 @@ def showWarning(message): ): xp_gemeinde_element.remove(ortsteilname_element) else: - ortsteilname_element.text = ortsteilname + ortsteilname_element.text = ortsteilname for ags_element in root.iter("{http://www.xplanung.de/xplangml/6/0}ags"): ags_element.text = ags @@ -600,6 +627,18 @@ def showWarning(message): ): rechtsstand_element.text = rechtsstand_key + for erstellungsmaßstab_element in root.iter( + "{http://www.xplanung.de/xplangml/6/0}erstellungsMassstab" + ): + if erstellungsmaßstab == "": + bp_plan_element.remove(erstellungsmaßstab_element) + + for herstellungsdatum_element in root.iter( + "{http://www.xplanung.de/xplangml/6/0}technHerstellDatum" + ): + if herstellungsdatum == "": + bp_plan_element.remove(herstellungsdatum_element) + etree.indent(tree, space="\t", level=0) translation_table = str.maketrans( diff --git a/xplan_umring_algorithm_fp_6_0.py b/xplan_umring_algorithm_fp_6_0.py index e0cfa00..01ea44e 100644 --- a/xplan_umring_algorithm_fp_6_0.py +++ b/xplan_umring_algorithm_fp_6_0.py @@ -36,6 +36,7 @@ QgsProcessingParameterDateTime, QgsProcessingParameterEnum, QgsProcessingParameterFile, + QgsProcessingParameterNumber, QgsProcessingParameterString, QgsProcessingParameterVectorLayer, QgsProcessingUtils, @@ -94,7 +95,7 @@ def initAlgorithm(self, config=None): self.ags = settings.value("xplan-umring/ags", "") self.ortsteilname = "" if self.ags.startswith(("05114", "05154", "05158", "05166", "05170")): - self.ortsteilname = self.kommune + self.ortsteilname = self.kommune self.addParameter( QgsProcessingParameterVectorLayer( @@ -236,6 +237,24 @@ def initAlgorithm(self, config=None): defaultValue="EPSG:25832", ) ) + self.addParameter( + QgsProcessingParameterNumber( + "Erstellungsmaßstab", + "Erstellungsmaßstab", + optional=True, + type=QgsProcessingParameterNumber.Integer, + minValue=1, + ) + ) + self.addParameter( + QgsProcessingParameterDateTime( + "DatumHerstellung", + "Datum technische Herstellung", + optional=True, + type=QgsProcessingParameterDateTime.Date, + defaultValue=None, + ) + ) self.addParameter( QgsProcessingParameterFile( name="outputZip", @@ -292,6 +311,14 @@ def showWarning(message): kbs = self.parameterAsString(parameters, "Koordinatenbezugssystem", context) + erstellungsmaßstab = self.parameterAsString( + parameters, "Erstellungsmaßstab", context + ) + + herstellungsdatum = self.parameterAsString( + parameters, "DatumHerstellung", context + ).strip() + my_output_folder = self.parameterAsString(parameters, "outputZip", context) outputs = {} @@ -404,6 +431,8 @@ def showWarning(message): {beschreibung} 2022-09-09 + {herstellungsdatum} + {erstellungsmaßstab} {gml_geometry_string} @@ -540,6 +569,18 @@ def showWarning(message): FP_Plan_element.remove(wirksamkeitsDatum_element) FP_Plan_element.remove(entwurfsbeschlussDatum_element) + for erstellungsmaßstab_element in root.iter( + "{http://www.xplanung.de/xplangml/6/0}erstellungsMassstab" + ): + if erstellungsmaßstab == "": + FP_Plan_element.remove(erstellungsmaßstab_element) + + for herstellungsdatum_element in root.iter( + "{http://www.xplanung.de/xplangml/6/0}technHerstellDatum" + ): + if herstellungsdatum == "": + FP_Plan_element.remove(herstellungsdatum_element) + etree.indent(tree, space="\t", level=0) translation_table = str.maketrans( diff --git a/xplan_umring_algorithm_lp_6_0.py b/xplan_umring_algorithm_lp_6_0.py index 2f40819..3648aaf 100644 --- a/xplan_umring_algorithm_lp_6_0.py +++ b/xplan_umring_algorithm_lp_6_0.py @@ -36,6 +36,7 @@ QgsProcessingParameterDateTime, QgsProcessingParameterEnum, QgsProcessingParameterFile, + QgsProcessingParameterNumber, QgsProcessingParameterString, QgsProcessingParameterVectorLayer, QgsProcessingUtils, @@ -94,7 +95,7 @@ def initAlgorithm(self, config=None): self.ags = settings.value("xplan-umring/ags", "") self.ortsteilname = "" if self.ags.startswith(("05114", "05154", "05158", "05166", "05170")): - self.ortsteilname = self.kommune + self.ortsteilname = self.kommune self.addParameter( QgsProcessingParameterVectorLayer( @@ -268,6 +269,24 @@ def initAlgorithm(self, config=None): defaultValue="EPSG:25832", ) ) + self.addParameter( + QgsProcessingParameterNumber( + "Erstellungsmaßstab", + "Erstellungsmaßstab", + optional=True, + type=QgsProcessingParameterNumber.Integer, + minValue=1, + ) + ) + self.addParameter( + QgsProcessingParameterDateTime( + "DatumHerstellung", + "Datum technische Herstellung", + optional=True, + type=QgsProcessingParameterDateTime.Date, + defaultValue=None, + ) + ) self.addParameter( QgsProcessingParameterFile( name="outputZip", @@ -335,6 +354,14 @@ def showWarning(message): kbs = self.parameterAsString(parameters, "Koordinatenbezugssystem", context) + erstellungsmaßstab = self.parameterAsString( + parameters, "Erstellungsmaßstab", context + ) + + herstellungsdatum = self.parameterAsString( + parameters, "DatumHerstellung", context + ).strip() + my_output_folder = self.parameterAsString(parameters, "outputZip", context) outputs = {} @@ -445,6 +472,8 @@ def showWarning(message): Name Bebauungsplan Nummer Bebaungsplan + {herstellungsdatum} + {erstellungsmaßstab} {gml_geometry_string} @@ -605,6 +634,18 @@ def showWarning(message): lp_plan_element.remove(untergangsDatum_element) lp_plan_element.remove(inkrafttretenDatum_element) + for erstellungsmaßstab_element in root.iter( + "{http://www.xplanung.de/xplangml/6/0}erstellungsMassstab" + ): + if erstellungsmaßstab == "": + lp_plan_element.remove(erstellungsmaßstab_element) + + for herstellungsdatum_element in root.iter( + "{http://www.xplanung.de/xplangml/6/0}technHerstellDatum" + ): + if herstellungsdatum == "": + lp_plan_element.remove(herstellungsdatum_element) + etree.indent(tree, space="\t", level=0) translation_table = str.maketrans(