diff --git a/Probleme.txt b/Probleme.txt index 3a15a39..7e887c4 100644 --- a/Probleme.txt +++ b/Probleme.txt @@ -1,2 +1,3 @@ Beim hinzufügen von Features fehlte das layer.updateFields() -Beim hinzufügen von Features fehlte wurde versucht eine viel zu große Pegelonline 'number' in einen Int zu stecken. War schwierig zu entdecken => provider.errors() \ No newline at end of file +Beim hinzufügen von Features fehlte wurde versucht eine viel zu große Pegelonline 'number' in einen Int zu stecken. War schwierig zu entdecken => provider.errors() +Bild wird beim "Neu laden" doppelt heruntergeladen \ No newline at end of file diff --git a/pegelonline_dockwidget_base.ui b/pegelonline_dockwidget_base.ui index aaea83f..3f3bb11 100644 --- a/pegelonline_dockwidget_base.ui +++ b/pegelonline_dockwidget_base.ui @@ -6,7 +6,7 @@ 0 0 - 288 + 301 660 @@ -43,16 +43,16 @@ - + - Name + Nummer - + - Nummer + Name @@ -64,9 +64,9 @@ - + - Zeitstempel + Gewässername @@ -74,6 +74,13 @@ + + + + Zeitstempel + + + @@ -147,13 +154,6 @@ - - - - Stationsname - - - @@ -162,9 +162,16 @@ - + - Gewässername + Name + + + + + + + Behörde @@ -173,9 +180,9 @@ - + - Behörde + Gewässername diff --git a/po_runner.py b/po_runner.py index cd89007..9fb969e 100644 --- a/po_runner.py +++ b/po_runner.py @@ -9,8 +9,6 @@ from .pomodules.po_stations import PoStations from .pomodules.po_stations_qgs import PoStationsQgs from .pomodules.po_waterlevels_qgs import PoWaterlevelsQgs -INFIX = ", ' - ', " - # noinspection PyMethodMayBeStatic class PoRunner(object): @@ -160,16 +158,16 @@ class PoRunner(object): return fields = [] - if self.ui.cbStationsName.isChecked(): - fields.append("shortname") if self.ui.cbStationsNumber.isChecked(): - fields.append("number") + fields.append('\'#\', "number"') + if self.ui.cbStationsName.isChecked(): + fields.append('"shortname"') if self.ui.cbStationsAgency.isChecked(): - fields.append("agency") - if self.ui.cbStationsKm.isChecked(): - fields.append("km") + fields.append('"agency"') if self.ui.cbStationsWater.isChecked(): - fields.append("water") + fields.append('"water"') + if self.ui.cbStationsKm.isChecked(): + fields.append('"km", \' km\'') # 2 Teile anhängen: km, " km" self._layer_update_labels(self.stations, fields) @@ -186,6 +184,7 @@ class PoRunner(object): self.ui.cbWaterlevelsValue.toggled.connect(self._cbWaterlevelsValue_toggled) self.ui.cbWaterlevelsMean.toggled.connect(self._cbWaterlevelsMean_toggled) self.ui.cbWaterlevelsAbsolute.toggled.connect(self._cbWaterlevelsAbsolute_toggled) + self.ui.cbWaterlevelsWater.toggled.connect(self._cbWaterlevelsWater_toggled) def _cbWaterlevelsVisible_toggled(self): visible = self.ui.cbWaterlevelsVisible.isChecked() @@ -236,6 +235,11 @@ class PoRunner(object): print("_cbWaterlevelsAbsolute_toggled: %s" % (checked,)) self._waterlevels_update_labels() + def _cbWaterlevelsWater_toggled(self): + checked = self.ui.cbWaterlevelsWater.isChecked() + print("_cbWaterlevelsWater_toggled: %s" % (checked,)) + self._waterlevels_update_labels() + def waterlevels_disconnect(self): print("waterlevels_disconnect") self.waterlevels = None @@ -248,20 +252,22 @@ class PoRunner(object): return fields = [] - if self.ui.cbWaterlevelsName.isChecked(): - fields.append("shortname") if self.ui.cbWaterlevelsNumber.isChecked(): - fields.append("number") + fields.append('\'#\', "number"') + if self.ui.cbWaterlevelsName.isChecked(): + fields.append('"shortname"') if self.ui.cbWaterlevelsAgency.isChecked(): - fields.append("agency") + fields.append('"agency"') + if self.ui.cbWaterlevelsWater.isChecked(): + fields.append('"water"') if self.ui.cbWaterlevelsTimestamp.isChecked(): - fields.append("timestamp") + fields.append('"timestamp"') if self.ui.cbWaterlevelsValue.isChecked(): - fields.append("value") + fields.append('"value", \' \', "unit"') # 3 Teile anhängen: value, leerzeichen, unit if self.ui.cbWaterlevelsMean.isChecked(): - fields.append("stateMnwMhw") + fields.append('\'MnwMhw=\', "stateMnwMhw"') if self.ui.cbWaterlevelsAbsolute.isChecked(): - fields.append("stateNswHsw") + fields.append('\'NswHsw=\', "stateNswHsw"') self._layer_update_labels(self.waterlevels, fields) # layers ------------------------------------------------------------------ @@ -321,11 +327,8 @@ class PoRunner(object): print("_layer_update_labels") labeling = QgsVectorLayerSimpleLabeling(QgsPalLayerSettings()) - # Anführungszeichen um Feldnamen anbringen - fields_quoted = ['"%s"' % (field,) for field in fields] - # Feldnamen zu einem Minus-getrennten String zusammenbauen - expression = ", ' - ', ".join(fields_quoted) + expression = ", ' / ', ".join(fields) settings = labeling.settings() settings.fieldName = "concat(" + expression + ")" diff --git a/pomodules/po_stations.py b/pomodules/po_stations.py index f41b48d..6334e83 100644 --- a/pomodules/po_stations.py +++ b/pomodules/po_stations.py @@ -15,8 +15,6 @@ class PoStations(UrlReader): print("getStations: Keine Stationen erhalten") return None - print("getStations: %d Stationen erhalten" % (len(stations_json),)) - stations = [] for station_json in stations_json: stations.append( diff --git a/pomodules/po_waterlevels.py b/pomodules/po_waterlevels.py index e8bea98..68da9b7 100644 --- a/pomodules/po_waterlevels.py +++ b/pomodules/po_waterlevels.py @@ -28,10 +28,12 @@ class PoWaterlevels(UrlReader): 'shortname': station_json['shortname'], 'number': station_json['number'], 'agency': station_json['agency'], + 'unit': station_json['timeseries'][0]['unit'], 'timestamp': station_json['timeseries'][0]['currentMeasurement']['timestamp'], 'value': station_json['timeseries'][0]['currentMeasurement']['value'], 'stateMnwMhw': station_json['timeseries'][0]['currentMeasurement']['stateMnwMhw'], 'stateNswHsw': station_json['timeseries'][0]['currentMeasurement']['stateNswHsw'], + 'water': station_json['water']['longname'], }, } ) diff --git a/pomodules/po_waterlevels_qgs.py b/pomodules/po_waterlevels_qgs.py index 38448e6..53da53a 100644 --- a/pomodules/po_waterlevels_qgs.py +++ b/pomodules/po_waterlevels_qgs.py @@ -21,8 +21,10 @@ class PoWaterlevelsQgs(PoWaterlevels): self.fields.append(QgsField('agency', QVariant.String)) self.fields.append(QgsField('timestamp', QVariant.DateTime)) self.fields.append(QgsField('value', QVariant.Double)) + self.fields.append(QgsField('unit', QVariant.String)) self.fields.append(QgsField('stateMnwMhw', QVariant.String)) self.fields.append(QgsField('stateNswHsw', QVariant.String)) + self.fields.append(QgsField('water', QVariant.String)) features = [] waterlevels = self.getWaterlevels() @@ -55,7 +57,9 @@ class PoWaterlevelsQgs(PoWaterlevels): feature.setAttribute('agency', station['attributes']['agency']) feature.setAttribute('timestamp', station['attributes']['timestamp']) feature.setAttribute('value', station['attributes']['value']) + feature.setAttribute('unit', station['attributes']['unit']) feature.setAttribute('stateMnwMhw', station['attributes']['stateMnwMhw']) feature.setAttribute('stateNswHsw', station['attributes']['stateNswHsw']) + feature.setAttribute('water', station['attributes']['water']) return feature