From 976d6da86049801a17d64d703956c7d594d34794 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Fri, 23 Sep 2022 10:37:59 +0200 Subject: [PATCH 01/36] Enhancement: improve dscenario filters & insert --- core/toolbars/epa/dscenario_manager_btn.py | 79 +++++++++++++++------- 1 file changed, 56 insertions(+), 23 deletions(-) diff --git a/core/toolbars/epa/dscenario_manager_btn.py b/core/toolbars/epa/dscenario_manager_btn.py index 057c85e69..8455fcbe2 100644 --- a/core/toolbars/epa/dscenario_manager_btn.py +++ b/core/toolbars/epa/dscenario_manager_btn.py @@ -32,21 +32,25 @@ def __init__(self, icon_path, action_name, text, toolbar, action_group): super().__init__(icon_path, action_name, text, toolbar, action_group) self.feature_type = 'node' self.feature_types = ['node_id', 'arc_id', 'feature_id', 'connec_id', 'nodarc_id', 'rg_id', 'poll_id', 'sector_id', 'lidco_id'] - self.filter_dict = {"inp_dscenario_conduit": {"filter_table": "v_edit_inp_conduit", "feature_type": "arc"}, - "inp_dscenario_raingage": {"filter_table": "v_edit_inp_dscenario_raingage", "feature_type": "rg"}, - "inp_dscenario_junction": {"filter_table": "v_edit_inp_junction", "feature_type": "node"}, - "inp_dscenario_lid_usage": {"filter_table": "v_edit_inp_dscenario_lid_usage", "feature_type": "lidco"}, - "inp_dscenario_controls": {"filter_table": "v_edit_inp_dscenario_controls", "feature_type": "sector"}, - "inp_dscenario_outfall": {"filter_table": "v_edit_inp_outfall", "feature_type": "node"}, - "inp_dscenario_storage": {"filter_table": "v_edit_inp_storage", "feature_type": "node"}, - "inp_dscenario_inflows": {"filter_table": "v_edit_inp_inflows", "feature_type": "node"}, - "inp_dscenario_treatment": {"filter_table": "v_edit_inp_treatment", "feature_type": "node"}, - "inp_dscenario_flwreg_pump": {"filter_table": "v_edit_inp_pump", "feature_type": "arc"}, - "inp_dscenario_flwreg_weir": {"filter_table": "v_edit_inp_weir", "feature_type": "arc"}, - "inp_dscenario_flwreg_orifice": {"filter_table": "v_edit_inp_orifice", "feature_type": "arc"}, - "inp_dscenario_flwreg_outlet": {"filter_table": "v_edit_inp_outlet", "feature_type": "arc"}, - "inp_dscenario_inflows_poll": {"filter_table": "v_edit_inp_pollutant", "feature_type": "poll"}, - "inp_dscenario_demand": {"filter_table": ["v_edit_node", "v_edit_connec"], "feature_type": ["node", "connec"]}} + self.filter_dict = {"inp_dscenario_controls": {"filter_table": "v_edit_sector", "feature_type": "sector"}, + "inp_dscenario_rules": {"filter_table": "v_edit_sector", "feature_type": "sector"}, + "inp_dscenario_demand": {"filter_table": ["v_edit_inp_junction", "v_edit_inp_connec"], "feature_type": ["node", "connec"]}, + "inp_dscenario_raingage": {"filter_table": "v_edit_raingage", "feature_type": "rg"}, + # DISABLED: + # "inp_dscenario_lid_usage": {"filter_table": "v_edit_inp_dscenario_lid_usage", "feature_type": "lidco"}, + # "inp_dscenario_inflows": {"filter_table": "v_edit_inp_inflows", "feature_type": "node"}, + # "inp_dscenario_treatment": {"filter_table": "v_edit_inp_treatment", "feature_type": "node"}, + # "inp_dscenario_flwreg_pump": {"filter_table": "v_edit_inp_pump", "feature_type": "arc"}, + # "inp_dscenario_flwreg_weir": {"filter_table": "v_edit_inp_weir", "feature_type": "arc"}, + # "inp_dscenario_flwreg_orifice": {"filter_table": "v_edit_inp_orifice", "feature_type": "arc"}, + # "inp_dscenario_flwreg_outlet": {"filter_table": "v_edit_inp_outlet", "feature_type": "arc"}, + # "inp_dscenario_inflows_poll": {"filter_table": "v_edit_inp_inflows_poll", "feature_type": "poll"}, + # "inp_dscenario_pump_additional": {"filter_table": "v_edit_inp_pump_additional", "feature_type": "node"}, + } + self.filter_disabled = ["inp_dscenario_lid_usage", "inp_dscenario_inflows", "inp_dscenario_treatment", + "inp_dscenario_flwreg_pump", "inp_dscenario_flwreg_weir", "inp_dscenario_flwreg_orifice", + "inp_dscenario_flwreg_outlet", "inp_dscenario_inflows_poll", "inp_dscenario_pump_additional" + ] self.rubber_band = tools_gw.create_rubberband(global_vars.canvas) @@ -352,16 +356,33 @@ def _manage_current_changed(self): # Get index of selected tab index_tab = self.dlg_dscenario.main_tab.currentIndex() tab_name = self.dlg_dscenario.main_tab.widget(index_tab).objectName() - - if self.filter_dict.get(tab_name): - table_name = self.filter_dict[tab_name]['filter_table'] - feature_type = self.filter_dict[tab_name]['feature_type'] - tools_gw.set_completer_widget(table_name, self.dlg_dscenario.txt_feature_id, feature_type, - add_id=True) + enable = tab_name not in self.filter_disabled + + # Populate typeahead + if enable: + self._manage_feature_type() + table_name = f"v_edit_{tab_name.replace('dscenario_', '')}" + feature_type = self.feature_type + if self.filter_dict.get(tab_name): + table_name = self.filter_dict[tab_name]['filter_table'] + feature_type = self.filter_dict[tab_name]['feature_type'] + tools_gw.set_completer_widget(table_name, self.dlg_dscenario.txt_feature_id, feature_type, add_id=True) # Deactivate btn_snapping functionality self._selection_end() + # Enable/disable filter & buttons + self._enable_widgets(enable) + + + def _enable_widgets(self, enable): + """ """ + + tools_qt.set_widget_enabled(self.dlg_dscenario, 'txt_feature_id', enable) + tools_qt.set_widget_enabled(self.dlg_dscenario, 'btn_insert', enable) + tools_qt.set_widget_enabled(self.dlg_dscenario, 'btn_delete', enable) + tools_qt.set_widget_enabled(self.dlg_dscenario, 'btn_snapping', enable) + def _manage_feature_type(self): """ Manages current tableview feature type (node, arc, nodarc, etc.) """ @@ -505,10 +526,22 @@ def _manage_insert(self): view = tableview.objectName() sql = f"SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{self.table_name[len(f'{self.schema_name}.'):]}';" - rows = tools_db.get_rows(sql, add_empty_row=True) + rows = tools_db.get_rows(sql) if rows[0][0] == 'id': - sql = f"INSERT INTO {view} ({rows[1][0]}, {rows[2][0]})VALUES ({self.selected_dscenario_id}, '{self.dlg_dscenario.txt_feature_id.text()}');" + # FIELDS + sql = f"INSERT INTO {view} ({rows[1][0]}, {rows[2][0]}" + if view in ("inp_dscenario_controls", "inp_dscenario_rules"): + sql += f", {rows[3][0]}" + elif view == "inp_dscenario_demand": + sql += f", feature_type" + # VALUES + sql += f")VALUES ({self.selected_dscenario_id}, '{self.dlg_dscenario.txt_feature_id.text()}'" + if view in ("inp_dscenario_controls", "inp_dscenario_rules"): + sql += f", ''" + elif view == "inp_dscenario_demand": + sql += f", '{self.feature_type.upper()}'" + sql += f");" else: sql = f"INSERT INTO {view} VALUES ({self.selected_dscenario_id}, '{self.dlg_dscenario.txt_feature_id.text()}');" tools_db.execute_sql(sql) From fb90cf6fcf009836a474b69ae4770af590b66e2c Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 26 Sep 2022 11:12:04 +0200 Subject: [PATCH 02/36] Revert "Minor bug fix: don't manage 'isNullValue' key in python" This reverts commit 8f8a337c4a78bb8f2ba7c5a3c7f4583a7b8c1abc. --- core/utils/tools_gw.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/utils/tools_gw.py b/core/utils/tools_gw.py index b197d821b..7b7081eac 100644 --- a/core/utils/tools_gw.py +++ b/core/utils/tools_gw.py @@ -1742,6 +1742,8 @@ def fill_combo(widget, field): comboIds = field.get('comboIds') comboNames = field.get('comboNames') if comboIds and comboNames: + if tools_os.set_boolean(field.get('isNullValue'), True): + combolist.append(['', '']) for i in range(0, len(field['comboIds'])): elem = [comboIds[i], comboNames[i]] combolist.append(elem) From dfa281516695998df82fcd8dc9babcf9d4d39e73 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 26 Sep 2022 17:10:18 +0200 Subject: [PATCH 03/36] Bug fix: go2epa options rpt tab populate widgets --- core/ui/toolbars/epa/go2epa_options.ui | 72 +++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/core/ui/toolbars/epa/go2epa_options.ui b/core/ui/toolbars/epa/go2epa_options.ui index 91427eac2..12f34464f 100644 --- a/core/ui/toolbars/epa/go2epa_options.ui +++ b/core/ui/toolbars/epa/go2epa_options.ui @@ -11,7 +11,7 @@ - Dialog + Go2Epa - options @@ -113,6 +113,76 @@ Rpt + + + + + true + + + + + 0 + 0 + 400 + 335 + + + + + + + + + REACTIONS + + + + + + + + + + + + + + + ENERGY + + + + + + + + + + + + + + + REPORTS + + + + + + + + + + + + + + + + + + From 0e7b8b22c378962e3611485178d51ac9812d5412 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 26 Sep 2022 17:28:52 +0200 Subject: [PATCH 04/36] Enhancement: refresh map canvas on psector relation buttons --- core/shared/info.py | 6 ++---- core/shared/psector.py | 9 +++++++-- core/toolbars/epa/go2epa_selector_button.py | 3 +-- lib/tools_qgis.py | 10 ++++++++-- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/core/shared/info.py b/core/shared/info.py index 9bc00efd5..d733cd36d 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -1135,8 +1135,7 @@ def _action_rotation_canvas_clicked(self, dialog, action, emit_point, point, btn message = "Hemisphere of the node has been updated. Value is" tools_qgis.show_info(message, parameter=str(row[0])) # Force a map refresh - tools_qgis.refresh_map_canvas() # First refresh all the layers - global_vars.iface.mapCanvas().refresh() # Then refresh the map view itself + tools_qgis.force_refresh_map_canvas() # Disable Rotation action_widget = dialog.findChild(QAction, "actionRotation") @@ -1968,8 +1967,7 @@ def _accept(self, dialog, complet_result, _json, p_widget=None, clear_json=False return False # Force a map refresh - tools_qgis.refresh_map_canvas() # First refresh all the layers - global_vars.iface.mapCanvas().refresh() # Then refresh the map view itself + tools_qgis.force_refresh_map_canvas() if close_dlg: if global_vars.session_vars['dialog_docker'] and dialog == global_vars.session_vars['dialog_docker'].widget(): diff --git a/core/shared/psector.py b/core/shared/psector.py index 734c71077..c17571c21 100644 --- a/core/shared/psector.py +++ b/core/shared/psector.py @@ -2048,6 +2048,9 @@ def _set_arc_id(self, point): cell = row.siblingAtColumn(tools_qt.get_col_index_by_col_name(selected_qtbl, 'arc_id')) selected_qtbl.model().setData(cell, self.arc_id) + # Force a map refresh + tools_qgis.force_refresh_map_canvas() + def _replace_arc(self): @@ -2156,6 +2159,8 @@ def _set_plan_replace_feature(self): body = tools_gw.create_body(feature=feature, extras=extras) json_result = tools_gw.execute_procedure('gw_fct_setfeaturereplaceplan', body) + # Force a map refresh + tools_qgis.force_refresh_map_canvas() # Refresh tableview tbl_psector_x_arc, tbl_psector_x_connec, tbl_psector_x_gully self._refresh_tables_relations() @@ -2239,8 +2244,8 @@ def _perform_arc_fusion(self, point): if not result or result['status'] == 'Failed': return - # Refresh map canvas - tools_qgis.refresh_map_canvas() + # Force a map refresh + tools_qgis.force_refresh_map_canvas() # Refresh tables self._refresh_tables_relations() diff --git a/core/toolbars/epa/go2epa_selector_button.py b/core/toolbars/epa/go2epa_selector_button.py index dc2d18cbf..038ea6acd 100644 --- a/core/toolbars/epa/go2epa_selector_button.py +++ b/core/toolbars/epa/go2epa_selector_button.py @@ -275,8 +275,7 @@ def _result_selector_accept(self): tools_gw.set_config_parser('btn_go2epa_selector', 'com_time', f'{com_time}', prefix=False) # Force a map refresh - tools_qgis.refresh_map_canvas() # First refresh all the layers - global_vars.iface.mapCanvas().refresh() # Then refresh the map view itself + tools_qgis.force_refresh_map_canvas() # Show message to user message = "Values has been updated" diff --git a/lib/tools_qgis.py b/lib/tools_qgis.py index f23c83f33..b523a99f3 100644 --- a/lib/tools_qgis.py +++ b/lib/tools_qgis.py @@ -520,6 +520,13 @@ def refresh_map_canvas(_restore_cursor=False): restore_cursor() +def force_refresh_map_canvas(): + """ Refresh all layers & map canvas """ + + refresh_map_canvas() # First refresh all the layers + iface.mapCanvas().refresh() # Then refresh the map view itself + + def set_cursor_wait(): """ Change cursor to 'WaitCursor' """ while get_override_cursor() is not None: @@ -749,8 +756,7 @@ def remove_layer_from_toc(layer_name, group_name, sub_group=None): remove_layer_from_toc(layer_name, group_name) # Force a map refresh - refresh_map_canvas() # First refresh all the layers - iface.mapCanvas().refresh() # Then refresh the map view itself + force_refresh_map_canvas() def clean_layer_group_from_toc(group_name): From f1aad7a6320d697629c6f0885512f79c35ec2690 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 26 Sep 2022 17:36:27 +0200 Subject: [PATCH 05/36] Recover mincut_manager_keep_open variable --- config/giswater.config | 3 +-- config/user_params.config | 1 + core/shared/mincut_tools.py | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/config/giswater.config b/config/giswater.config index 54f0a1480..d92a06106 100644 --- a/config/giswater.config +++ b/config/giswater.config @@ -10,8 +10,7 @@ deprecated_section_session = psector_rapport, cadtools, visit, import_file, sear deprecated_vars_init = system.super_user, system.log_sql_shortcut, system.log_level, system.log_sql, system.db_limit_characters, system.check_backend_function, system.user_level, system.log_limit_characters, system.help_shortcut, system.reset_plugin_shortcut, system.open_selections_shortcut, system.log_sql_shortcut, - log.log_sql_shortcut, system.reset_user_variables, system.sslmode, dialogs_actions._mincut_manager_keep_open, - user_edit_tricks.keep_maptool_active + log.log_sql_shortcut, system.reset_user_variables, system.sslmode, user_edit_tricks.keep_maptool_active deprecated_vars_session = btn_search._open_search, btn_toolbox._gw_fct_repair_node_duplicated_cmb_feature_type, btn_toolbox._gw_fct_repair_node_duplicated_cmb_layers, btn_toolbox._gw_fct_repair_node_duplicated_rbt_previous, btn_arc_fusion._disable_showlog, btn_arc_divide._disable_showlog, btn_arc_divide._disable_prev_warning diff --git a/config/user_params.config b/config/user_params.config index a788f910b..6bf2cf30d 100644 --- a/config/user_params.config +++ b/config/user_params.config @@ -84,6 +84,7 @@ shortcut_toggle_log_db = Alt+1 #Shortcut to show DB&Notify logs _toolbars_order = basic, om, edit, cad, epa, plan, utilities, toc [init.dialogs_actions] +_mincut_manager_keep_open = True _visit_manager_keep_open = True _doc_manager_keep_open = True _element_manager_keep_open = True diff --git a/core/shared/mincut_tools.py b/core/shared/mincut_tools.py index 5bba1d7f6..50780d72f 100644 --- a/core/shared/mincut_tools.py +++ b/core/shared/mincut_tools.py @@ -182,7 +182,9 @@ def _open_mincut(self): result_mincut_id = self.tbl_mincut_edit.model().record(row).value("id") # Close this dialog and open selected mincut - tools_gw.close_dialog(self.dlg_mincut_man) + keep_open_form = tools_gw.get_config_parser('dialogs_actions', 'mincut_manager_keep_open', "user", "init", prefix=True) + if tools_os.set_boolean(keep_open_form, False) is not True: + tools_gw.close_dialog(self.dlg_mincut_man) self.mincut.is_new = False self.mincut.set_dialog(dlg_mincut) self.mincut.init_mincut_form() From 5c824d2cbb1ff3ce904b87e1e4b602c91adb20c9 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 26 Sep 2022 17:41:12 +0200 Subject: [PATCH 06/36] Bug fix: info -- if node_1/node_2 is null don't run settopology fct --- core/shared/info.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/shared/info.py b/core/shared/info.py index d733cd36d..ad09a849f 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -2281,6 +2281,9 @@ def _run_settopology(self, widget, **kwargs): feature_id = complet_result['body']['feature']['id'] text = tools_qt.get_text(dialog, widget, return_string_null=True) + if text in (None, 'null'): + return + feature = f'"id": "{feature_id}"' extras = f'"fields":{{"{widget.property("columnname")}":"{text}"}}' body = tools_gw.create_body(feature=feature, extras=extras) From 3cf712de69203a9f0f5f05982be8dfd4da08a103 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 26 Sep 2022 17:58:35 +0200 Subject: [PATCH 07/36] Bug fix: reset selection on close delete feature dlg --- core/toolbars/edit/feature_delete_button.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/core/toolbars/edit/feature_delete_button.py b/core/toolbars/edit/feature_delete_button.py index b107173ce..0ce0390eb 100644 --- a/core/toolbars/edit/feature_delete_button.py +++ b/core/toolbars/edit/feature_delete_button.py @@ -9,11 +9,13 @@ from qgis.PyQt.QtCore import QStringListModel from qgis.PyQt.QtWidgets import QCompleter +from qgis.core import QgsVectorLayer from ..dialog import GwAction from ...ui.ui_manager import GwFeatureDeleteUi from ...utils import tools_gw from ....lib import tools_qgis, tools_qt, tools_db +from .... import global_vars class GwFeatureDeleteButton(GwAction): @@ -75,6 +77,7 @@ def clicked_event(self): # Set listeners self.dlg_feature_delete.btn_cancel.clicked.connect(partial(tools_gw.close_dialog, self.dlg_feature_delete)) self.dlg_feature_delete.rejected.connect(partial(tools_gw.disconnect_signal, 'feature_delete')) + self.dlg_feature_delete.finished.connect(partial(self._selection_end)) self.dlg_feature_delete.rejected.connect(partial(tools_gw.save_settings, self.dlg_feature_delete)) self.dlg_feature_delete.btn_delete_another.clicked.connect(partial(self._delete_another_feature)) @@ -207,6 +210,19 @@ def _selection_init(self): self.connect_signal_selection_changed() + def _selection_end(self): + """ Set canvas map tool to an instance of class 'GwSelectManager' """ + + tools_gw.disconnect_signal('feature_delete') + + for layer in global_vars.canvas.layers(): + if type(layer) is QgsVectorLayer: + layer.removeSelection() + + global_vars.canvas.refresh() + global_vars.iface.actionPan().trigger() + + def _manage_selection(self): """ Slot function for signal 'canvas.selectionChanged' """ From d03ade26c647012f26b2fadee3f7e16840911466 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Tue, 27 Sep 2022 09:21:20 +0200 Subject: [PATCH 08/36] Bug fix: utils_graphanalytics_automatic_trigger change name --- core/shared/info.py | 4 ++-- core/toolbars/basic/info_button.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/shared/info.py b/core/shared/info.py index ad09a849f..aec9f1d6f 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -1917,8 +1917,8 @@ def _accept(self, dialog, complet_result, _json, p_widget=None, clear_json=False extras = f'"fields":{my_json}, "reload":"{fields_reload}", "afterInsert":"{after_insert}"' body = tools_gw.create_body(feature=feature, extras=extras) - # Get utils_grafanalytics_automatic_trigger param - row = tools_gw.get_config_value("utils_grafanalytics_automatic_trigger", table='config_param_system') + # Get utils_graphanalytics_automatic_trigger param + row = tools_gw.get_config_value("utils_graphanalytics_automatic_trigger", table='config_param_system') thread = row[0] if row else None if thread: thread = json.loads(thread) diff --git a/core/toolbars/basic/info_button.py b/core/toolbars/basic/info_button.py index d05efe785..d8f7f2d1a 100644 --- a/core/toolbars/basic/info_button.py +++ b/core/toolbars/basic/info_button.py @@ -222,7 +222,7 @@ def _identify_all(self, complet_list, rb_list): def _toggle_valve_state(self, valve_id, table_name, value): - """ Open or closes a valve. If parameter 'utils_grafanalytics_automatic_trigger' is true, + """ Open or closes a valve. If parameter 'utils_graphanalytics_automatic_trigger' is true, also updates mapzones in a thread """ # Build function body @@ -232,8 +232,8 @@ def _toggle_valve_state(self, valve_id, table_name, value): extras = f'"fields":{{"closed": "{value}"}}' body = tools_gw.create_body(feature=feature, extras=extras) - # Get utils_grafanalytics_automatic_trigger param - row = tools_gw.get_config_value("utils_grafanalytics_automatic_trigger", table='config_param_system') + # Get utils_graphanalytics_automatic_trigger param + row = tools_gw.get_config_value("utils_graphanalytics_automatic_trigger", table='config_param_system') thread = row[0] if row else None if thread: thread = json.loads(thread) From 8428336747d6fdc3797d795a74afa4cc6b08c596 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Tue, 27 Sep 2022 09:30:56 +0200 Subject: [PATCH 09/36] Bug fix: get correct project_type if add_schema layer is higher in ToC than main_schema --- core/load_project.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/load_project.py b/core/load_project.py index 61f9989a6..4ea578b92 100644 --- a/core/load_project.py +++ b/core/load_project.py @@ -45,6 +45,8 @@ def project_read(self, show_warning=True): tools_log.log_info("Project read started") self._get_user_variables() + # Get variables from qgis project + self._get_project_variables() # Check if loaded project is valid for Giswater if not self._check_project(show_warning): @@ -72,9 +74,6 @@ def project_read(self, show_warning=True): if global_vars.project_type is None: return - # Get variables from qgis project - self._get_project_variables() - # Check if loaded project is ud or ws if not self._check_project_type(): return From 9c19fc3086089d3cd803f39623a768a314018587 Mon Sep 17 00:00:00 2001 From: Barbara Rzepka Date: Wed, 28 Sep 2022 13:13:14 +0200 Subject: [PATCH 10/36] rename getstylemapzones field to transparency --- core/utils/tools_gw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/utils/tools_gw.py b/core/utils/tools_gw.py index 7b7081eac..fc9318897 100644 --- a/core/utils/tools_gw.py +++ b/core/utils/tools_gw.py @@ -1060,7 +1060,7 @@ def set_style_mapzones(): for id in mapzone['values']: # initialize the default symbol for this geometry type symbol = QgsSymbol.defaultSymbol(lyr.geometryType()) - symbol.setOpacity(float(mapzone['opacity'])) + symbol.setOpacity(float(mapzone['transparency'])) # Setting simp R = random.randint(0, 255) From 62d70c7252ea39a5c0d6aaf942d37c194168fcf7 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Fri, 30 Sep 2022 09:46:42 +0200 Subject: [PATCH 11/36] Update metadata plugin version --- metadata.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/metadata.txt b/metadata.txt index 0630a99aa..523bde426 100644 --- a/metadata.txt +++ b/metadata.txt @@ -4,11 +4,11 @@ qgisMinimumVersion=3.10 qgisMaximumVersion=3.99 description=Plugin to manage water networks (water supply, sewerage and urban drainage) using QGIS and PostGIS-PostgreSQL(from 9.5 to 14.x) about=Disclaimer: This plugin is released using the open source GNU-GPL3 license. Although a reasonable effort has been made to assure that the results obtained are correct, some of the capabilities provided by Giswater are experimental, therefore the development team and the Giswater Association are not responsible and assume no liability whatsoever for any results or any use made of the results obtained from the program, nor for any damages or litigation that result from the use of these programs for any purpose. -version=3.5.029 +version=3.5.030 author=David Erill, Luigi Pirelli, Natasa Cica, Nestor Ibañez, Adrian Valenciano, Barbara Rzepka, Sergi Muñoz, Josep Lluís Sala, Edgar Fusté, Albert Bofill, Sergi Maspons, Elies Bertran, Abel García Juanes, Xavier Torret -Changelog=Version 3.5.029 - - Minor bug fixes +Changelog=Version 3.5.030 + tags= giswater, water networks, sewerage, urban drainage, EPANET, SWMM homepage=https://www.giswater.org From d4c963fbcc7420d848a143d5cfa71e522b3e7cff Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 3 Oct 2022 11:39:52 +0200 Subject: [PATCH 12/36] Bug fix: combobox -- only send error message if keys don't exist --- core/utils/tools_gw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/utils/tools_gw.py b/core/utils/tools_gw.py index fc9318897..0f5abe488 100644 --- a/core/utils/tools_gw.py +++ b/core/utils/tools_gw.py @@ -1741,7 +1741,7 @@ def fill_combo(widget, field): combolist = [] comboIds = field.get('comboIds') comboNames = field.get('comboNames') - if comboIds and comboNames: + if 'comboIds' in field and 'comboNames' in field: if tools_os.set_boolean(field.get('isNullValue'), True): combolist.append(['', '']) for i in range(0, len(field['comboIds'])): From 566c917aab2fc16071f6210159493350d666113e Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 5 Oct 2022 17:14:20 +0200 Subject: [PATCH 13/36] Bug fix: info accept -- force layers to reindex to fix snapping --- core/shared/info.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/shared/info.py b/core/shared/info.py index aec9f1d6f..cafe8cf2d 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -1448,6 +1448,9 @@ def _manage_accept(self, dialog, action_edit, new_feature, my_json, close_dlg): tools_qt.set_action_checked(action_edit, False) tools_gw.enable_widgets(dialog, self.complet_result['body']['data'], False) self._enable_actions(dialog, False) + # Force layers to reindex in order to fix some snapping issues + self.iface.mapCanvas().snappingUtils().clearAllLocators() + tools_qgis.force_refresh_map_canvas() def _stop_editing(self, dialog, action_edit, layer, fid, my_json, new_feature=None): From 3b85a163573f9ab72d6f5079a5b4ee143d7ea391 Mon Sep 17 00:00:00 2001 From: "xtorret@bgeo.es" Date: Sun, 9 Oct 2022 13:02:26 +0200 Subject: [PATCH 14/36] New csv files for scada data values (separating daily values and cumulative values) --- .../example/csv/ext_rtc_scada_cum_values.csv | 93 +++++++++++++++++++ ...ata.csv => ext_rtc_scada_daily_values.csv} | 0 2 files changed, 93 insertions(+) create mode 100644 resources/example/csv/ext_rtc_scada_cum_values.csv rename resources/example/csv/{ext_rtc_scada_x_data.csv => ext_rtc_scada_daily_values.csv} (100%) diff --git a/resources/example/csv/ext_rtc_scada_cum_values.csv b/resources/example/csv/ext_rtc_scada_cum_values.csv new file mode 100644 index 000000000..c6bd0188d --- /dev/null +++ b/resources/example/csv/ext_rtc_scada_cum_values.csv @@ -0,0 +1,93 @@ +node_id;value_date;value +1080;01/05/2015;300,98 +1080;06/05/2015;1805,88 +1080;09/05/2015;2892,64 +1080;17/05/2015;5517,63 +1080;18/05/2015;5833,76 +1080;19/05/2015;6183,22 +1080;24/05/2015;7731,55 +1080;25/05/2015;8082,02 +1080;04/06/2015;11149,34 +1080;05/06/2015;11476,53 +1080;13/06/2015;14139,15 +1080;14/06/2015;14403,97 +1080;15/06/2015;14688,94 +1080;22/06/2015;16862,22 +1080;23/06/2015;17195,17 +1080;24/06/2015;17529,08 +1080;25/06/2015;17862,03 +1080;29/06/2015;19185,33 +1080;02/07/2015;20190,94 +1080;03/07/2015;20418,19 +1080;07/07/2015;21587,77 +1080;08/07/2015;21936,22 +1080;13/07/2015;23710,79 +1080;18/07/2015;25395,47 +1080;23/07/2015;27086,21 +1080;27/07/2015;28387,09 +1097;01/05/2015;306,03 +1097;03/05/2015;918,09 +1097;09/05/2015;2811,39 +1097;30/05/2015;9823,48 +1097;31/05/2015;10176,43 +1097;02/06/2015;10834,39 +1097;03/06/2015;11164,9 +1097;05/06/2015;11871,83 +1097;06/06/2015;12219,68 +1097;08/06/2015;12954,15 +1097;09/06/2015;13317,31 +1097;10/06/2015;13669,24 +1097;13/06/2015;14702,59 +1097;14/06/2015;14984,14 +1097;15/06/2015;15287,11 +1097;20/06/2015;16994,74 +1097;26/06/2015;19013,49 +1097;30/06/2015;20431,41 +1097;04/07/2015;21772,83 +1097;13/07/2015;24971,85 +1097;19/07/2015;26978,39 +1097;30/07/2015;30737,41 +1097;31/07/2015;31077,1 +1101;01/05/2015;12,12 +1101;03/05/2015;36,36 +1101;06/05/2015;72,72 +1101;07/05/2015;84,84 +1101;18/05/2015;218,16 +1101;24/05/2015;290,88 +1101;31/05/2015;375,72 +1101;06/06/2015;456,823 +1101;20/06/2015;717,504 +1101;25/06/2015;811,737 +1101;02/07/2015;910,818 +1101;08/07/2015;999,496 +1101;14/07/2015;1099,486 +1101;22/07/2015;1267,348 +1101;28/07/2015;1366,631 +1101;31/07/2015;1411,68811 +111111;01/05/2015;334,512 +111111;13/05/2015;4638,21795 +111111;29/05/2015;9832,5621 +111111;11/06/2015;14393,42415 +111111;23/06/2015;18420,11235 +111111;09/07/2015;24169,53735 +111111;19/07/2015;27670,4145 +111111;31/07/2015;31870,6308 +113766;01/05/2015;303 +113766;14/05/2015;4534,9 +113766;23/05/2015;7472,99 +113766;04/06/2015;11409,97 +113766;13/06/2015;14557,13 +113766;21/06/2015;17075,06 +113766;11/07/2015;24036,99 +113766;19/07/2015;26711,47 +113766;28/07/2015;29752,58 +113952;06/05/2015;2026,06 +113952;16/05/2015;5409,56 +113952;24/05/2015;7948,7 +113952;02/06/2015;10750,44 +113952;07/06/2015;12470,47 +113952;08/06/2015;12849,22 +113952;15/06/2015;15159,09 +113952;24/06/2015;18148,69 +113952;04/07/2015;21378,67 +113952;31/07/2015;30491,9 diff --git a/resources/example/csv/ext_rtc_scada_x_data.csv b/resources/example/csv/ext_rtc_scada_daily_values.csv similarity index 100% rename from resources/example/csv/ext_rtc_scada_x_data.csv rename to resources/example/csv/ext_rtc_scada_daily_values.csv From eaebe1a4de6c888ad241a1e661aaaea48406c81f Mon Sep 17 00:00:00 2001 From: "xtorret@bgeo.es" Date: Mon, 17 Oct 2022 16:59:02 +0200 Subject: [PATCH 15/36] Enhance IBER-SWMM example files, separated on two files by calculation method (WO - UPC) --- .../iber/{sample.dat => gully_upc_method.dat} | 466 +++++++++--------- resources/example/iber/gully_wo_method.dat | 234 +++++++++ 2 files changed, 467 insertions(+), 233 deletions(-) rename resources/example/iber/{sample.dat => gully_upc_method.dat} (63%) create mode 100644 resources/example/iber/gully_wo_method.dat diff --git a/resources/example/iber/sample.dat b/resources/example/iber/gully_upc_method.dat similarity index 63% rename from resources/example/iber/sample.dat rename to resources/example/iber/gully_upc_method.dat index 11e2fe2a1..7c21c9125 100644 --- a/resources/example/iber/sample.dat +++ b/resources/example/iber/gully_upc_method.dat @@ -1,234 +1,234 @@ gully_id outlet_type node_id xcoord ycoord zcoord width length depth method weir_cd orifice_cd a_param b_param efficiency -10063 To_network 76 418940.661 4576439.176 51.980 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -10064 To_network 76 418919.825 4576437.352 52.980 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -10065 To_network 65 418881.033 4576462.317 55.690 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -10116 To_network 75 419066.233 4576368.291 43.690 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -10117 To_network 75 419071.899 4576365.603 43.310 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -10118 To_network 73 418932.959 4576456.101 53.070 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30009 To_network 34 418841.185 4576666.670 54.890 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30010 To_network 34 418855.852 4576705.077 54.570 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30011 To_network 34 418854.988 4576682.225 54.670 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30012 To_network 34 418854.172 4576666.237 54.830 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30013 To_network 46 418840.249 4576620.388 55.900 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30015 To_network 46 418853.740 4576619.236 55.610 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30016 To_network 32 418844.810 4576805.993 59.120 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30017 To_network 112 418940.733 4576959.672 58.060 0.295 0.565 0.800 W/O 1.600 0.700 0.454 0.659 90 -30019 To_network 112 418964.258 4576923.569 57.020 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30020 To_network 113 418978.373 4576899.708 56.190 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30021 To_network 113 418984.518 4576909.550 56.160 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30022 To_network 113 418983.942 4576890.106 55.620 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30023 To_network 113 418989.943 4576886.938 55.620 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30024 To_network 114 419000.889 4576884.441 54.860 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30025 To_network 114 419008.235 4576893.755 54.730 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30026 To_network 114 419025.902 4576881.705 53.290 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30027 To_network 115 419046.210 4576868.070 52.560 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30028 To_network 116 419074.920 4576848.674 50.680 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30029 To_network 116 419094.220 4576835.231 49.420 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30030 To_network 117 419094.124 4576821.597 49.010 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30031 To_network 117 419117.168 4576819.964 47.460 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30032 To_network 118 419139.253 4576805.177 45.990 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30033 To_network 118 419133.204 4576795.383 46.260 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30034 To_network 119 419179.197 4576765.617 43.010 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30035 To_network 120 419223.846 4576734.123 39.760 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30036 To_network 120 419230.567 4576743.629 39.510 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30037 To_network 43 419332.348 4576651.066 31.900 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30038 To_network 44 419366.050 4576636.279 29.700 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30039 To_network 44 419374.308 4576613.523 29.340 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30040 To_network 124 419427.407 4576582.317 26.820 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30041 To_network 124 419419.149 4576573.003 27.350 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30042 To_network 125 419467.687 4576539.156 24.380 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30043 To_network 123 419505.134 4576528.354 22.900 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30044 To_network 123 419498.029 4576519.136 23.250 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30045 To_network 234 419553.912 4576495.995 20.950 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30046 To_network 234 419547.959 4576486.009 21.000 0.295 0.565 0.800 W/O 1.600 0.700 0.454 0.659 90 -30047 To_network 20587 419585.070 4576475.303 19.670 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30048 To_network 20587 419579.693 4576465.317 19.860 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30049 To_network 123 419490.011 4576483.945 23.490 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30050 To_network 131 419446.706 4576446.017 25.470 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30051 To_network 127 419325.866 4576339.724 31.000 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30052 To_network 126 419299.029 4576316.151 32.180 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30053 To_network 95 419222.261 4576222.148 35.080 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30054 To_network 100 419269.983 4576263.821 32.870 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30055 To_network 129 419391.735 4576374.003 28.080 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30056 To_network 94 419147.751 4576226.421 37.090 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30057 To_network 92 419134.092 4576266.629 38.490 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30058 To_network 92 419122.858 4576259.140 38.450 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30059 To_network 91 419089.635 4576325.201 40.870 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30060 To_network 90 419070.431 4576327.794 41.290 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30061 To_network 78 418992.223 4576405.185 47.380 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30062 To_network 77 418966.778 4576406.145 48.220 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30066 To_network 52 418926.306 4576686.185 51.420 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30067 To_network 35 418971.435 4576662.949 49.710 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30068 To_network 35 418972.587 4576676.295 49.490 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30069 To_network 20607 418989.391 4576659.108 48.400 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30073 To_network 64 419083.586 4576654.019 43.730 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30074 To_network 64 419080.417 4576640.672 43.540 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30075 To_network 37 419114.888 4576633.567 41.960 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30076 To_network 37 419126.410 4576627.518 41.220 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30077 To_network 41 419253.060 4576615.611 35.320 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30079 To_network 43 419336.020 4576624.157 31.150 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30080 To_network 40 419234.432 4576646.482 36.210 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30081 To_network 40 419216.956 4576643.985 36.900 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30082 To_network 40 419211.195 4576595.591 38.360 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30083 To_network 101 419201.881 4576507.062 39.970 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30084 To_network 101 419224.446 4576508.310 39.330 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30085 To_network 88 419205.338 4576478.640 39.690 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30086 To_network 88 419200.441 4576491.506 40.010 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30087 To_network 87 419120.745 4576510.902 45.360 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30088 To_network 86 419089.443 4576503.221 47.200 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30089 To_network 82 419059.821 4576502.837 48.610 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30090 To_network 82 418999.425 4576533.467 51.410 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30091 To_network 68 418958.233 4576560.352 53.300 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30092 To_network 67 418949.207 4576566.882 53.350 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30093 To_network 67 418951.607 4576572.067 52.420 0.295 0.565 0.800 W/O 1.600 0.700 0.454 0.659 90 -30094 To_network 71 418975.612 4576620.268 49.650 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30095 To_network 71 418968.699 4576619.308 49.930 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30096 To_network 35 418975.540 4576655.675 49.410 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30097 To_network 35 418982.165 4576655.291 48.930 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30098 To_network 31 418865.193 4576816.215 57.650 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30099 To_network 54 418922.703 4576804.383 54.550 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30100 To_network 57 418942.248 4576801.013 53.670 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30101 To_network 58 418976.021 4576793.824 51.960 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30102 To_network 59 419034.979 4576782.038 50.140 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30103 To_network 59 419041.412 4576784.342 49.810 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30104 To_network 59 419048.182 4576782.182 49.810 0.295 0.565 0.800 W/O 1.600 0.700 0.454 0.659 90 -30105 To_network 59 419068.394 4576824.142 50.230 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30106 To_network 116 419078.476 4576827.119 50.070 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30107 To_network 116 419071.850 4576836.625 50.400 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30108 To_network 61 419036.035 4576769.844 49.850 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30109 To_network 62 419024.129 4576707.383 47.900 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30111 To_network 37 419119.620 4576626.775 41.640 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30112 To_network 83 419108.194 4576571.276 44.300 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30113 To_network 86 419094.367 4576505.791 46.990 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30114 To_network 80 419120.292 4576462.774 44.350 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30115 To_network 79 419105.505 4576427.247 44.070 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30120 To_network 68 418978.328 4576512.800 53.310 0.295 0.565 0.800 W/O 1.600 0.700 0.454 0.659 90 -30121 To_network 68 418983.993 4576532.388 52.150 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30124 To_network 98 419201.909 4576395.224 39.900 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30125 To_network 97 419199.796 4576352.976 39.210 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30126 To_network 96 419216.407 4576315.624 37.270 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30127 To_network 98 419219.384 4576393.688 39.530 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30129 To_network 110 419226.946 4576433.776 39.140 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30130 To_network 107 419355.611 4576511.936 30.950 0.475 0.975 0.800 W/O 1.600 0.700 0.818 0.758 90 -30131 To_network 106 419382.689 4576539.541 29.490 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30132 To_network 45 419406.166 4576576.461 27.910 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30133 To_network 45 419411.639 4576571.948 27.650 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30134 To_network 46 418854.319 4576642.066 55.020 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30135 To_network 82 419022.257 4576526.171 50.180 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30136 To_network 84 419104.641 4576523.194 46.120 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -30913 To_network 31 418842.001 4576854.207 60.250 1.000 0.325 0.800 W/O 1.600 0.700 0.595 0.347 90 -30914 To_network 125 419457.749 4576557.736 25.290 1.000 0.325 0.800 W/O 1.600 0.700 0.595 0.347 90 -30915 To_network 125 419452.612 4576550.966 25.340 1.000 0.195 0.800 W/O 1.600 0.700 0.473 0.244 90 -30917 To_network 39 419191.895 4576624.589 37.920 1.000 0.195 0.800 W/O 1.600 0.700 0.473 0.244 90 -30918 To_network 59 419033.275 4576779.037 50.050 1.000 0.325 0.800 W/O 1.600 0.700 0.595 0.347 90 -49812 To_network 18842 418508.580 4577581.405 36.780 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49813 To_network 18842 418518.491 4577582.852 36.910 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49814 To_network 18842 418501.779 4577622.282 38.240 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49815 To_network 18842 418511.618 4577623.873 38.150 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49816 To_network 18843 418601.331 4577602.458 33.940 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49817 To_network 18843 418615.222 4577605.208 34.090 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49818 To_network 18840 418593.806 4577648.038 37.140 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49819 To_network 18840 418607.408 4577650.353 37.030 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49820 To_network 18848 418488.177 4577581.043 38.220 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49821 To_network 18844 418637.939 4577596.526 32.380 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49822 To_network 18844 418640.254 4577580.030 32.370 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49823 To_network 20582 418690.609 4577605.497 30.970 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49824 To_network 20582 418693.937 4577589.291 30.770 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49825 To_network 20575 418699.291 4577623.873 31.580 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49826 To_network 18839 418692.056 4577672.347 34.530 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49827 To_network 18838 418681.348 4577729.503 37.040 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49828 To_network 18858 418672.088 4577787.960 37.570 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49829 To_network 18912 418668.326 4577811.980 37.170 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49830 To_network 18878 418657.618 4577874.779 34.820 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49831 To_network 18881 418651.251 4577901.403 34.030 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49832 To_network 18880 418640.833 4577961.887 31.770 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49833 To_network 18886 418638.229 4577986.196 30.940 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49834 To_network 18885 418629.257 4578044.075 29.450 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49983 To_network 18874 418446.495 4577939.649 33.270 1.000 0.475 0.800 W/O 1.600 0.700 0.779 0.323 90 -49984 To_network 18870 418341.119 4577922.212 33.970 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49985 To_network 18868 418323.900 4577903.836 35.680 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49986 To_network 18861 418330.701 4577862.163 38.130 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -49987 To_network 18867 418335.766 4577832.355 39.740 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49988 To_network 18866 418348.499 4577793.721 42.480 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49989 To_network 18866 418366.731 4577760.296 44.610 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49990 To_network 18852 418394.223 4577717.755 45.760 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49991 To_network 18833 418431.411 4577679.989 43.600 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49992 To_network 18833 418434.305 4577664.796 44.410 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49993 To_network 18834 418485.672 4577687.224 42.820 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49994 To_network 18834 418487.409 4577673.767 42.840 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49995 To_network 18835 418533.856 4577695.038 41.510 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49996 To_network 18835 418536.316 4577681.870 41.540 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49999 To_network 18837 418610.546 4577706.469 39.070 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50000 To_network 18837 418613.151 4577690.697 39.270 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50001 To_network 18838 418672.332 4577716.308 37.150 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50002 To_network 18838 418675.515 4577701.549 37.200 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50003 To_network 18836 418584.356 4577738.447 39.990 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50004 To_network 18836 418592.170 4577739.894 39.980 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50005 To_network 18834 418486.540 4577722.675 43.020 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50006 To_network 18834 418493.341 4577723.977 42.900 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50007 To_network 18853 418393.211 4577747.273 44.970 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50008 To_network 18853 418391.908 4577757.402 44.670 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50010 To_network 18854 418435.028 4577755.666 43.710 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50011 To_network 18862 418473.952 4577773.753 42.480 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50012 To_network 18855 418493.486 4577765.505 42.230 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50013 To_network 18855 418492.039 4577772.595 41.990 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50014 To_network 18856 418540.513 4577781.132 41.030 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50015 To_network 18856 418541.525 4577774.476 41.010 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50016 To_network 18911 418586.092 4577792.564 39.900 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50017 To_network 18857 418591.301 4577782.435 39.840 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50018 To_network 18858 418635.434 4577797.628 38.320 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50019 To_network 18858 418636.881 4577790.683 38.830 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50020 To_network 18911 418575.240 4577799.075 39.610 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50021 To_network 18911 418584.211 4577801.101 39.390 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50022 To_network 18876 418567.137 4577845.089 38.040 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50023 To_network 18876 418575.963 4577846.680 38.150 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50024 To_network 18876 418550.063 4577888.498 37.310 1.000 0.124 0.800 W/O 1.600 0.700 0.411 0.178 90 -50025 To_network 18960 418568.439 4577902.678 36.210 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50026 To_network 18877 418579.002 4577877.935 36.790 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50027 To_network 18877 418577.989 4577887.919 36.680 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50028 To_network 18878 418630.659 4577891.537 35.260 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50029 To_network 18878 418631.817 4577882.421 35.190 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50030 To_network 18876 418527.490 4577886.906 37.480 1.000 0.124 0.800 W/O 1.600 0.700 0.411 0.178 90 -50031 To_network 18875 418513.599 4577874.173 37.470 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50032 To_network 18862 418467.730 4577814.123 40.680 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50033 To_network 18864 418466.283 4577827.002 40.250 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50034 To_network 18862 418477.135 4577820.924 40.470 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50035 To_network 18863 418419.690 4577816.005 41.670 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50036 To_network 18863 418420.558 4577810.217 41.850 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50037 To_network 18860 418380.188 4577801.535 42.770 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50038 To_network 18863 418370.204 4577804.718 42.590 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50039 To_network 18861 418378.596 4577813.111 42.000 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50040 To_network 18860 418378.596 4577763.335 44.440 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50041 To_network 18861 418361.956 4577848.272 38.890 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50042 To_network 18861 418371.795 4577850.153 38.770 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50043 To_network 18870 418355.010 4577909.769 33.870 1.000 0.325 0.800 W/O 1.600 0.700 0.595 0.347 90 -50044 To_network 18865 418393.500 4577869.109 37.810 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50045 To_network 18865 418395.092 4577859.993 38.290 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50046 To_network 18864 418440.093 4577876.922 37.820 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50047 To_network 18864 418441.684 4577867.662 37.950 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50048 To_network 18864 418460.784 4577868.240 37.950 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50049 To_network 18864 418469.466 4577869.398 37.840 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50050 To_network 18874 418451.958 4577919.753 34.170 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50051 To_network 18874 418461.508 4577921.344 34.140 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50052 To_network 18879 418559.034 4577952.454 32.340 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50053 To_network 18882 418540.078 4578001.507 31.450 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50054 To_network 18882 418548.905 4578003.532 31.470 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50055 To_network 18872 418440.816 4577988.050 33.180 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50056 To_network 18872 418449.787 4577990.076 33.270 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50057 To_network 18870 418342.566 4577944.785 36.660 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50058 To_network 18871 418391.764 4577975.751 34.810 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50059 To_network 18872 418434.160 4578006.426 33.450 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50060 To_network 18887 418476.267 4578033.051 32.080 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50061 To_network 18883 418525.464 4578055.624 30.390 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50062 To_network 18884 418578.279 4578072.987 29.450 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -50009 To_network 18854 418433.726 4577764.492 43.710 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -10119 To_network 73 418938.384 4576452.404 52.840 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30018 To_network 112 418926.282 4576934.563 59.040 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30122 To_network 98 419203.109 4576424.990 39.810 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30123 To_network 110 419220.584 4576425.471 39.570 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30128 To_network 110 419226.682 4576440.354 39.060 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -30014 To_network 48 418851.483 4576524.225 58.360 0.300 0.640 0.800 W/O 1.600 0.700 0.496 0.712 90 -49998 To_network 18836 418586.092 4577689.973 40.020 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -49997 To_network 18836 418584.066 4577703.285 40.100 0.345 0.776 0.800 W/O 1.600 0.700 0.457 0.759 90 -100013 To_network 63 419026.748 4576651.486 46.400 0.364 0.780 0.800 W/O 1.600 0.700 0.568 0.742 90 -100012 To_network 20607 419018.117 4576678.191 47.400 0.364 0.780 0.800 W/O 1.600 0.700 0.568 0.742 90 +30019 To_network 112 418964.258 4576923.569 57.020 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30020 To_network 113 418978.373 4576899.708 56.190 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30021 To_network 113 418984.518 4576909.550 56.160 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30022 To_network 113 418983.942 4576890.106 55.620 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30023 To_network 113 418989.943 4576886.938 55.620 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30024 To_network 114 419000.889 4576884.441 54.860 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30025 To_network 114 419008.235 4576893.755 54.730 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30010 To_network 34 418855.852 4576705.077 54.570 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30011 To_network 34 418854.988 4576682.225 54.670 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30012 To_network 34 418854.172 4576666.237 54.830 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30013 To_network 46 418840.249 4576620.388 55.900 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30015 To_network 46 418853.740 4576619.236 55.610 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30016 To_network 32 418844.810 4576805.993 59.120 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30017 To_network 112 418940.733 4576959.672 58.060 0.295 0.565 0.800 UPC 0.000 0.000 0.454 0.659 90 +30026 To_network 114 419025.902 4576881.705 53.290 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30027 To_network 115 419046.210 4576868.070 52.560 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30028 To_network 116 419074.920 4576848.674 50.680 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30029 To_network 116 419094.220 4576835.231 49.420 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30030 To_network 117 419094.124 4576821.597 49.010 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30031 To_network 117 419117.168 4576819.964 47.460 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30032 To_network 118 419139.253 4576805.177 45.990 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30033 To_network 118 419133.204 4576795.383 46.260 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30034 To_network 119 419179.197 4576765.617 43.010 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30035 To_network 120 419223.846 4576734.123 39.760 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30036 To_network 120 419230.567 4576743.629 39.510 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30037 To_network 43 419332.348 4576651.066 31.900 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30038 To_network 44 419366.050 4576636.279 29.700 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30039 To_network 44 419374.308 4576613.523 29.340 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30040 To_network 124 419427.407 4576582.317 26.820 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30041 To_network 124 419419.149 4576573.003 27.350 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30042 To_network 125 419467.687 4576539.156 24.380 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30043 To_network 123 419505.134 4576528.354 22.900 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30044 To_network 123 419498.029 4576519.136 23.250 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30045 To_network 234 419553.912 4576495.995 20.950 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30046 To_network 234 419547.959 4576486.009 21.000 0.295 0.565 0.800 UPC 0.000 0.000 0.454 0.659 90 +30047 To_network 20587 419585.070 4576475.303 19.670 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30048 To_network 20587 419579.693 4576465.317 19.860 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30049 To_network 123 419490.011 4576483.945 23.490 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30050 To_network 131 419446.706 4576446.017 25.470 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30051 To_network 127 419325.866 4576339.724 31.000 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30052 To_network 126 419299.029 4576316.151 32.180 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30053 To_network 95 419222.261 4576222.148 35.080 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30054 To_network 100 419269.983 4576263.821 32.870 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30055 To_network 129 419391.735 4576374.003 28.080 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30056 To_network 94 419147.751 4576226.421 37.090 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30057 To_network 92 419134.092 4576266.629 38.490 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30058 To_network 92 419122.858 4576259.140 38.450 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30059 To_network 91 419089.635 4576325.201 40.870 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30060 To_network 90 419070.431 4576327.794 41.290 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30061 To_network 78 418992.223 4576405.185 47.380 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30062 To_network 77 418966.778 4576406.145 48.220 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30066 To_network 52 418926.306 4576686.185 51.420 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30067 To_network 35 418971.435 4576662.949 49.710 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30068 To_network 35 418972.587 4576676.295 49.490 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30069 To_network 20607 418989.391 4576659.108 48.400 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30073 To_network 64 419083.586 4576654.019 43.730 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30074 To_network 64 419080.417 4576640.672 43.540 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30075 To_network 37 419114.888 4576633.567 41.960 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30076 To_network 37 419126.410 4576627.518 41.220 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30077 To_network 41 419253.060 4576615.611 35.320 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30079 To_network 43 419336.020 4576624.157 31.150 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30080 To_network 40 419234.432 4576646.482 36.210 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30081 To_network 40 419216.956 4576643.985 36.900 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30082 To_network 40 419211.195 4576595.591 38.360 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30083 To_network 101 419201.881 4576507.062 39.970 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30084 To_network 101 419224.446 4576508.310 39.330 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30085 To_network 88 419205.338 4576478.640 39.690 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30086 To_network 88 419200.441 4576491.506 40.010 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30087 To_network 87 419120.745 4576510.902 45.360 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30088 To_network 86 419089.443 4576503.221 47.200 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30089 To_network 82 419059.821 4576502.837 48.610 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30090 To_network 82 418999.425 4576533.467 51.410 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30091 To_network 68 418958.233 4576560.352 53.300 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30092 To_network 67 418949.207 4576566.882 53.350 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30093 To_network 67 418951.607 4576572.067 52.420 0.295 0.565 0.800 UPC 0.000 0.000 0.454 0.659 90 +30094 To_network 71 418975.612 4576620.268 49.650 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30095 To_network 71 418968.699 4576619.308 49.930 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30096 To_network 35 418975.540 4576655.675 49.410 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30097 To_network 35 418982.165 4576655.291 48.930 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30098 To_network 31 418865.193 4576816.215 57.650 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30099 To_network 54 418922.703 4576804.383 54.550 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30100 To_network 57 418942.248 4576801.013 53.670 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30101 To_network 58 418976.021 4576793.824 51.960 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30102 To_network 59 419034.979 4576782.038 50.140 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30103 To_network 59 419041.412 4576784.342 49.810 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30104 To_network 59 419048.182 4576782.182 49.810 0.295 0.565 0.800 UPC 0.000 0.000 0.454 0.659 90 +30105 To_network 59 419068.394 4576824.142 50.230 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30106 To_network 116 419078.476 4576827.119 50.070 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30107 To_network 116 419071.850 4576836.625 50.400 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30108 To_network 61 419036.035 4576769.844 49.850 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30109 To_network 62 419024.129 4576707.383 47.900 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30111 To_network 37 419119.620 4576626.775 41.640 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30112 To_network 83 419108.194 4576571.276 44.300 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30113 To_network 86 419094.367 4576505.791 46.990 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30114 To_network 80 419120.292 4576462.774 44.350 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30115 To_network 79 419105.505 4576427.247 44.070 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30120 To_network 68 418978.328 4576512.800 53.310 0.295 0.565 0.800 UPC 0.000 0.000 0.454 0.659 90 +30121 To_network 68 418983.993 4576532.388 52.150 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30124 To_network 98 419201.909 4576395.224 39.900 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30125 To_network 97 419199.796 4576352.976 39.210 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30126 To_network 96 419216.407 4576315.624 37.270 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30127 To_network 98 419219.384 4576393.688 39.530 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30129 To_network 110 419226.946 4576433.776 39.140 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30130 To_network 107 419355.611 4576511.936 30.950 0.475 0.975 0.800 UPC 0.000 0.000 0.818 0.758 90 +30131 To_network 106 419382.689 4576539.541 29.490 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30132 To_network 45 419406.166 4576576.461 27.910 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30133 To_network 45 419411.639 4576571.948 27.650 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30134 To_network 46 418854.319 4576642.066 55.020 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30135 To_network 82 419022.257 4576526.171 50.180 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30136 To_network 84 419104.641 4576523.194 46.120 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +30913 To_network 31 418842.001 4576854.207 60.250 1.000 0.325 0.800 UPC 0.000 0.000 0.595 0.347 90 +30914 To_network 125 419457.749 4576557.736 25.290 1.000 0.325 0.800 UPC 0.000 0.000 0.595 0.347 90 +30915 To_network 125 419452.612 4576550.966 25.340 1.000 0.195 0.800 UPC 0.000 0.000 0.473 0.244 90 +30917 To_network 39 419191.895 4576624.589 37.920 1.000 0.195 0.800 UPC 0.000 0.000 0.473 0.244 90 +30918 To_network 59 419033.275 4576779.037 50.050 1.000 0.325 0.800 UPC 0.000 0.000 0.595 0.347 90 +49812 To_network 18842 418508.580 4577581.405 36.780 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49813 To_network 18842 418518.491 4577582.852 36.910 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49814 To_network 18842 418501.779 4577622.282 38.240 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49815 To_network 18842 418511.618 4577623.873 38.150 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49816 To_network 18843 418601.331 4577602.458 33.940 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49817 To_network 18843 418615.222 4577605.208 34.090 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49818 To_network 18840 418593.806 4577648.038 37.140 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49819 To_network 18840 418607.408 4577650.353 37.030 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49820 To_network 18848 418488.177 4577581.043 38.220 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49821 To_network 18844 418637.939 4577596.526 32.380 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49822 To_network 18844 418640.254 4577580.030 32.370 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49823 To_network 20582 418690.609 4577605.497 30.970 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49824 To_network 20582 418693.937 4577589.291 30.770 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49825 To_network 20575 418699.291 4577623.873 31.580 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49826 To_network 18839 418692.056 4577672.347 34.530 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49827 To_network 18838 418681.348 4577729.503 37.040 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49828 To_network 18858 418672.088 4577787.960 37.570 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49829 To_network 18912 418668.326 4577811.980 37.170 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49830 To_network 18878 418657.618 4577874.779 34.820 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49831 To_network 18881 418651.251 4577901.403 34.030 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49832 To_network 18880 418640.833 4577961.887 31.770 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49833 To_network 18886 418638.229 4577986.196 30.940 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49834 To_network 18885 418629.257 4578044.075 29.450 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49983 To_network 18874 418446.495 4577939.649 33.270 1.000 0.475 0.800 UPC 0.000 0.000 0.779 0.323 90 +49984 To_network 18870 418341.119 4577922.212 33.970 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49985 To_network 18868 418323.900 4577903.836 35.680 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49986 To_network 18861 418330.701 4577862.163 38.130 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +49987 To_network 18867 418335.766 4577832.355 39.740 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49988 To_network 18866 418348.499 4577793.721 42.480 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49989 To_network 18866 418366.731 4577760.296 44.610 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49990 To_network 18852 418394.223 4577717.755 45.760 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49991 To_network 18833 418431.411 4577679.989 43.600 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49992 To_network 18833 418434.305 4577664.796 44.410 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49993 To_network 18834 418485.672 4577687.224 42.820 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49994 To_network 18834 418487.409 4577673.767 42.840 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49995 To_network 18835 418533.856 4577695.038 41.510 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49996 To_network 18835 418536.316 4577681.870 41.540 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49999 To_network 18837 418610.546 4577706.469 39.070 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50000 To_network 18837 418613.151 4577690.697 39.270 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50001 To_network 18838 418672.332 4577716.308 37.150 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50002 To_network 18838 418675.515 4577701.549 37.200 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50003 To_network 18836 418584.356 4577738.447 39.990 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50004 To_network 18836 418592.170 4577739.894 39.980 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50005 To_network 18834 418486.540 4577722.675 43.020 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50006 To_network 18834 418493.341 4577723.977 42.900 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50007 To_network 18853 418393.211 4577747.273 44.970 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50008 To_network 18853 418391.908 4577757.402 44.670 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50010 To_network 18854 418435.028 4577755.666 43.710 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50011 To_network 18862 418473.952 4577773.753 42.480 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50012 To_network 18855 418493.486 4577765.505 42.230 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50013 To_network 18855 418492.039 4577772.595 41.990 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50014 To_network 18856 418540.513 4577781.132 41.030 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50015 To_network 18856 418541.525 4577774.476 41.010 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50016 To_network 18911 418586.092 4577792.564 39.900 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50017 To_network 18857 418591.301 4577782.435 39.840 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50018 To_network 18858 418635.434 4577797.628 38.320 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50019 To_network 18858 418636.881 4577790.683 38.830 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50020 To_network 18911 418575.240 4577799.075 39.610 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50021 To_network 18911 418584.211 4577801.101 39.390 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50022 To_network 18876 418567.137 4577845.089 38.040 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50023 To_network 18876 418575.963 4577846.680 38.150 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50024 To_network 18876 418550.063 4577888.498 37.310 1.000 0.124 0.800 UPC 0.000 0.000 0.411 0.178 90 +50025 To_network 18960 418568.439 4577902.678 36.210 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50026 To_network 18877 418579.002 4577877.935 36.790 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50027 To_network 18877 418577.989 4577887.919 36.680 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50028 To_network 18878 418630.659 4577891.537 35.260 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50029 To_network 18878 418631.817 4577882.421 35.190 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50030 To_network 18876 418527.490 4577886.906 37.480 1.000 0.124 0.800 UPC 0.000 0.000 0.411 0.178 90 +50031 To_network 18875 418513.599 4577874.173 37.470 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50032 To_network 18862 418467.730 4577814.123 40.680 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50033 To_network 18864 418466.283 4577827.002 40.250 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50034 To_network 18862 418477.135 4577820.924 40.470 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50035 To_network 18863 418419.690 4577816.005 41.670 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50036 To_network 18863 418420.558 4577810.217 41.850 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50037 To_network 18860 418380.188 4577801.535 42.770 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50038 To_network 18863 418370.204 4577804.718 42.590 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50039 To_network 18861 418378.596 4577813.111 42.000 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50040 To_network 18860 418378.596 4577763.335 44.440 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50041 To_network 18861 418361.956 4577848.272 38.890 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50042 To_network 18861 418371.795 4577850.153 38.770 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50043 To_network 18870 418355.010 4577909.769 33.870 1.000 0.325 0.800 UPC 0.000 0.000 0.595 0.347 90 +50044 To_network 18865 418393.500 4577869.109 37.810 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50045 To_network 18865 418395.092 4577859.993 38.290 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50046 To_network 18864 418440.093 4577876.922 37.820 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50047 To_network 18864 418441.684 4577867.662 37.950 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50048 To_network 18864 418460.784 4577868.240 37.950 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50049 To_network 18864 418469.466 4577869.398 37.840 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50050 To_network 18874 418451.958 4577919.753 34.170 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50058 To_network 18871 418391.764 4577975.751 34.810 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50059 To_network 18872 418434.160 4578006.426 33.450 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50060 To_network 18887 418476.267 4578033.051 32.080 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50061 To_network 18883 418525.464 4578055.624 30.390 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50062 To_network 18884 418578.279 4578072.987 29.450 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50009 To_network 18854 418433.726 4577764.492 43.710 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50051 To_network 18874 418461.508 4577921.344 34.140 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50052 To_network 18879 418559.034 4577952.454 32.340 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50053 To_network 18882 418540.078 4578001.507 31.450 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50054 To_network 18882 418548.905 4578003.532 31.470 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50055 To_network 18872 418440.816 4577988.050 33.180 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50056 To_network 18872 418449.787 4577990.076 33.270 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +50057 To_network 18870 418342.566 4577944.785 36.660 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +10119 To_network 73 418938.384 4576452.404 52.840 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +10063 To_network 76 418940.661 4576439.176 51.980 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +10064 To_network 76 418919.825 4576437.352 52.980 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +10065 To_network 65 418881.033 4576462.317 55.690 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +10116 To_network 75 419066.233 4576368.291 43.690 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +10117 To_network 75 419071.899 4576365.603 43.310 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +10118 To_network 73 418932.959 4576456.101 53.070 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30009 To_network 34 418841.185 4576666.670 54.890 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30018 To_network 112 418926.282 4576934.563 59.040 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30122 To_network 98 419203.109 4576424.990 39.810 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30123 To_network 110 419220.584 4576425.471 39.570 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30128 To_network 110 419226.682 4576440.354 39.060 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +30014 To_network 48 418851.483 4576524.225 58.360 0.300 0.640 0.800 UPC 0.000 0.000 0.496 0.712 90 +49998 To_network 18836 418586.092 4577689.973 40.020 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +49997 To_network 18836 418584.066 4577703.285 40.100 0.345 0.776 0.800 UPC 0.000 0.000 0.457 0.759 90 +100013 To_network 63 419026.748 4576651.486 46.400 0.364 0.780 0.800 UPC 0.000 0.000 0.568 0.742 90 +100012 To_network 20607 419018.117 4576678.191 47.400 0.364 0.780 0.800 UPC 0.000 0.000 0.568 0.742 90 diff --git a/resources/example/iber/gully_wo_method.dat b/resources/example/iber/gully_wo_method.dat new file mode 100644 index 000000000..d1a8df220 --- /dev/null +++ b/resources/example/iber/gully_wo_method.dat @@ -0,0 +1,234 @@ +gully_id outlet_type node_id xcoord ycoord zcoord width length depth method weir_cd orifice_cd a_param b_param efficiency +30111 To_network 37 419119.620 4576626.775 41.640 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30010 To_network 34 418855.852 4576705.077 54.570 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30011 To_network 34 418854.988 4576682.225 54.670 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30012 To_network 34 418854.172 4576666.237 54.830 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30013 To_network 46 418840.249 4576620.388 55.900 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30015 To_network 46 418853.740 4576619.236 55.610 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30016 To_network 32 418844.810 4576805.993 59.120 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30073 To_network 64 419083.586 4576654.019 43.730 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30074 To_network 64 419080.417 4576640.672 43.540 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30075 To_network 37 419114.888 4576633.567 41.960 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30109 To_network 62 419024.129 4576707.383 47.900 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30069 To_network 20607 418989.391 4576659.108 48.400 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30112 To_network 83 419108.194 4576571.276 44.300 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30076 To_network 37 419126.410 4576627.518 41.220 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30017 To_network 112 418940.733 4576959.672 58.060 0.295 0.565 0.800 W/O 1.600 0.700 0.000 0.000 90 +30019 To_network 112 418964.258 4576923.569 57.020 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30020 To_network 113 418978.373 4576899.708 56.190 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30021 To_network 113 418984.518 4576909.550 56.160 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30022 To_network 113 418983.942 4576890.106 55.620 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30023 To_network 113 418989.943 4576886.938 55.620 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30024 To_network 114 419000.889 4576884.441 54.860 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30025 To_network 114 419008.235 4576893.755 54.730 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30026 To_network 114 419025.902 4576881.705 53.290 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30027 To_network 115 419046.210 4576868.070 52.560 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30028 To_network 116 419074.920 4576848.674 50.680 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30029 To_network 116 419094.220 4576835.231 49.420 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30030 To_network 117 419094.124 4576821.597 49.010 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30031 To_network 117 419117.168 4576819.964 47.460 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30032 To_network 118 419139.253 4576805.177 45.990 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30033 To_network 118 419133.204 4576795.383 46.260 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30034 To_network 119 419179.197 4576765.617 43.010 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30035 To_network 120 419223.846 4576734.123 39.760 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30036 To_network 120 419230.567 4576743.629 39.510 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30037 To_network 43 419332.348 4576651.066 31.900 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30038 To_network 44 419366.050 4576636.279 29.700 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30039 To_network 44 419374.308 4576613.523 29.340 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30040 To_network 124 419427.407 4576582.317 26.820 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30041 To_network 124 419419.149 4576573.003 27.350 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30042 To_network 125 419467.687 4576539.156 24.380 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30043 To_network 123 419505.134 4576528.354 22.900 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30044 To_network 123 419498.029 4576519.136 23.250 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30045 To_network 234 419553.912 4576495.995 20.950 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30046 To_network 234 419547.959 4576486.009 21.000 0.295 0.565 0.800 W/O 1.600 0.700 0.000 0.000 90 +30047 To_network 20587 419585.070 4576475.303 19.670 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30048 To_network 20587 419579.693 4576465.317 19.860 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30049 To_network 123 419490.011 4576483.945 23.490 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30050 To_network 131 419446.706 4576446.017 25.470 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30051 To_network 127 419325.866 4576339.724 31.000 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30052 To_network 126 419299.029 4576316.151 32.180 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30053 To_network 95 419222.261 4576222.148 35.080 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30054 To_network 100 419269.983 4576263.821 32.870 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30055 To_network 129 419391.735 4576374.003 28.080 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30056 To_network 94 419147.751 4576226.421 37.090 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30057 To_network 92 419134.092 4576266.629 38.490 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30058 To_network 92 419122.858 4576259.140 38.450 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30059 To_network 91 419089.635 4576325.201 40.870 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30060 To_network 90 419070.431 4576327.794 41.290 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30061 To_network 78 418992.223 4576405.185 47.380 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30062 To_network 77 418966.778 4576406.145 48.220 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30066 To_network 52 418926.306 4576686.185 51.420 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30067 To_network 35 418971.435 4576662.949 49.710 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30068 To_network 35 418972.587 4576676.295 49.490 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30077 To_network 41 419253.060 4576615.611 35.320 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30079 To_network 43 419336.020 4576624.157 31.150 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30080 To_network 40 419234.432 4576646.482 36.210 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30081 To_network 40 419216.956 4576643.985 36.900 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30082 To_network 40 419211.195 4576595.591 38.360 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30083 To_network 101 419201.881 4576507.062 39.970 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30084 To_network 101 419224.446 4576508.310 39.330 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30085 To_network 88 419205.338 4576478.640 39.690 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30086 To_network 88 419200.441 4576491.506 40.010 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30087 To_network 87 419120.745 4576510.902 45.360 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30088 To_network 86 419089.443 4576503.221 47.200 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30089 To_network 82 419059.821 4576502.837 48.610 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30090 To_network 82 418999.425 4576533.467 51.410 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30091 To_network 68 418958.233 4576560.352 53.300 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30092 To_network 67 418949.207 4576566.882 53.350 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30093 To_network 67 418951.607 4576572.067 52.420 0.295 0.565 0.800 W/O 1.600 0.700 0.000 0.000 90 +30094 To_network 71 418975.612 4576620.268 49.650 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30095 To_network 71 418968.699 4576619.308 49.930 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30096 To_network 35 418975.540 4576655.675 49.410 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30097 To_network 35 418982.165 4576655.291 48.930 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30098 To_network 31 418865.193 4576816.215 57.650 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30099 To_network 54 418922.703 4576804.383 54.550 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30100 To_network 57 418942.248 4576801.013 53.670 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30101 To_network 58 418976.021 4576793.824 51.960 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30102 To_network 59 419034.979 4576782.038 50.140 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30103 To_network 59 419041.412 4576784.342 49.810 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30104 To_network 59 419048.182 4576782.182 49.810 0.295 0.565 0.800 W/O 1.600 0.700 0.000 0.000 90 +30105 To_network 59 419068.394 4576824.142 50.230 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30106 To_network 116 419078.476 4576827.119 50.070 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30107 To_network 116 419071.850 4576836.625 50.400 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30108 To_network 61 419036.035 4576769.844 49.850 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30113 To_network 86 419094.367 4576505.791 46.990 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30114 To_network 80 419120.292 4576462.774 44.350 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30115 To_network 79 419105.505 4576427.247 44.070 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30120 To_network 68 418978.328 4576512.800 53.310 0.295 0.565 0.800 W/O 1.600 0.700 0.000 0.000 90 +30121 To_network 68 418983.993 4576532.388 52.150 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30124 To_network 98 419201.909 4576395.224 39.900 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30125 To_network 97 419199.796 4576352.976 39.210 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30126 To_network 96 419216.407 4576315.624 37.270 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30127 To_network 98 419219.384 4576393.688 39.530 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30129 To_network 110 419226.946 4576433.776 39.140 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30130 To_network 107 419355.611 4576511.936 30.950 0.475 0.975 0.800 W/O 1.600 0.700 0.000 0.000 90 +30131 To_network 106 419382.689 4576539.541 29.490 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30132 To_network 45 419406.166 4576576.461 27.910 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30133 To_network 45 419411.639 4576571.948 27.650 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30134 To_network 46 418854.319 4576642.066 55.020 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30135 To_network 82 419022.257 4576526.171 50.180 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30136 To_network 84 419104.641 4576523.194 46.120 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +30913 To_network 31 418842.001 4576854.207 60.250 1.000 0.325 0.800 W/O 1.600 0.700 0.000 0.000 90 +30914 To_network 125 419457.749 4576557.736 25.290 1.000 0.325 0.800 W/O 1.600 0.700 0.000 0.000 90 +30915 To_network 125 419452.612 4576550.966 25.340 1.000 0.195 0.800 W/O 1.600 0.700 0.000 0.000 90 +30917 To_network 39 419191.895 4576624.589 37.920 1.000 0.195 0.800 W/O 1.600 0.700 0.000 0.000 90 +30918 To_network 59 419033.275 4576779.037 50.050 1.000 0.325 0.800 W/O 1.600 0.700 0.000 0.000 90 +49812 To_network 18842 418508.580 4577581.405 36.780 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49813 To_network 18842 418518.491 4577582.852 36.910 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49814 To_network 18842 418501.779 4577622.282 38.240 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49815 To_network 18842 418511.618 4577623.873 38.150 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49816 To_network 18843 418601.331 4577602.458 33.940 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49817 To_network 18843 418615.222 4577605.208 34.090 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49818 To_network 18840 418593.806 4577648.038 37.140 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49819 To_network 18840 418607.408 4577650.353 37.030 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49820 To_network 18848 418488.177 4577581.043 38.220 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49821 To_network 18844 418637.939 4577596.526 32.380 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49822 To_network 18844 418640.254 4577580.030 32.370 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49823 To_network 20582 418690.609 4577605.497 30.970 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49824 To_network 20582 418693.937 4577589.291 30.770 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49825 To_network 20575 418699.291 4577623.873 31.580 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49826 To_network 18839 418692.056 4577672.347 34.530 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49827 To_network 18838 418681.348 4577729.503 37.040 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49828 To_network 18858 418672.088 4577787.960 37.570 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49829 To_network 18912 418668.326 4577811.980 37.170 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49830 To_network 18878 418657.618 4577874.779 34.820 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49831 To_network 18881 418651.251 4577901.403 34.030 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49832 To_network 18880 418640.833 4577961.887 31.770 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49833 To_network 18886 418638.229 4577986.196 30.940 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49834 To_network 18885 418629.257 4578044.075 29.450 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49983 To_network 18874 418446.495 4577939.649 33.270 1.000 0.475 0.800 W/O 1.600 0.700 0.000 0.000 90 +49984 To_network 18870 418341.119 4577922.212 33.970 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49985 To_network 18868 418323.900 4577903.836 35.680 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49986 To_network 18861 418330.701 4577862.163 38.130 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +49987 To_network 18867 418335.766 4577832.355 39.740 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49988 To_network 18866 418348.499 4577793.721 42.480 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49989 To_network 18866 418366.731 4577760.296 44.610 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49990 To_network 18852 418394.223 4577717.755 45.760 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49991 To_network 18833 418431.411 4577679.989 43.600 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49992 To_network 18833 418434.305 4577664.796 44.410 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49993 To_network 18834 418485.672 4577687.224 42.820 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49994 To_network 18834 418487.409 4577673.767 42.840 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49995 To_network 18835 418533.856 4577695.038 41.510 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49996 To_network 18835 418536.316 4577681.870 41.540 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49999 To_network 18837 418610.546 4577706.469 39.070 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50000 To_network 18837 418613.151 4577690.697 39.270 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50001 To_network 18838 418672.332 4577716.308 37.150 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50002 To_network 18838 418675.515 4577701.549 37.200 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50003 To_network 18836 418584.356 4577738.447 39.990 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50004 To_network 18836 418592.170 4577739.894 39.980 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50005 To_network 18834 418486.540 4577722.675 43.020 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50006 To_network 18834 418493.341 4577723.977 42.900 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50007 To_network 18853 418393.211 4577747.273 44.970 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50008 To_network 18853 418391.908 4577757.402 44.670 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50010 To_network 18854 418435.028 4577755.666 43.710 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50011 To_network 18862 418473.952 4577773.753 42.480 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50012 To_network 18855 418493.486 4577765.505 42.230 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50013 To_network 18855 418492.039 4577772.595 41.990 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50014 To_network 18856 418540.513 4577781.132 41.030 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50015 To_network 18856 418541.525 4577774.476 41.010 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50016 To_network 18911 418586.092 4577792.564 39.900 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50017 To_network 18857 418591.301 4577782.435 39.840 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50018 To_network 18858 418635.434 4577797.628 38.320 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50019 To_network 18858 418636.881 4577790.683 38.830 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50020 To_network 18911 418575.240 4577799.075 39.610 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50021 To_network 18911 418584.211 4577801.101 39.390 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50022 To_network 18876 418567.137 4577845.089 38.040 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50023 To_network 18876 418575.963 4577846.680 38.150 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50024 To_network 18876 418550.063 4577888.498 37.310 1.000 0.124 0.800 W/O 1.600 0.700 0.000 0.000 90 +50025 To_network 18960 418568.439 4577902.678 36.210 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50026 To_network 18877 418579.002 4577877.935 36.790 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50027 To_network 18877 418577.989 4577887.919 36.680 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50028 To_network 18878 418630.659 4577891.537 35.260 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50029 To_network 18878 418631.817 4577882.421 35.190 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50030 To_network 18876 418527.490 4577886.906 37.480 1.000 0.124 0.800 W/O 1.600 0.700 0.000 0.000 90 +50031 To_network 18875 418513.599 4577874.173 37.470 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50032 To_network 18862 418467.730 4577814.123 40.680 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50033 To_network 18864 418466.283 4577827.002 40.250 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50034 To_network 18862 418477.135 4577820.924 40.470 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50035 To_network 18863 418419.690 4577816.005 41.670 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50036 To_network 18863 418420.558 4577810.217 41.850 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50037 To_network 18860 418380.188 4577801.535 42.770 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50038 To_network 18863 418370.204 4577804.718 42.590 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50039 To_network 18861 418378.596 4577813.111 42.000 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50040 To_network 18860 418378.596 4577763.335 44.440 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50041 To_network 18861 418361.956 4577848.272 38.890 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50042 To_network 18861 418371.795 4577850.153 38.770 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50043 To_network 18870 418355.010 4577909.769 33.870 1.000 0.325 0.800 W/O 1.600 0.700 0.000 0.000 90 +50044 To_network 18865 418393.500 4577869.109 37.810 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50045 To_network 18865 418395.092 4577859.993 38.290 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50046 To_network 18864 418440.093 4577876.922 37.820 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50047 To_network 18864 418441.684 4577867.662 37.950 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50048 To_network 18864 418460.784 4577868.240 37.950 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50049 To_network 18864 418469.466 4577869.398 37.840 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50050 To_network 18874 418451.958 4577919.753 34.170 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50058 To_network 18871 418391.764 4577975.751 34.810 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50059 To_network 18872 418434.160 4578006.426 33.450 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50060 To_network 18887 418476.267 4578033.051 32.080 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50061 To_network 18883 418525.464 4578055.624 30.390 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50062 To_network 18884 418578.279 4578072.987 29.450 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50009 To_network 18854 418433.726 4577764.492 43.710 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50051 To_network 18874 418461.508 4577921.344 34.140 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50052 To_network 18879 418559.034 4577952.454 32.340 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50053 To_network 18882 418540.078 4578001.507 31.450 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50054 To_network 18882 418548.905 4578003.532 31.470 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50055 To_network 18872 418440.816 4577988.050 33.180 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50056 To_network 18872 418449.787 4577990.076 33.270 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +50057 To_network 18870 418342.566 4577944.785 36.660 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +10119 To_network 73 418938.384 4576452.404 52.840 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +10063 To_network 76 418940.661 4576439.176 51.980 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +10064 To_network 76 418919.825 4576437.352 52.980 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +10065 To_network 65 418881.033 4576462.317 55.690 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +10116 To_network 75 419066.233 4576368.291 43.690 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +10117 To_network 75 419071.899 4576365.603 43.310 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +10118 To_network 73 418932.959 4576456.101 53.070 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30009 To_network 34 418841.185 4576666.670 54.890 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +100012 To_network 20607 419018.117 4576678.191 47.400 0.364 0.780 0.800 W/O 1.600 0.700 0.000 0.000 90 +100013 To_network 63 419026.748 4576651.486 46.400 0.364 0.780 0.800 W/O 1.600 0.700 0.000 0.000 90 +30018 To_network 112 418926.282 4576934.563 59.040 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30122 To_network 98 419203.109 4576424.990 39.810 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30123 To_network 110 419220.584 4576425.471 39.570 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30128 To_network 110 419226.682 4576440.354 39.060 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +30014 To_network 48 418851.483 4576524.225 58.360 0.300 0.640 0.800 W/O 1.600 0.700 0.000 0.000 90 +49998 To_network 18836 418586.092 4577689.973 40.020 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 +49997 To_network 18836 418584.066 4577703.285 40.100 0.345 0.776 0.800 W/O 1.600 0.700 0.000 0.000 90 From 720ec7429ca15f323aba5a2f737f00f74e07168b Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Fri, 21 Oct 2022 16:41:05 +0200 Subject: [PATCH 16/36] Enhancement: editable combo catalog_id for change feature type/replace feature tools --- core/toolbars/edit/feature_replace_button.py | 1 + core/toolbars/edit/featuretype_change_button.py | 2 ++ core/ui/toolbars/edit/feature_replace.ui | 3 +++ core/ui/toolbars/edit/featuretype_change.ui | 6 +++++- lib/tools_qt.py | 2 +- 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/toolbars/edit/feature_replace_button.py b/core/toolbars/edit/feature_replace_button.py index cc5bd4638..20d098f0d 100644 --- a/core/toolbars/edit/feature_replace_button.py +++ b/core/toolbars/edit/feature_replace_button.py @@ -494,5 +494,6 @@ def _edit_change_elem_type_get_value(self, index): rows = tools_db.get_rows(sql) tools_qt.fill_combo_values(self.dlg_replace.featurecat_id, rows) + tools_qt.set_autocompleter(self.dlg_replace.featurecat_id) # endregion \ No newline at end of file diff --git a/core/toolbars/edit/featuretype_change_button.py b/core/toolbars/edit/featuretype_change_button.py index d6f5c5c01..3df560bac 100644 --- a/core/toolbars/edit/featuretype_change_button.py +++ b/core/toolbars/edit/featuretype_change_button.py @@ -273,6 +273,7 @@ def _change_elem_type(self, feature): featurecat_id = tools_gw.get_config_parser("btn_featuretype_change", "featurecat_id", "user", "session") if featurecat_id not in (None, "None"): tools_qt.set_combo_value(self.dlg_change.featurecat_id, featurecat_id, 1, add_new=False) + tools_qt.set_autocompleter(self.dlg_change.featurecat_id) # Get feature type from current feature feature_type = feature.attribute(self.feature_edit_type) @@ -318,6 +319,7 @@ def _filter_catalog(self): featurecat_id = tools_gw.get_config_parser("btn_featuretype_change", "featurecat_id", "user", "session") if featurecat_id not in (None, "None"): tools_qt.set_combo_value(self.dlg_change.featurecat_id, featurecat_id, 1, add_new=False) + tools_qt.set_autocompleter(self.dlg_change.featurecat_id) def _featuretype_change(self, event): diff --git a/core/ui/toolbars/edit/feature_replace.ui b/core/ui/toolbars/edit/feature_replace.ui index fd14aabba..b4a66abe0 100644 --- a/core/ui/toolbars/edit/feature_replace.ui +++ b/core/ui/toolbars/edit/feature_replace.ui @@ -256,6 +256,9 @@ 0 + + true + true diff --git a/core/ui/toolbars/edit/featuretype_change.ui b/core/ui/toolbars/edit/featuretype_change.ui index 52b25de10..369c0a372 100644 --- a/core/ui/toolbars/edit/featuretype_change.ui +++ b/core/ui/toolbars/edit/featuretype_change.ui @@ -210,7 +210,11 @@ - + + + true + + diff --git a/lib/tools_qt.py b/lib/tools_qt.py index 6f243391d..317e8eaeb 100644 --- a/lib/tools_qt.py +++ b/lib/tools_qt.py @@ -395,7 +395,7 @@ def set_combo_value(combo, value, item1, add_new=True): for i in range(0, combo.count()): elem = combo.itemData(i) - if value == str(elem[item1]): + if elem is not None and value == str(elem[item1]): combo.setCurrentIndex(i) return True From e8f813e6ea8b86de1beed317653757916b0fcd8a Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 24 Oct 2022 10:49:46 +0200 Subject: [PATCH 17/36] Enhancement: add actionEdit to dimensioning form --- core/shared/dimensioning.py | 28 ++++++++++++++++++++++++--- core/ui/toolbars/edit/dimensioning.ui | 21 +++++++++++++++++++- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/core/shared/dimensioning.py b/core/shared/dimensioning.py index 31d9b287f..feec1f3e6 100644 --- a/core/shared/dimensioning.py +++ b/core/shared/dimensioning.py @@ -70,6 +70,11 @@ def open_dimensioning_form(self, qgis_feature=None, layer=None, db_return=None, else: self.fid = int(db_return['body']['feature']['id']) # ACTION SIGNALS + action_edit = self.dlg_dim.findChild(QAction, "actionEdit") + action_edit.setChecked(layer.isEditable()) + action_edit.triggered.connect(partial(self._manage_edition, action_edit, qgis_feature, layer)) + tools_gw.add_icon(action_edit, "101") + action_snapping = self.dlg_dim.findChild(QAction, "actionSnapping") action_snapping.triggered.connect(partial(self._snapping, action_snapping)) tools_gw.add_icon(action_snapping, "103") @@ -88,7 +93,7 @@ def open_dimensioning_form(self, qgis_feature=None, layer=None, db_return=None, # WIDGETS SIGNALS self.dlg_dim.btn_accept.clicked.connect( - partial(self._save_dimensioning, qgis_feature, layer)) + partial(self._save_dimensioning, qgis_feature, layer, True)) self.dlg_dim.btn_cancel.clicked.connect(partial(self._cancel_dimensioning, action_snapping, action_orientation)) self.dlg_dim.key_escape.connect(partial(tools_gw.close_dialog, self.dlg_dim)) self.dlg_dim.dlg_closed.connect(partial(self._cancel_dimensioning, action_snapping, action_orientation)) @@ -161,7 +166,7 @@ def _cancel_dimensioning(self, action_snapping, action_orientation): tools_gw.close_dialog(self.dlg_dim) - def _save_dimensioning(self, qgis_feature, layer): + def _save_dimensioning(self, qgis_feature, layer, close_dlg=True): # Upsert feature into db layer.updateFeature(qgis_feature) @@ -204,7 +209,8 @@ def _save_dimensioning(self, qgis_feature, layer): tools_gw.execute_procedure('gw_fct_setdimensioning', body) # Close dialog - tools_gw.close_dialog(self.dlg_dim) + if close_dlg: + tools_gw.close_dialog(self.dlg_dim) def _deactivate_signals(self, action, emit_point=None): @@ -227,6 +233,22 @@ def _deactivate_signals(self, action, emit_point=None): return False + def _manage_edition(self, action, qgis_feature, layer): + + if action.isChecked(): + self.layer_dimensions.startEditing() + else: + # ask if want to save changes + # if so: self.layer_dimensions.commitChanges() + # else: self.layer_dimensions.rollBack() + msg = 'Are you sure to save this feature?' + answer = tools_qt.show_question(msg, "Save feature", None) + if not answer: + tools_qt.set_action_checked(action, True) + return + self._save_dimensioning(qgis_feature, layer, close_dlg=False) + + def _snapping(self, action): # Set active layer and set signals diff --git a/core/ui/toolbars/edit/dimensioning.ui b/core/ui/toolbars/edit/dimensioning.ui index 33049f0f6..c293113d1 100644 --- a/core/ui/toolbars/edit/dimensioning.ui +++ b/core/ui/toolbars/edit/dimensioning.ui @@ -105,10 +105,11 @@ false + + - @@ -146,6 +147,24 @@ true + + + true + + + + ../icons/101.png../icons/101.png + + + edit + + + Edit + + + true + + From 36e29dbdd8c9fb55688ff262fc3335ea402e083f Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 24 Oct 2022 15:46:09 +0200 Subject: [PATCH 18/36] Add tooltips to some doc dlg widgets --- i18n/giswater_en_US.qm | Bin 144320 -> 144716 bytes i18n/giswater_en_US.ts | 2624 ++++++++++++++++++++-------------------- 2 files changed, 1316 insertions(+), 1308 deletions(-) diff --git a/i18n/giswater_en_US.qm b/i18n/giswater_en_US.qm index b5a0d31381c674a2b4b4fd06021f309d6c22e8ac..d6d2c8c478e99211b0bd98318659ec2214146146 100644 GIT binary patch delta 12126 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 delta 11857 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 L admin_visitclass - lbl_viewname - View name: + lbl_visit_type + Visit type: - tooltip_lbl_viewname + tooltip_lbl_visit_type None - lbl_feat_type - Feature type: + btn_param_update + Update - tooltip_lbl_feat_type + tooltip_btn_param_update None - lbl_class_id - Class id: + lbl_active + Active: - tooltip_lbl_class_id + tooltip_lbl_active None - lbl_visit_type - Visit type: + lbl_multi_event + Multi event: - tooltip_lbl_visit_type + tooltip_lbl_multi_event None - btn_cancel - Cancel + lbl_multi_feat + Multi feature: - tooltip_btn_cancel + tooltip_lbl_multi_feat None - btn_class_ok - Accept + lbl_param_opt + Param options: - tooltip_btn_class_ok + tooltip_lbl_param_opt None - dlg_main_visitclass - Manage visit class + btn_param_create + Create - tooltip_dlg_main_visitclass + tooltip_btn_param_create None - lbl_class_name - Class name: + lbl_descript + Descript: - tooltip_lbl_class_name + tooltip_lbl_descript None - lbl_active - Active: + btn_cancel + Cancel - tooltip_lbl_active + tooltip_btn_cancel None - lbl_multi_event - Multi event: + btn_class_cancel + Cancel - tooltip_lbl_multi_event + tooltip_btn_class_cancel None - lbl_multi_feat - Multi feature: + btn_ok + Accept - tooltip_lbl_multi_feat + tooltip_btn_ok None - lbl_param_opt - Param options: + btn_class_ok + Accept - tooltip_lbl_param_opt + tooltip_btn_class_ok None - lbl_descript - Descript: + dlg_main_visitclass + Manage visit class - tooltip_lbl_descript + tooltip_dlg_main_visitclass None - btn_class_cancel - Cancel + lbl_viewname + View name: - tooltip_btn_class_cancel + tooltip_lbl_viewname None - btn_ok - Accept + lbl_feat_type + Feature type: - tooltip_btn_ok + tooltip_lbl_feat_type None - btn_param_create - Create + lbl_class_id + Class id: - tooltip_btn_param_create + tooltip_lbl_class_id None - btn_param_update - Update + btn_param_delete + Delete - tooltip_btn_param_update + tooltip_btn_param_delete None - btn_param_delete - Delete + lbl_class_name + Class name: - tooltip_btn_param_delete + tooltip_lbl_class_name None admin_visitparam - lbl_form_type - Form type: + lbl_parameter_name + Parameter name: - tooltip_lbl_form_type + tooltip_lbl_parameter_name None - btn_cancel - Cancel + lbl_data_type + Data type: - tooltip_btn_cancel + tooltip_lbl_data_type None - lbl_code - Code: + lbl_form_type + Form type: - tooltip_lbl_code + tooltip_lbl_form_type None - lbl_default_value - Default value: + btn_cancel + Cancel - tooltip_lbl_default_value + tooltip_btn_cancel None - lbl_descript - Descript: + btn_ok + Accept - tooltip_lbl_descript + tooltip_btn_ok None @@ -2539,91 +2539,91 @@ None - lbl_data_type - Data type: + lbl_query_text + Query text: - tooltip_lbl_data_type + tooltip_lbl_query_text None - lbl_parameter_name - Parameter name: + lbl_mandatory + Mandatory: - tooltip_lbl_parameter_name + tooltip_lbl_mandatory None - lbl_query_text - Query text: + grb_params + Parameters - tooltip_lbl_query_text + tooltip_grb_params None - lbl_mandatory - Mandatory: + lbl_editable + Editable: - tooltip_lbl_mandatory + tooltip_lbl_editable None - lbl_editable - Editable: + lbl_parameter_type + Parameter type: - tooltip_lbl_editable + tooltip_lbl_parameter_type None - grb_params - Parameters + lbl_enabled + Enabled: - tooltip_grb_params + tooltip_lbl_enabled None - lbl_short_descript - Short descript: + lbl_code + Code: - tooltip_lbl_short_descript + tooltip_lbl_code None - lbl_parameter_type - Parameter type: + lbl_default_value + Default value: - tooltip_lbl_parameter_type + tooltip_lbl_default_value None - lbl_widgettype - Widget type: + lbl_descript + Descript: - tooltip_lbl_widgettype + tooltip_lbl_descript None - btn_ok - Accept + lbl_short_descript + Short descript: - tooltip_btn_ok + tooltip_lbl_short_descript None - lbl_enabled - Enabled: + lbl_widgettype + Widget type: - tooltip_lbl_enabled + tooltip_lbl_widgettype None @@ -2634,59 +2634,59 @@ Arc fusion - lbl_enddate - End date: + dlg_arc_fusion + Arc fusion - tooltip_lbl_enddate + tooltip_dlg_arc_fusion None - tab_config - Arc fusion + btn_cancel + Cancel - tooltip_tab_config + tooltip_btn_cancel None - tab_loginfo - Info log + lbl_enddate + End date: - tooltip_tab_loginfo + tooltip_lbl_enddate None - lbl_workcat_id_end - Workcat id end: + tab_config + Arc fusion - tooltip_lbl_workcat_id_end + tooltip_tab_config None - btn_cancel - Cancel + btn_accept + Accept - tooltip_btn_cancel + tooltip_btn_accept None - dlg_arc_fusion - Arc fusion + tab_loginfo + Info log - tooltip_dlg_arc_fusion + tooltip_tab_loginfo None - btn_accept - Accept + lbl_workcat_id_end + Workcat id end: - tooltip_btn_accept + tooltip_lbl_workcat_id_end None @@ -2696,14 +2696,6 @@ title CAD draw circle - - lbl_ins_radius - Insert radius: - - - tooltip_lbl_ins_radius - None - dlg_auxcircle CAD draw circle @@ -2728,6 +2720,14 @@ tooltip_chk_deleete_prev None + + lbl_ins_radius + Insert radius: + + + tooltip_lbl_ins_radius + None + btn_cancel Cancel @@ -2760,43 +2760,43 @@ None - btn_accept - Accept + lbl_disty + Dist Y: - tooltip_btn_accept + tooltip_lbl_disty None - dlg_auxpoint - CAD Add point + btn_accept + Accept - tooltip_dlg_auxpoint + tooltip_btn_accept None - btn_cancel - Cancel + lbl_distx + Dist X: - tooltip_btn_cancel + tooltip_lbl_distx None - lbl_disty - Dist Y: + dlg_auxpoint + CAD Add point - tooltip_lbl_disty + tooltip_dlg_auxpoint None - lbl_distx - Dist X: + btn_cancel + Cancel - tooltip_lbl_distx + tooltip_btn_cancel None @@ -2815,11 +2815,19 @@ Config - btn_cancel - Cancel + dlg_config + Config - tooltip_btn_cancel + tooltip_dlg_config + None + + + tab_admin + Admin + + + tooltip_tab_admin None @@ -2839,19 +2847,19 @@ None - tab_basic - Basic + btn_cancel + Cancel - tooltip_tab_basic + tooltip_btn_cancel None - - tab_admin - Admin + + tab_basic + Basic - tooltip_tab_admin + tooltip_tab_basic None @@ -2870,14 +2878,6 @@ tooltip_tab_featurecat None - - dlg_config - Config - - - tooltip_dlg_config - None - crm_trace @@ -2901,43 +2901,43 @@ None - lbl_import_label - Import label: + lbl_file + File: - tooltip_lbl_import_label + tooltip_lbl_file None - btn_cancel - Cancel + lbl_set_of_charac + Set of characters: - tooltip_btn_cancel + tooltip_lbl_set_of_charac None - dlg_csv2pg - Import CSV + lbl_delimiter + Delimiter: - tooltip_dlg_csv2pg + tooltip_lbl_delimiter None - tab_info - Info log + tab_preview + Preview - tooltip_tab_info + tooltip_tab_preview None - btn_file_csv - ... + dlg_csv2pg + Import CSV - tooltip_btn_file_csv + tooltip_dlg_csv2pg None @@ -2949,51 +2949,51 @@ None - lbl_file - File: + btn_cancel + Cancel - tooltip_lbl_file + tooltip_btn_cancel None - lbl_ignore_header - Ignore headers: + lbl_import_label + Import label: - tooltip_lbl_ignore_header + tooltip_lbl_import_label None - btn_accept - Accept + tab_info + Info log - tooltip_btn_accept + tooltip_tab_info None - lbl_set_of_charac - Set of characters: + btn_file_csv + ... - tooltip_lbl_set_of_charac + tooltip_btn_file_csv None - lbl_delimiter - Delimiter: + btn_accept + Accept - tooltip_lbl_delimiter + tooltip_btn_accept None - tab_preview - Preview + lbl_ignore_header + Ignore headers: - tooltip_tab_preview + tooltip_lbl_ignore_header None @@ -3020,19 +3020,19 @@ None - dlg_dialog_table - Dialog + btn_add_row + Add row - tooltip_dlg_dialog_table + tooltip_btn_add_row None - btn_add_row - Add row + dlg_dialog_table + Dialog - tooltip_btn_add_row + tooltip_dlg_dialog_table None @@ -3042,14 +3042,6 @@ title Dialog - - btn_accept - Accept - - - tooltip_btn_accept - None - btn_close Close @@ -3066,6 +3058,14 @@ tooltip_dlg_dialog_text None + + btn_accept + Accept + + + tooltip_btn_accept + None + btn_cancel Cancel @@ -3082,11 +3082,19 @@ Dimensioning - grb_other - Other + btn_cancel + Cancel - tooltip_grb_other + tooltip_btn_cancel + None + + + grb_depth + Measurements + + + tooltip_grb_depth None @@ -3097,6 +3105,14 @@ tooltip_grb_symbology None + + grb_other + Other + + + tooltip_grb_other + None + btn_accept Accept @@ -3113,28 +3129,28 @@ tooltip_dlg_dimensioning None + + + doc - btn_cancel - Cancel + title + Document - tooltip_btn_cancel - None + lbl_doc_id + Doc id: - grb_depth - Measurements + tooltip_lbl_doc_id + None - tooltip_grb_depth - None + tab_node + Node - - - doc - title - Document + tooltip_tab_node + None lbl_doc_type @@ -3145,35 +3161,35 @@ None - tab_gully - Gully + tab_connec + Connec - tooltip_tab_gully + tooltip_tab_connec None - tab_connec - Connec + tab_rel + Relations - tooltip_tab_connec + tooltip_tab_rel None - btn_snapping - None + btn_cancel + Cancel - tooltip_btn_snapping + tooltip_btn_cancel None - lbl_observ - Observations: + tab_gully + Gully - tooltip_lbl_observ + tooltip_tab_gully None @@ -3193,67 +3209,51 @@ None - _dlg_doc - Document - - - tooltip__dlg_doc - None - - - lbl_doc_id - Doc id: + lbl_observ + Observations: - tooltip_lbl_doc_id + tooltip_lbl_observ None - btn_path_url - Web + dlg_doc + Document - tooltip_btn_path_url + tooltip_dlg_doc None - btn_path_doc - ... - - - tooltip_btn_path_doc + btn_delete None - btn_insert + tooltip_btn_delete None - tooltip_btn_insert + btn_snapping None - tab_node - Node - - - tooltip_tab_node + tooltip_btn_snapping None - btn_cancel - Cancel + _dlg_doc + Document - tooltip_btn_cancel + tooltip__dlg_doc None - btn_delete + btn_insert None - tooltip_btn_delete + tooltip_btn_insert None @@ -3262,22 +3262,22 @@ tooltip_lbl_link - None + Link - dlg_doc - Document + btn_path_url + Web - tooltip_dlg_doc - None + tooltip_btn_path_url + Open explorer to allow selection of web path. It's also posible to just paste the path to the Link text box - tab_rel - Relations + btn_path_doc + ... - tooltip_tab_rel + tooltip_btn_path_doc None @@ -3288,6 +3288,14 @@ tooltip_btn_accept None + + path + None + + + tooltip_path + Fill it with some accesible folder path or web path + doc_manager @@ -3296,19 +3304,19 @@ Document management - lbl_doc_id - Filter by: Doc id + btn_cancel + Close - tooltip_lbl_doc_id + tooltip_btn_cancel None - btn_cancel - Close + btn_delete + Delete - tooltip_btn_cancel + tooltip_btn_delete None @@ -3320,11 +3328,11 @@ None - btn_delete - Delete + lbl_doc_id + Filter by: Doc id - tooltip_btn_delete + tooltip_lbl_doc_id None @@ -3335,67 +3343,67 @@ Element - lbl_elementcad_id - Elementcat id: + lbl_state_type + State type: - tooltip_lbl_elementcad_id + tooltip_lbl_state_type None - lbl_buildercat_id - Buildercat id: + lbl_num_element + Num element: - tooltip_lbl_buildercat_id + tooltip_lbl_num_element None - btn_cancel - Cancel + btn_snapping + None - tooltip_btn_cancel + tooltip_btn_snapping None - lbl_rotation - Rotation: + tab_gully + Gully - tooltip_lbl_rotation + tooltip_tab_gully None - lbl_num_element - Num element: + lbl_element_type + Element type: - tooltip_lbl_num_element + tooltip_lbl_element_type None - tab_element + dlg_element Element - tooltip_tab_element + tooltip_dlg_element None - dlg_element - Element + btn_accept + Accept - tooltip_dlg_element + tooltip_btn_accept None - lbl_verified - Verified: + tab_connec + Connec - tooltip_lbl_verified + tooltip_tab_connec None @@ -3406,6 +3414,14 @@ tooltip_lbl_ownercat_id None + + lbl_verified + Verified: + + + tooltip_lbl_verified + None + lbl_expl_id Exploitation: @@ -3431,35 +3447,27 @@ None - lbl_location_type - Location type: + tab_node + Node - tooltip_lbl_location_type + tooltip_tab_node None - lbl_element_id - Element id: - - - tooltip_lbl_element_id + btn_insert None - lbl_workcat_id_end - Workcat id end: - - - tooltip_lbl_workcat_id_end + tooltip_btn_insert None - tab_relations - Relations + lbl_builtdate + Builtdate: - tooltip_tab_relations + tooltip_lbl_builtdate None @@ -3471,123 +3479,123 @@ None - lbl_builtdate - Builtdate: + tab_relations + Relations - tooltip_lbl_builtdate + tooltip_tab_relations None - btn_insert - None + lbl_location_type + Location type: - tooltip_btn_insert + tooltip_lbl_location_type None - tab_connec - Connec + tab_arc + Arc - tooltip_tab_connec + tooltip_tab_arc None - tab_node - Node + lbl_buildercat_id + Buildercat id: - tooltip_tab_node + tooltip_lbl_buildercat_id None - btn_snapping - None + btn_cancel + Cancel - tooltip_btn_snapping + tooltip_btn_cancel None - btn_accept - Accept + lbl_element_id + Element id: - tooltip_btn_accept + tooltip_lbl_element_id None - lbl_observ - Observations: + lbl_rotation + Rotation: - tooltip_lbl_observ + tooltip_lbl_rotation None - lbl_state - State: + lbl_workcat_id + Workcat id: - tooltip_lbl_state + tooltip_lbl_workcat_id None - lbl_code - Code: + lbl_workcat_id_end + Workcat id end: - tooltip_lbl_code + tooltip_lbl_workcat_id_end None - lbl_state_type - State type: + lbl_elementcad_id + Elementcat id: - tooltip_lbl_state_type + tooltip_lbl_elementcad_id None - lbl_element_type - Element type: + btn_add_geom + Add geom - tooltip_lbl_element_type + tooltip_btn_add_geom None - tab_gully - Gully + tab_element + Element - tooltip_tab_gully + tooltip_tab_element None - btn_add_geom - Add geom + lbl_code + Code: - tooltip_btn_add_geom + tooltip_lbl_code None - lbl_workcat_id - Workcat id: + lbl_state + State: - tooltip_lbl_workcat_id + tooltip_lbl_state None - tab_arc - Arc + lbl_observ + Observations: - tooltip_tab_arc + tooltip_lbl_observ None @@ -3598,19 +3606,19 @@ Element management - btn_delete - Delete + lbl_element_id + Filter by: Element id - tooltip_btn_delete + tooltip_lbl_element_id None - dlg_element_manager - Element management + btn_delete + Delete - tooltip_dlg_element_manager + tooltip_btn_delete None @@ -3622,46 +3630,46 @@ None - lbl_element_id - Filter by: Element id + dlg_element_manager + Element management - tooltip_lbl_element_id + tooltip_dlg_element_manager None epa_compare - dlg_selector - Selector + lbl_selector_date + Selector date: - tooltip_dlg_selector + tooltip_lbl_selector_date None - lbl_compare_date - Compare date: + btn_cancel + Cancel - tooltip_lbl_compare_date + tooltip_btn_cancel None - lbl_time_to_compare - Time (to compare): + dlg_selector + Selector - tooltip_lbl_time_to_compare + tooltip_dlg_selector None - lbl_result_name_to_show - Result name (to show): + lbl_selector_time + Selector time: - tooltip_lbl_result_name_to_show + tooltip_lbl_selector_time None @@ -3673,19 +3681,19 @@ None - lbl_selector_time - Selector time: + lbl_result_name_to_show + Result name (to show): - tooltip_lbl_selector_time + tooltip_lbl_result_name_to_show None - lbl_selector_date - Selector date: + btn_accept + Accept - tooltip_lbl_selector_date + tooltip_btn_accept None @@ -3697,27 +3705,27 @@ None - btn_accept - Accept + tab_result + Result - tooltip_btn_accept + tooltip_tab_result None - tab_time - Time + lbl_compare_date + Compare date: - tooltip_tab_time + tooltip_lbl_compare_date None - btn_cancel - Cancel + tab_time + Time - tooltip_btn_cancel + tooltip_tab_time None @@ -3737,11 +3745,11 @@ None - tab_result - Result + lbl_time_to_compare + Time (to compare): - tooltip_tab_result + tooltip_lbl_time_to_compare None @@ -3752,51 +3760,51 @@ Dialog - dlg_fastprint - Dialog + btn_preview + Preview - tooltip_dlg_fastprint + tooltip_btn_preview None - grb_option_values - Optional values: + btn_print + Print - tooltip_grb_option_values + tooltip_btn_print None - btn_preview - Preview + btn_close + Close - tooltip_btn_preview + tooltip_btn_close None - grb_map_options - Map options: + dlg_fastprint + Dialog - tooltip_grb_map_options + tooltip_dlg_fastprint None - btn_print - Print + grb_map_options + Map options: - tooltip_btn_print + tooltip_grb_map_options None - btn_close - Close + grb_option_values + Optional values: - tooltip_btn_close + tooltip_grb_option_values None @@ -3807,11 +3815,11 @@ Delete feature - dlg_feature_delete - Delete feature + btn_delete + Delete selected feature - tooltip_dlg_feature_delete + tooltip_btn_delete None @@ -3823,11 +3831,11 @@ None - btn_delete - Delete selected feature + tab_del_feature + Delete feature - tooltip_btn_delete + tooltip_tab_del_feature None @@ -3839,19 +3847,19 @@ Snapping - btn_delete_another - Delete another feature + dlg_feature_delete + Delete feature - tooltip_btn_delete_another + tooltip_dlg_feature_delete None - tab_del_feature - Delete feature + lbl_feature_type + Feature type: - tooltip_tab_del_feature + tooltip_lbl_feature_type None @@ -3862,14 +3870,6 @@ tooltip_tab_info_log None - - lbl_feature_type - Feature type: - - - tooltip_lbl_feature_type - None - btn_relations Show feature relations @@ -3886,6 +3886,14 @@ tooltip_lbl_feature_id None + + btn_delete_another + Delete another feature + + + tooltip_btn_delete_another + None + feature_end @@ -3894,27 +3902,35 @@ End feature - tab_node - Node + btn_insert + None - tooltip_tab_node + tooltip_btn_insert + Insert + + + btn_snapping None - lbl_workcat_date - Workcat date: + tooltip_btn_snapping + Snapping - tooltip_lbl_workcat_date + tab_node + Node + + + tooltip_tab_node None - btn_accept - Accept + lbl_state_type + State type end: - tooltip_btn_accept + tooltip_lbl_state_type None @@ -3926,59 +3942,51 @@ None - tab_workcat - Workcat + lbl_workcat_id_end + Workcat id end: - tooltip_tab_workcat + tooltip_lbl_workcat_id_end None - lbl_description - Description: - - - tooltip_lbl_description + btn_delete None - tab_elem - Elem - - - tooltip_tab_elem - None + tooltip_btn_delete + Delete - btn_cancel - Cancel + btn_accept + Accept - tooltip_btn_cancel + tooltip_btn_accept None - tab_gully - Gully + tab_workcat + Workcat - tooltip_tab_gully + tooltip_tab_workcat None - tab_connec - Connec + tab_arc + Arc - tooltip_tab_connec + tooltip_tab_arc None - btn_new_workcat - None + dlg_feature_end + End feature - tooltip_btn_new_workcat + tooltip_dlg_feature_end None @@ -3990,60 +3998,60 @@ None - dlg_feature_end - End feature + btn_new_workcat + None - tooltip_dlg_feature_end + tooltip_btn_new_workcat None - tab_arc - Arc + tab_connec + Connec - tooltip_tab_arc + tooltip_tab_connec None - btn_insert - None + tab_gully + Gully - tooltip_btn_insert - Insert + tooltip_tab_gully + None - btn_delete - None + lbl_workcat_date + Workcat date: - tooltip_btn_delete - Delete + tooltip_lbl_workcat_date + None - lbl_workcat_id_end - Workcat id end: + btn_cancel + Cancel - tooltip_lbl_workcat_id_end + tooltip_btn_cancel None - lbl_state_type - State type end: + tab_elem + Elem - tooltip_lbl_state_type + tooltip_tab_elem None - btn_snapping - None + lbl_description + Description: - tooltip_btn_snapping - Snapping + tooltip_lbl_description + None @@ -4061,35 +4069,35 @@ None - lbl_info - These connecs will be desconnected after dowgrading selected arcs: + btn_cancel + Cancel - tooltip_lbl_info + tooltip_btn_cancel None - dlg_feature_end_connec - Workcat end list + lbl_filter_by + Filter by arc id: - tooltip_dlg_feature_end_connec + tooltip_lbl_filter_by None - btn_cancel - Cancel + lbl_info + These connecs will be desconnected after dowgrading selected arcs: - tooltip_btn_cancel + tooltip_lbl_info None - lbl_filter_by - Filter by arc id: + dlg_feature_end_connec + Workcat end list - tooltip_lbl_filter_by + tooltip_dlg_feature_end_connec None @@ -4100,83 +4108,75 @@ Go2Epa - chk_only_check - Use result network geometry - - - tooltip_chk_only_check - None - - - lbl_inp_file - INP file: + lbl_result_name + Result name: - tooltip_lbl_inp_file + tooltip_lbl_result_name None - chk_exec - Execute EPA software + chk_import_result + Import result - tooltip_chk_exec + tooltip_chk_import_result None - btn_options - Options + dlg_go2epa + Go2Epa - tooltip_btn_options + tooltip_dlg_go2epa None - lbl_result_name - Result name: + btn_cancel + Cancel - tooltip_lbl_result_name + tooltip_btn_cancel None - btn_hs_ds - Selector + btn_options + Options - tooltip_btn_hs_ds + tooltip_btn_options None - chk_export - Export INP + chk_exec + Execute EPA software - tooltip_chk_export + tooltip_chk_exec None - lbl_counter - None + lbl_rpt_file + RPT file: - tooltip_lbl_counter + tooltip_lbl_rpt_file None - tab_loginfo - Info log + chk_export + Export INP - tooltip_tab_loginfo + tooltip_chk_export None - btn_cancel - Cancel + lbl_inp_file + INP file: - tooltip_btn_cancel + tooltip_lbl_inp_file None @@ -4187,14 +4187,6 @@ tooltip_tab_file_manager None - - btn_accept - Accept - - - tooltip_btn_accept - None - chk_recurrent Use iterative calls @@ -4204,19 +4196,19 @@ None - lbl_rpt_file - RPT file: + chk_only_check + Use result network geometry - tooltip_lbl_rpt_file + tooltip_chk_only_check None - dlg_go2epa - Go2Epa + btn_file_inp + ... - tooltip_dlg_go2epa + tooltip_btn_file_inp None @@ -4228,19 +4220,35 @@ None - chk_import_result - Import result + btn_hs_ds + Selector - tooltip_chk_import_result + tooltip_btn_hs_ds None - btn_file_inp - ... + tab_loginfo + Info log - tooltip_btn_file_inp + tooltip_tab_loginfo + None + + + btn_accept + Accept + + + tooltip_btn_accept + None + + + lbl_counter + None + + + tooltip_lbl_counter None @@ -4258,14 +4266,6 @@ tooltip_lbl_result_id None - - dlg_go2epa_manager - Epa result management - - - tooltip_dlg_go2epa_manager - None - btn_close Close @@ -4282,6 +4282,14 @@ tooltip_btn_delete None + + dlg_go2epa_manager + Epa result management + + + tooltip_dlg_go2epa_manager + None + go2epa_options @@ -4290,11 +4298,11 @@ Go2Epa - options - btn_cancel - Cancel + btn_accept + Accept - tooltip_btn_cancel + tooltip_btn_accept None @@ -4322,11 +4330,11 @@ None - btn_accept - Accept + btn_cancel + Cancel - tooltip_btn_accept + tooltip_btn_cancel None @@ -4345,19 +4353,19 @@ None - btn_accept - Accept + dlg_info_catalog + Catalog - tooltip_btn_accept + tooltip_dlg_info_catalog None - dlg_info_catalog - Catalog + btn_accept + Accept - tooltip_dlg_info_catalog + tooltip_btn_accept None @@ -4376,19 +4384,19 @@ None - lbl_hydrometer_id - Hydrometer id: + btn_accept + Accept - tooltip_lbl_hydrometer_id + tooltip_btn_accept None - btn_accept - Accept + lbl_hydrometer_id + Hydrometer id: - tooltip_btn_accept + tooltip_lbl_hydrometer_id None @@ -4407,99 +4415,99 @@ Section - lbl_cost_bulk + lbl_section_image None - tooltip_lbl_cost_bulk + tooltip_lbl_section_image None - dlg_info_crossect - Section + lbl_cost_b_right + None - tooltip_dlg_info_crossect + tooltip_lbl_cost_b_right None - lbl_cost_y_param + lbl_cost_width None - tooltip_lbl_cost_y_param + tooltip_lbl_cost_width None - lbl_cost_b_right + lbl_cost_fill None - tooltip_lbl_cost_b_right + tooltip_lbl_cost_fill None - lbl_section_image + lbl_cost_area None - tooltip_lbl_section_image + tooltip_lbl_cost_area None - lbl_cost_area + lbl_cost_b_left None - tooltip_lbl_cost_area + tooltip_lbl_cost_b_left None - lbl_cost_width + lbl_cost_exc None - tooltip_lbl_cost_width + tooltip_lbl_cost_exc None - btn_close - Close + lbl_cost_bulk + None - tooltip_btn_close + tooltip_lbl_cost_bulk None - lbl_cost_fill + lbl_cost_trench None - tooltip_lbl_cost_fill + tooltip_lbl_cost_trench None - lbl_cost_b_left - None + dlg_info_crossect + Section - tooltip_lbl_cost_b_left + tooltip_dlg_info_crossect None - lbl_cost_trench - None + btn_close + Close - tooltip_lbl_cost_trench + tooltip_btn_close None - lbl_cost_exc + lbl_cost_y_param None - tooltip_lbl_cost_exc + tooltip_lbl_cost_y_param None @@ -4514,163 +4522,171 @@ info_feature - tab_elements - Elements + lbl_type_doc + Type: - tooltip_tab_elements + tooltip_lbl_type_doc None - dlg_info_feature - None + tab_hydrometer + Hydrometer - tooltip_dlg_info_feature + tooltip_tab_hydrometer None - lbl_parameter_om - Parameter: + tab_om + OM - tooltip_lbl_parameter_om + tooltip_tab_om None - tab_plan - Plan + tab_documents + Documents - tooltip_tab_plan + tooltip_tab_documents None - btn_doc_new - None + tab_relations + Relations - tooltip_btn_doc_new + tooltip_tab_relations None - tab_data - Data + tab_rpt + Rpt - tooltip_tab_data + tooltip_tab_rpt None - btn_insert + btn_open_doc None - tooltip_btn_insert - Insert + tooltip_btn_open_doc + None - btn_doc_delete + btn_open_gallery None - tooltip_btn_doc_delete + tooltip_btn_open_gallery None - btn_doc_insert + btn_open_visit_doc None - tooltip_btn_doc_insert + tooltip_btn_open_visit_doc None - btn_open_visit_event - None + btn_cancel + Cancel - tooltip_btn_open_visit_event + tooltip_btn_cancel + Cancel + + + lbl_downstream_features + Downstream features: + + + tooltip_lbl_downstream_features None - lbl_doc_id - Doc id: + lbl_to_om + To: - tooltip_lbl_doc_id + tooltip_lbl_to_om None - tab_hydrometer - Hydrometer + lbl_param_type_om + Parameter type: - tooltip_tab_hydrometer + tooltip_lbl_param_type_om None - tab_relations - Relations + lbl_doc_id + Doc id: - tooltip_tab_relations + tooltip_lbl_doc_id None - btn_open_gallery + btn_open_visit_event None - tooltip_btn_open_gallery + tooltip_btn_open_visit_event None - btn_open_visit_doc - None + lbl_parameter_om + Parameter: - tooltip_btn_open_visit_doc + tooltip_lbl_parameter_om None - lbl_downstream_features - Downstream features: + btn_doc_insert + None - tooltip_lbl_downstream_features + tooltip_btn_doc_insert None - btn_delete + btn_doc_delete None - tooltip_btn_delete - Delete + tooltip_btn_doc_delete + None - lbl_to_doc - To: + lbl_from_om + From: - tooltip_lbl_to_doc + tooltip_lbl_from_om None - lbl_type_doc - Type: + btn_insert + None - tooltip_lbl_type_doc - None + tooltip_btn_insert + Insert - lbl_to_om - To: + tab_data + Data - tooltip_lbl_to_om + tooltip_tab_data None @@ -4682,99 +4698,91 @@ None - lbl_from_om - From: - - - tooltip_lbl_from_om + btn_delete None - btn_open_visit - None + tooltip_btn_delete + Delete - tooltip_btn_open_visit + btn_new_visit None - btn_accept - Accept - - - tooltip_btn_accept - Accept + tooltip_btn_new_visit + None - btn_cancel - Cancel + lbl_from_doc + From: - tooltip_btn_cancel - Cancel + tooltip_lbl_from_doc + None - btn_open_doc + btn_doc_new None - tooltip_btn_open_doc + tooltip_btn_doc_new None - tab_rpt - Rpt + tab_plan + Plan - tooltip_tab_rpt + tooltip_tab_plan None - tab_documents - Documents + dlg_info_feature + None - tooltip_tab_documents + tooltip_dlg_info_feature None - tab_om - OM + btn_accept + Accept - tooltip_tab_om - None + tooltip_btn_accept + Accept - lbl_param_type_om - Parameter type: + btn_open_visit + None - tooltip_lbl_param_type_om + tooltip_btn_open_visit None - btn_new_visit - None + lbl_to_doc + To: - tooltip_btn_new_visit + tooltip_lbl_to_doc None - btn_open_element - None + tab_connections + Connections - tooltip_btn_open_element + tooltip_tab_connections None - tab_hydrometer_val - Hydrometer values + tab_elements + Elements - tooltip_tab_hydrometer_val + tooltip_tab_elements None @@ -4786,27 +4794,27 @@ None - lbl_from_doc - From: + btn_open_element + None - tooltip_lbl_from_doc + tooltip_btn_open_element None - tab_connections - Connections + lbl_upstream_features + Upstream features: - tooltip_tab_connections + tooltip_lbl_upstream_features None - lbl_upstream_features - Upstream features: + tab_hydrometer_val + Hydrometer values - tooltip_lbl_upstream_features + tooltip_tab_hydrometer_val None @@ -4833,19 +4841,19 @@ None - btn_close - Close + btn_accept + Accept - tooltip_btn_close + tooltip_btn_accept None - btn_accept - Accept + btn_close + Close - tooltip_btn_accept + tooltip_btn_close None @@ -4856,35 +4864,35 @@ New workcat - lbl_builtdate - Built date: + lbl_workid_key_1 + Work id key 1: - tooltip_lbl_builtdate + tooltip_lbl_workid_key_1 None - lbl_workid_key_1 - Work id key 1: + lbl_workid_key_2 + Work id key 2: - tooltip_lbl_workid_key_1 + tooltip_lbl_workid_key_2 None - lbl_descript - Description: + lbl_link + Link: - tooltip_lbl_descript + tooltip_lbl_link None - lbl_workid_key_2 - Work id key 2: + lbl_builtdate + Built date: - tooltip_lbl_workid_key_2 + tooltip_lbl_builtdate None @@ -4896,27 +4904,27 @@ None - lbl_link - Link: + lbl_descript + Description: - tooltip_lbl_link + tooltip_lbl_descript None - btn_accept - Accept + btn_cancel + Cancel - tooltip_btn_accept + tooltip_btn_cancel None - btn_cancel - Cancel + btn_accept + Accept - tooltip_btn_cancel + tooltip_btn_accept None @@ -5173,51 +5181,51 @@ Mincut composer - btn_cancel - Cancel + lbl_template + Template: - tooltip_btn_cancel + tooltip_lbl_template None - lbl_template - Template: + dlg_mincut_composer + Mincut composer - tooltip_lbl_template + tooltip_dlg_mincut_composer None - lbl_rotation - Rotation: + lbl_title + Title: - tooltip_lbl_rotation + tooltip_lbl_title None - btn_ok - Open + lbl_rotation + Rotation: - tooltip_btn_ok + tooltip_lbl_rotation None - lbl_title - Title: + btn_cancel + Cancel - tooltip_lbl_title + tooltip_btn_cancel None - dlg_mincut_composer - Mincut composer + btn_ok + Open - tooltip_dlg_mincut_composer + tooltip_btn_ok None @@ -5228,51 +5236,51 @@ Mincut connec - btn_snapping + btn_delete None - tooltip_btn_snapping + tooltip_btn_delete None - lbl_search - Search by customer code: + dlg_mincut_connec + Mincut connec - tooltip_lbl_search + tooltip_dlg_mincut_connec None - btn_insert - None + btn_accept + Accept - tooltip_btn_insert + tooltip_btn_accept None - btn_accept - Accept + lbl_search + Search by customer code: - tooltip_btn_accept + tooltip_lbl_search None - btn_delete + btn_insert None - tooltip_btn_delete + tooltip_btn_insert None - dlg_mincut_connec - Mincut connec + btn_snapping + None - tooltip_dlg_mincut_connec + tooltip_btn_snapping None @@ -5283,35 +5291,43 @@ Mincut end - lbl_work_order - Work order: + lbl_municipality + Municipality: - tooltip_lbl_work_order + tooltip_lbl_municipality None - lbl_start_date - From: + btn_cancel + Cancel - tooltip_lbl_start_date + tooltip_btn_cancel None - lbl_street - Street: + lbl_mincut + Mincut: - tooltip_lbl_street + tooltip_lbl_mincut None - lbl_end_date - To: + dlg_mincut_end + Mincut end - tooltip_lbl_end_date + tooltip_dlg_mincut_end + None + + + btn_accept + Accept + + + tooltip_btn_accept None @@ -5355,51 +5371,43 @@ None - grb_close_mincut - Close mincut - - - tooltip_grb_close_mincut - None - - - btn_cancel - Cancel + lbl_street + Street: - tooltip_btn_cancel + tooltip_lbl_street None - lbl_mincut - Mincut: + lbl_end_date + To: - tooltip_lbl_mincut + tooltip_lbl_end_date None - dlg_mincut_end - Mincut end + lbl_start_date + From: - tooltip_dlg_mincut_end + tooltip_lbl_start_date None - lbl_municipality - Municipality: + grb_close_mincut + Close mincut - tooltip_lbl_municipality + tooltip_grb_close_mincut None - btn_accept - Accept + lbl_work_order + Work order: - tooltip_btn_accept + tooltip_lbl_work_order None @@ -5410,11 +5418,11 @@ Mincut hydrometer - btn_accept - Accept + lbl_ccc + Connec customer code: - tooltip_btn_accept + tooltip_lbl_ccc None @@ -5426,35 +5434,35 @@ None - btn_insert - None + dlg_mincut_hydrometer + Mincut hydrometer - tooltip_btn_insert + tooltip_dlg_mincut_hydrometer None - lbl_ccc - Connec customer code: + btn_insert + None - tooltip_lbl_ccc + tooltip_btn_insert None - dlg_mincut_hydrometer - Mincut hydrometer + lbl_hcc + Hydrometer customer code: - tooltip_dlg_mincut_hydrometer + tooltip_lbl_hcc None - lbl_hcc - Hydrometer customer code: + btn_accept + Accept - tooltip_lbl_hcc + tooltip_btn_accept None @@ -5465,11 +5473,11 @@ Mincut management - btn_cancel_mincut - Cancel mincut + btn_delete + Delete - tooltip_btn_cancel_mincut + tooltip_btn_delete None @@ -5496,22 +5504,6 @@ tooltip_lbl_date_to None - - dlg_mincut_manager - Mincut management - - - tooltip_dlg_mincut_manager - None - - - btn_delete - Delete - - - tooltip_btn_delete - None - btn_next_days Next days @@ -5552,6 +5544,14 @@ tooltip_lbl_state None + + dlg_mincut_manager + Mincut management + + + tooltip_dlg_mincut_manager + None + btn_cancel Close @@ -5560,6 +5560,14 @@ tooltip_btn_cancel None + + btn_cancel_mincut + Cancel mincut + + + tooltip_btn_cancel_mincut + None + nodetype_change @@ -5568,103 +5576,103 @@ Change node type - lbl_catalog_id - Catalog id: + dlg_nodetype_change + Change node type - tooltip_lbl_catalog_id + tooltip_dlg_nodetype_change None - lbl_node_type - Current node type: + lbl_custom_node_type + New node type: - tooltip_lbl_node_type + tooltip_lbl_custom_node_type None - lbl_custom_node_type - New node type: + lbl_node_type + Current node type: - tooltip_lbl_custom_node_type + tooltip_lbl_node_type None - btn_accept - Accept + btn_cancel + Cancel - tooltip_btn_accept + tooltip_btn_cancel None - dlg_nodetype_change - Change node type + lbl_catalog_id + Catalog id: - tooltip_dlg_nodetype_change + tooltip_lbl_catalog_id None - btn_cancel - Cancel + btn_accept + Accept - tooltip_btn_cancel + tooltip_btn_accept None plan_psector - btn_select_arc + btn_delete None - tooltip_btn_select_arc - Replace on service for planified arc + tooltip_btn_delete + Delete - btn_snapping + btn_arc_fusion None - tooltip_btn_snapping - Select features + tooltip_btn_arc_fusion + Arc fusion with planified arcs - btn_arc_fusion + btn_select_arc None - tooltip_btn_arc_fusion - Arc fusion with planified arcs + tooltip_btn_select_arc + Replace on service for planified arc - btn_set_to_arc + btn_insert None - tooltip_btn_set_to_arc - Set arc_id + tooltip_btn_insert + Insert - btn_delete + btn_set_to_arc None - tooltip_btn_delete - Delete + tooltip_btn_set_to_arc + Set arc_id - btn_insert + btn_snapping None - tooltip_btn_insert - Insert + tooltip_btn_snapping + Select features @@ -5673,6 +5681,14 @@ title Price result management + + btn_delete + Delete + + + tooltip_btn_delete + None + lbl_result_id Filter by: @@ -5705,14 +5721,6 @@ tooltip_btn_update_result None - - btn_delete - Delete - - - tooltip_btn_delete - None - profile @@ -5721,11 +5729,35 @@ Draw profile - lbl_sv - Vertical scale: + btn_draw + Draw profile + + + tooltip_btn_draw + None + + + btn_clear_profile + Clear profile + + + tooltip_btn_clear_profile + None + + + btn_export_pdf + Open composer + + + tooltip_btn_export_pdf + None + + + lbl_path + Path: - tooltip_lbl_sv + tooltip_lbl_path None @@ -5745,35 +5777,35 @@ None - lbl_rotation - Rotation: + lbl_sv + Vertical scale: - tooltip_lbl_rotation + tooltip_lbl_sv None - btn_clear_profile - Clear profile + lbl_rotation + Rotation: - tooltip_btn_clear_profile + tooltip_lbl_rotation None - btn_add_additional_point - None + lbl_additional_point + Additional point: - tooltip_btn_add_additional_point + tooltip_lbl_additional_point None - lbl_sh - Horizontal scale: + btn_close + Close - tooltip_lbl_sh + tooltip_btn_close None @@ -5785,51 +5817,43 @@ None - btn_draw - Draw profile + lbl_template + Template: - tooltip_btn_draw + tooltip_lbl_template None - btn_add_end_point - None + dlg_profile + Draw profile - tooltip_btn_add_end_point + tooltip_dlg_profile None - lbl_template - Template: + lbl_sh + Horizontal scale: - tooltip_lbl_template + tooltip_lbl_sh None - lbl_path - Path: - - - tooltip_lbl_path + btn_add_additional_point None - btn_close - Close - - - tooltip_btn_close + tooltip_btn_add_additional_point None - btn_update_path - ... + btn_load_profile + Load profile - tooltip_btn_update_path + tooltip_btn_load_profile None @@ -5849,27 +5873,19 @@ None - lbl_additional_point - Additional point: - - - tooltip_lbl_additional_point + btn_add_end_point None - btn_load_profile - Load profile - - - tooltip_btn_load_profile + tooltip_btn_add_end_point None - dlg_profile - Draw profile + btn_update_path + ... - tooltip_dlg_profile + tooltip_btn_update_path None @@ -5888,14 +5904,6 @@ tooltip_btn_save_profile None - - btn_export_pdf - Open composer - - - tooltip_btn_export_pdf - None - profile_list @@ -5912,19 +5920,19 @@ None - dlg_profile_list - Load profiles + btn_open + Open - tooltip_dlg_profile_list + tooltip_btn_open None - btn_open - Open + dlg_profile_list + Load profiles - tooltip_btn_open + tooltip_dlg_profile_list None @@ -5974,27 +5982,27 @@ Duplicate psector - dlg_psector_duplicate + tab_duplicate_psector Duplicate psector - tooltip_dlg_psector_duplicate + tooltip_tab_duplicate_psector None - btn_cancel - Cancel + tab_info_log + Info log - tooltip_btn_cancel + tooltip_tab_info_log None - tab_info_log - Info log + lbl_duplicate_psector + Duplicate psector: - tooltip_tab_info_log + tooltip_lbl_duplicate_psector None @@ -6006,19 +6014,19 @@ None - lbl_duplicate_psector - Duplicate psector: + btn_cancel + Cancel - tooltip_lbl_duplicate_psector + tooltip_btn_cancel None - tab_duplicate_psector + dlg_psector_duplicate Duplicate psector - tooltip_tab_duplicate_psector + tooltip_dlg_psector_duplicate None @@ -6045,43 +6053,43 @@ None - btn_delete - Delete + btn_duplicate + Duplicate - tooltip_btn_delete + tooltip_btn_duplicate None - btn_cancel - Close + lbl_psector_name + Filter by: - tooltip_btn_cancel + tooltip_lbl_psector_name None - btn_duplicate - Duplicate + btn_cancel + Close - tooltip_btn_duplicate + tooltip_btn_cancel None - lbl_psector_name - Filter by: + dlg_psector_manager + Psector management - tooltip_lbl_psector_name + tooltip_dlg_psector_manager None - dlg_psector_manager - Psector management + btn_delete + Delete - tooltip_dlg_psector_manager + tooltip_btn_delete None @@ -6092,51 +6100,51 @@ Psector rapport - btn_path - ... + chk_composer + Composer pdf file - tooltip_btn_path + tooltip_chk_composer None - chk_composer - Composer pdf file + lbl_detail_csv + Detail csv file: - tooltip_chk_composer + tooltip_lbl_detail_csv None - lbl_prices_list - Prices list csv file: + btn_cancel + Cancel - tooltip_lbl_prices_list + tooltip_btn_cancel None - btn_ok - Create + btn_path + ... - tooltip_btn_ok + tooltip_btn_path None - dlg_psector_rapport - Psector rapport + lbl_composer_disabled + None - tooltip_dlg_psector_rapport + tooltip_lbl_composer_disabled None - lbl_template - Template: + btn_ok + Create - tooltip_lbl_template + tooltip_btn_ok None @@ -6148,27 +6156,27 @@ None - lbl_composer_disabled - None + lbl_template + Template: - tooltip_lbl_composer_disabled + tooltip_lbl_template None - lbl_detail_csv - Detail csv file: + lbl_prices_list + Prices list csv file: - tooltip_lbl_detail_csv + tooltip_lbl_prices_list None - btn_cancel - Cancel + dlg_psector_rapport + Psector rapport - tooltip_btn_cancel + tooltip_dlg_psector_rapport None @@ -6179,19 +6187,19 @@ SearchPlus - lbl_msg - No results found + dlg_search + SearchPlus - tooltip_lbl_msg + tooltip_dlg_search None - dlg_search - SearchPlus + lbl_msg + No results found - tooltip_dlg_search + tooltip_lbl_msg None @@ -6202,19 +6210,19 @@ Workcat search - tab_init - Installed + lbl_feat_ini + Features installed with the selected workcat - tooltip_tab_init + tooltip_lbl_feat_ini None - tab_ended - Removed + dlg_search_workcat + Workcat search - tooltip_tab_ended + tooltip_dlg_search_workcat None @@ -6226,27 +6234,35 @@ None - btn_export_to_csv - Export to CSV + lbl_init + Filter by: - tooltip_btn_export_to_csv + tooltip_lbl_init None - lbl_init - Filter by: + lbl_feat_end + Features removed with the selected workcat - tooltip_lbl_init + tooltip_lbl_feat_end + None + + + tab_ended + Removed + + + tooltip_tab_ended None - lbl_feat_end - Features removed with the selected workcat + btn_export_to_csv + Export to CSV - tooltip_lbl_feat_end + tooltip_btn_export_to_csv None @@ -6297,14 +6313,6 @@ tooltip_tab_doc None - - lbl_feat_ini - Features installed with the selected workcat - - - tooltip_lbl_feat_ini - None - btn_state0 Activate @@ -6322,11 +6330,11 @@ None - dlg_search_workcat - Workcat search + tab_init + Installed - tooltip_dlg_search_workcat + tooltip_tab_init None @@ -6345,54 +6353,54 @@ None - btn_close - Close + dlg_selector + Selector - tooltip_btn_close + tooltip_dlg_selector None - dlg_selector - Selector + btn_close + Close - tooltip_dlg_selector + tooltip_btn_close None toolbox - dlg_toolbox - None + tab_loginfo + Info log - tooltip_dlg_toolbox + tooltip_tab_loginfo None - tab_loginfo - Info log + btn_run + Run - tooltip_tab_loginfo + tooltip_btn_run None - tab_config - Config + dlg_toolbox + None - tooltip_tab_config + tooltip_dlg_toolbox None - btn_run - Run + btn_close + Close - tooltip_btn_run + tooltip_btn_close None @@ -6404,11 +6412,11 @@ None - btn_close - Close + tab_config + Config - tooltip_btn_close + tooltip_tab_config None @@ -6442,11 +6450,11 @@ None - tab_visit - Visit + lbl_user_name + User name: - tooltip_tab_visit + tooltip_lbl_user_name None @@ -6490,27 +6498,35 @@ None - lbl_feature_type - Feature type: + btn_doc_insert + None - tooltip_lbl_feature_type + tooltip_btn_doc_insert None - btn_doc_insert + btn_doc_new None - tooltip_btn_doc_insert + tooltip_btn_doc_new None - btn_doc_new + btn_accept + Accept + + + tooltip_btn_accept None - tooltip_btn_doc_new + lbl_feature_type + Feature type: + + + tooltip_lbl_feature_type None @@ -6530,11 +6546,19 @@ None - btn_accept - Accept + tab_visit + Visit - tooltip_btn_accept + tooltip_tab_visit + None + + + tab_document + Document + + + tooltip_tab_document None @@ -6553,14 +6577,6 @@ tooltip_lbl_id None - - lbl_user_name - User name: - - - tooltip_lbl_user_name - None - btn_feature_delete None @@ -6570,11 +6586,11 @@ None - tab_relations - Relations + lbl_visitcat_id + Visit cat id: - tooltip_tab_relations + tooltip_lbl_visitcat_id None @@ -6602,19 +6618,19 @@ None - btn_open_doc - None + tab_relations + Relations - tooltip_btn_open_doc + tooltip_tab_relations None - lbl_visitcat_id - Visit cat id: + btn_open_doc + None - tooltip_lbl_visitcat_id + tooltip_btn_open_doc None @@ -6633,14 +6649,6 @@ tooltip_dlg_visit None - - lbl_code - Code: - - - tooltip_lbl_code - None - btn_feature_insert None @@ -6650,11 +6658,11 @@ None - tab_document - Document + lbl_code + Code: - tooltip_tab_document + tooltip_lbl_code None @@ -6695,6 +6703,14 @@ title Standard arc event + + lbl_position_value + Position value: + + + tooltip_lbl_position_value + None + lbl_value Value: @@ -6719,14 +6735,6 @@ tooltip_lbl_text None - - lbl_position_value - Position value: - - - tooltip_lbl_position_value - None - lbl_position_id Position id: @@ -6775,67 +6783,67 @@ Event - lbl_event_code - Event code: + lbl_value + Value: - tooltip_lbl_event_code + tooltip_lbl_value None - lbl_parameter_id - Parameter id: + lbl_visit_id + Visit id: - tooltip_lbl_parameter_id + tooltip_lbl_visit_id None - lbl_position_value - Position value: + lbl_xcoord + X coord: - tooltip_lbl_position_value + tooltip_lbl_xcoord None - lbl_position_id - Position id: + btn_close + Close - tooltip_lbl_position_id + tooltip_btn_close None - lbl_xcoord - X coord: + tab_info + Info - tooltip_lbl_xcoord + tooltip_tab_info None - lbl_id - Id: + lbl_geom1 + Geom 1: - tooltip_lbl_id + tooltip_lbl_geom1 None - btn_close - Close + lbl_is_last + Is last: - tooltip_btn_close + tooltip_lbl_is_last None - dlg_visit_event_full - Event + lbl_compass + Compass: - tooltip_dlg_visit_event_full + tooltip_lbl_compass None @@ -6847,51 +6855,51 @@ None - lbl_is_last - Is last: + lbl_event_code + Event code: - tooltip_lbl_is_last + tooltip_lbl_event_code None - tab_info - Info + lbl_parameter_id + Parameter id: - tooltip_tab_info + tooltip_lbl_parameter_id None - lbl_index_val - Index val: + lbl_position_value + Position value: - tooltip_lbl_index_val + tooltip_lbl_position_value None - tab_files - Files + lbl_position_id + Position id: - tooltip_tab_files + tooltip_lbl_position_id None - lbl_tstamp - Tstamp: + lbl_id + Id: - tooltip_lbl_tstamp + tooltip_lbl_id None - lbl_files - Files: + dlg_visit_event_full + Event - tooltip_lbl_files + tooltip_dlg_visit_event_full None @@ -6903,67 +6911,67 @@ None - lbl_text - Text: + lbl_value2 + Value 2: - tooltip_lbl_text + tooltip_lbl_value2 None - lbl_geom3 - Geom 3: + tab_files + Files - tooltip_lbl_geom3 + tooltip_tab_files None - lbl_geom2 - Geom 2: + lbl_tstamp + Tstamp: - tooltip_lbl_geom2 + tooltip_lbl_tstamp None - lbl_geom1 - Geom 1: + lbl_files + Files: - tooltip_lbl_geom1 + tooltip_lbl_files None - lbl_value2 - Value 2: + lbl_index_val + Index val: - tooltip_lbl_value2 + tooltip_lbl_index_val None - lbl_compass - Compass: + lbl_text + Text: - tooltip_lbl_compass + tooltip_lbl_text None - lbl_visit_id - Visit id: + lbl_geom3 + Geom 3: - tooltip_lbl_visit_id + tooltip_lbl_geom3 None - lbl_value - Value: + lbl_geom2 + Geom 2: - tooltip_lbl_value + tooltip_lbl_geom2 None @@ -6973,14 +6981,6 @@ title Rehabilitation arc event - - lbl_geom2 - Geom 2: - - - tooltip_lbl_geom2 - None - lbl_files Files: @@ -7005,6 +7005,14 @@ tooltip_lbl_geom3 None + + lbl_geom2 + Geom 2: + + + tooltip_lbl_geom2 + None + lbl_geom1 Geom 1: @@ -7046,11 +7054,11 @@ None - lbl_value1 - Value 1: + btn_add_file + Add file - tooltip_lbl_value1 + tooltip_btn_add_file None @@ -7062,11 +7070,11 @@ None - btn_add_file - Add file + lbl_value1 + Value 1: - tooltip_btn_add_file + tooltip_lbl_value1 None @@ -7085,11 +7093,19 @@ Gallery - btn_next + btn_previous None - tooltip_btn_next + tooltip_btn_previous + None + + + dlg_visit_gallery + Gallery + + + tooltip_dlg_visit_gallery None @@ -7101,19 +7117,19 @@ None - btn_previous + btn_next None - tooltip_btn_previous + tooltip_btn_next None - dlg_visit_gallery - Gallery + lbl_event_id + Event id: - tooltip_dlg_visit_gallery + tooltip_lbl_event_id None @@ -7124,14 +7140,6 @@ tooltip_lbl_visit_id None - - lbl_event_id - Event id: - - - tooltip_lbl_event_id - None - visit_gallery_zoom @@ -7140,19 +7148,19 @@ Gallery zoom - dlg_visit_gallery_zoom - Gallery zoom + lbl_event_id + Event id: - tooltip_dlg_visit_gallery_zoom + tooltip_lbl_event_id None - btn_slidePrevious + btn_slideNext None - tooltip_btn_slidePrevious + tooltip_btn_slideNext None @@ -7164,27 +7172,27 @@ None - btn_slideNext - None + lbl_visit_id + Visit id: - tooltip_btn_slideNext + tooltip_lbl_visit_id None - lbl_visit_id - Visit id: + btn_slidePrevious + None - tooltip_lbl_visit_id + tooltip_btn_slidePrevious None - lbl_event_id - Event id: + dlg_visit_gallery_zoom + Gallery zoom - tooltip_lbl_event_id + tooltip_dlg_visit_gallery_zoom None @@ -7195,70 +7203,70 @@ Add picture - lbl_link - Link: + dlg_visit_picture + Add picture - tooltip_lbl_link + tooltip_dlg_visit_picture None - btn_cancel - Cancel + btn_accept + Accept - tooltip_btn_cancel + tooltip_btn_accept None - btn_accept - Accept + path_doc + ... - tooltip_btn_accept + tooltip_path_doc None - dlg_visit_picture - Add picture + lbl_link + Link: - tooltip_dlg_visit_picture + tooltip_lbl_link None - path_doc - ... + btn_cancel + Cancel - tooltip_path_doc + tooltip_btn_cancel None workspace_create - lbl_new_workspace - Workspace name: + btn_accept + Accept - tooltip_lbl_new_workspace - Workspace name + tooltip_btn_accept + None - txt_workspace_name - None + lbl_new_workspace_descript + Description: - tooltip_txt_workspace_name - Workspace name *Required + tooltip_lbl_new_workspace_descript + Workspace description - btn_toggle_privacy - Toggle privacy + btn_update + Update - tooltip_btn_toggle_privacy + tooltip_btn_update None @@ -7270,71 +7278,55 @@ Use this to describe what the workspace is used for - btn_update - Update + btn_toggle_privacy + Toggle privacy - tooltip_btn_update + tooltip_btn_toggle_privacy None - btn_cancel - Cancel + lbl_new_workspace + Workspace name: - tooltip_btn_cancel - None + tooltip_lbl_new_workspace + Workspace name - btn_accept - Accept + btn_cancel + Cancel - tooltip_btn_accept + tooltip_btn_cancel None - lbl_new_workspace_descript - Description: + txt_workspace_name + None - tooltip_lbl_new_workspace_descript - Workspace description + tooltip_txt_workspace_name + Workspace name *Required workspace_manager - btn_current - Set Current - - - tooltip_btn_current - Set the current workspace - - - btn_delete - Delete - - - tooltip_btn_delete - Delete the selected workspace - - - btn_create - Create + txt_name + None - tooltip_btn_create - Create + tooltip_txt_name + Workspace name - txt_name + lbl_vdefault_workspace None - tooltip_txt_name - Workspace name + tooltip_lbl_vdefault_workspace + Current workspace btn_cancel @@ -7344,6 +7336,14 @@ tooltip_btn_cancel None + + btn_create + Create + + + tooltip_btn_create + Create + btn_reset Reset workspace @@ -7361,12 +7361,20 @@ None - lbl_vdefault_workspace - None + btn_current + Set Current - tooltip_lbl_vdefault_workspace - Current workspace + tooltip_btn_current + Set the current workspace + + + btn_delete + Delete + + + tooltip_btn_delete + Delete the selected workspace From d88850fdcbc6d3c0fa7af6381a0fa300e716d39d Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Mon, 24 Oct 2022 15:47:00 +0200 Subject: [PATCH 19/36] Make QLineEdit & QTextEdit translatable (tooltip) --- lib/tools_qt.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/tools_qt.py b/lib/tools_qt.py index 317e8eaeb..636114bfa 100644 --- a/lib/tools_qt.py +++ b/lib/tools_qt.py @@ -1309,7 +1309,7 @@ def _add_translator(locale_path, log_info=False): def _translate_form(dialog, context_name, aux_context='ui_message'): """ Translate widgets of the form to current language """ - type_widget_list = [QCheckBox, QGroupBox, QLabel, QPushButton, QRadioButton, QTabWidget] + type_widget_list = [QCheckBox, QGroupBox, QLabel, QPushButton, QRadioButton, QTabWidget, QLineEdit, QTextEdit] for widget_type in type_widget_list: widget_list = dialog.findChildren(widget_type) for widget in widget_list: @@ -1366,6 +1366,8 @@ def _translate_widget(context_name, widget, aux_context='ui_message'): if text != widget_title: widget.setTitle(text) _translate_tooltip(context_name, widget, aux_context=aux_context) + elif type(widget) is QLineEdit or type(widget) is QTextEdit: + _translate_tooltip(context_name, widget, aux_context=aux_context) else: widget_name = widget.objectName() text = tr(widget_name, context_name, aux_context) From 1b4329f221eb2f7b0c587e76f7dbd9d5deba39d5 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Tue, 25 Oct 2022 11:37:35 +0200 Subject: [PATCH 20/36] Enhancement: mincut manager -- add type & streetaxis filters --- core/shared/mincut_tools.py | 29 +++++ core/ui/toolbars/om/mincut_manager.ui | 160 +++++++++++++++----------- 2 files changed, 119 insertions(+), 70 deletions(-) diff --git a/core/shared/mincut_tools.py b/core/shared/mincut_tools.py index 50780d72f..86d20b4f6 100644 --- a/core/shared/mincut_tools.py +++ b/core/shared/mincut_tools.py @@ -64,10 +64,29 @@ def get_mincut_manager(self): model.setStringList(values) self.completer.setModel(model) + + # Adding auto-completion to a QLineEdit + self.street_completer = QCompleter() + self.dlg_mincut_man.txt_streetaxis.setCompleter(self.street_completer) + model = QStringListModel() + + sql = "SELECT DISTINCT(streetaxis) FROM v_ui_mincut WHERE streetaxis IS NOT NULL " + rows = tools_db.get_rows(sql) + values = [] + if rows: + for row in rows: + values.append(str(row[0])) + + model.setStringList(values) + self.street_completer.setModel(model) + + # Connect signals self.txt_mincut_id.textChanged.connect(partial(self._filter_by_id, self.tbl_mincut_edit)) + self.dlg_mincut_man.txt_streetaxis.textChanged.connect(partial(self._filter_by_id, self.tbl_mincut_edit)) self.dlg_mincut_man.date_from.dateChanged.connect(partial(self._filter_by_id, self.tbl_mincut_edit)) self.dlg_mincut_man.date_to.dateChanged.connect(partial(self._filter_by_id, self.tbl_mincut_edit)) self.dlg_mincut_man.cmb_expl.currentIndexChanged.connect(partial(self._filter_by_id, self.tbl_mincut_edit)) + self.dlg_mincut_man.cmb_mincut_type.currentIndexChanged.connect(partial(self._filter_by_id, self.tbl_mincut_edit)) self.dlg_mincut_man.spn_next_days.setRange(-9999, 9999) self.dlg_mincut_man.btn_next_days.clicked.connect(self._filter_by_days) self.dlg_mincut_man.spn_next_days.valueChanged.connect(self._filter_by_days) @@ -165,6 +184,11 @@ def _populate_combos(self): rows = tools_db.get_rows(sql, add_empty_row=True) tools_qt.fill_combo_values(self.dlg_mincut_man.cmb_expl, rows, 1) + # Fill ComboBox mincut type + sql = "SELECT id, descript as idval FROM om_mincut_cat_type ORDER BY id" + rows = tools_db.get_rows(sql, add_empty_row=True) + tools_qt.fill_combo_values(self.dlg_mincut_man.cmb_mincut_type, rows, 1) + def _open_mincut(self): """ Open mincut form with selected record of the table """ @@ -221,7 +245,9 @@ def _filter_by_id(self, qtable): id_ = tools_qt.get_text(self.dlg_mincut_man, self.dlg_mincut_man.txt_mincut_id, False, False) state_id = tools_qt.get_combo_value(self.dlg_mincut_man, self.dlg_mincut_man.state_edit, 0) state_text = tools_qt.get_combo_value(self.dlg_mincut_man, self.dlg_mincut_man.state_edit, 1) + mincut_type = tools_qt.get_combo_value(self.dlg_mincut_man, self.dlg_mincut_man.cmb_mincut_type, 0) expl = tools_qt.get_combo_value(self.dlg_mincut_man, self.dlg_mincut_man.cmb_expl, 1) + streetaxis = tools_qt.get_text(self.dlg_mincut_man, self.dlg_mincut_man.txt_streetaxis, False, False) dates_filter = "" if state_id == '': self.dlg_mincut_man.date_from.setEnabled(False) @@ -266,6 +292,9 @@ def _filter_by_id(self, qtable): if state_text != '': expr += f" AND state::text ILIKE '%{state_text}%' " expr += f" AND (exploitation::text ILIKE '%{expl}%' OR exploitation IS null)" + expr += f" AND (mincut_type::text ILIKE '%{mincut_type}%')" + if streetaxis: + expr += f" AND (streetaxis::text ILIKE '%{streetaxis}%')" # Refresh model with selected filter qtable.model().setFilter(expr) diff --git a/core/ui/toolbars/om/mincut_manager.ui b/core/ui/toolbars/om/mincut_manager.ui index c50f55bf0..99581e479 100644 --- a/core/ui/toolbars/om/mincut_manager.ui +++ b/core/ui/toolbars/om/mincut_manager.ui @@ -20,27 +20,7 @@ - - - - Exploitation: - - - - - - - - - - dd/MM/yyyy - - - true - - - - + Qt::Horizontal @@ -53,7 +33,7 @@ - + @@ -66,20 +46,14 @@ - - - - Qt::Horizontal - - - - 80 - 20 - + + + + Exploitation: - + - + To: @@ -87,7 +61,7 @@ - + dd/MM/yyyy @@ -96,6 +70,19 @@ + + + + Qt::Horizontal + + + + 80 + 20 + + + + @@ -109,6 +96,16 @@ + + + + + 60 + 16777215 + + + + @@ -116,20 +113,23 @@ - + From: - - - - - 60 - 16777215 - + + + + + + + dd/MM/yyyy + + + true @@ -140,24 +140,34 @@ - - - - true + + + + + 22 + 22 + + + + - - - - - 0 - 0 - + + + + Close - + + + + Cancel mincut + + + + @@ -170,30 +180,40 @@ - - - - Cancel mincut + + + + + 0 + 0 + - - - - - 22 - 22 - + + + + true + + + + + + + + + + - + Type: - - + + - Close + Streetaxis: From 32353803db5875a3141c2884e9aec1b39edecd5c Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Tue, 25 Oct 2022 13:38:01 +0200 Subject: [PATCH 21/36] Enhancement: allow maximum intervals for set_dates_from_to function --- core/utils/tools_gw.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/core/utils/tools_gw.py b/core/utils/tools_gw.py index 0f5abe488..f77a73fa5 100644 --- a/core/utils/tools_gw.py +++ b/core/utils/tools_gw.py @@ -2895,11 +2895,26 @@ def set_multi_completer_widget(tablenames: list, widget, fields_id: list, add_id tools_qt.set_completer_rows(widget, rows) -def set_dates_from_to(widget_from, widget_to, table_name, field_from, field_to): +def set_dates_from_to(widget_from, widget_to, table_name, field_from, field_to, max_back_date=None, max_fwd_date=None): + """ + Builds query to populate @widget_from & @widget_to dates + :param widget_from: + :param widget_to: + :param table_name: + :param field_from: + :param field_to: + :param max_back_date: a PostgreSQL valid interval (eg. '1 year') + :param max_fwd_date: a PostgreSQL valid interval (eg. '1 year') + """ + + min_sql = f"MIN(LEAST({field_from}, {field_to}))" + max_sql = f"MAX(GREATEST({field_from}, {field_to}))" + if max_back_date: + min_sql = f"GREATEST({min_sql}, now() - interval '{max_back_date}')" + if max_fwd_date: + max_sql = f"LEAST({max_sql}, now() + interval '{max_fwd_date}')" - sql = (f"SELECT MIN(LEAST({field_from}, {field_to}))," - f" MAX(GREATEST({field_from}, {field_to}))" - f" FROM {table_name}") + sql = f"SELECT {min_sql}, {max_sql} FROM {table_name}" row = tools_db.get_row(sql) current_date = QDate.currentDate() if row: From 54b6affc0258bc9012b5ff5d595a4d76d9dc186a Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Tue, 25 Oct 2022 13:39:02 +0200 Subject: [PATCH 22/36] Enhancement: mincut manager -- set max from date to 1 year --- core/shared/mincut_tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/shared/mincut_tools.py b/core/shared/mincut_tools.py index 86d20b4f6..e20075999 100644 --- a/core/shared/mincut_tools.py +++ b/core/shared/mincut_tools.py @@ -41,7 +41,7 @@ def get_mincut_manager(self): # Create the dialog and signals tools_gw.load_settings(self.dlg_mincut_man) tools_gw.set_dates_from_to(self.dlg_mincut_man.date_from, self.dlg_mincut_man.date_to, 'om_mincut', - 'forecast_start, exec_start', 'forecast_end, exec_end') + 'forecast_start, exec_start', 'forecast_end, exec_end', max_back_date='1 year') self.dlg_mincut_man.date_from.setEnabled(False) self.dlg_mincut_man.date_to.setEnabled(False) tools_gw.add_icon(self.dlg_mincut_man.btn_selector_mincut, "191", sub_folder="24x24") From b8bb3cc73502f9c33bd134deef01d5bd83ad1182 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 26 Oct 2022 15:32:07 +0200 Subject: [PATCH 23/36] Bug fix: manage hidden widgets in info accept --- core/shared/info.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/shared/info.py b/core/shared/info.py index cafe8cf2d..f7bcc8f96 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -1844,6 +1844,8 @@ def _accept(self, dialog, complet_result, _json, p_widget=None, clear_json=False fields_reload = "" list_mandatory = [] for field in complet_result['body']['data']['fields']: + if field.get('hidden') in (True, 'True', 'true'): + continue if p_widget and (field['widgetname'] == p_widget.objectName()): if field['widgetcontrols'] and 'autoupdateReloadFields' in field['widgetcontrols']: fields_reload = field['widgetcontrols']['autoupdateReloadFields'] From f0f515bfa4451028fa8a3d98785df92de4949adb Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 26 Oct 2022 15:40:47 +0200 Subject: [PATCH 24/36] Enhancement: add chlorine & turbidity fields in mincut dialog --- core/shared/mincut.py | 32 ++++ core/ui/toolbars/om/mincut.ui | 306 ++++++++++++++++++---------------- 2 files changed, 195 insertions(+), 143 deletions(-) diff --git a/core/shared/mincut.py b/core/shared/mincut.py index 6f89ee08b..a67553ba5 100644 --- a/core/shared/mincut.py +++ b/core/shared/mincut.py @@ -124,6 +124,8 @@ def load_mincut(self, result_mincut_id): tools_qt.set_widget_text(self.dlg_mincut, "pred_description", row['anl_descript']) tools_qt.set_widget_text(self.dlg_mincut, "real_description", row['exec_descript']) + tools_qt.set_widget_text(self.dlg_mincut, "txt_chlorine", row['chlorine']) + tools_qt.set_widget_text(self.dlg_mincut, "txt_turbidity", row['turbidity']) tools_qt.set_widget_text(self.dlg_mincut, "distance", row['exec_from_plot']) tools_qt.set_widget_text(self.dlg_mincut, "depth", row['exec_depth']) tools_qt.set_checked(self.dlg_mincut, "appropiate", row['exec_appropiate']) @@ -164,6 +166,8 @@ def load_mincut(self, result_mincut_id): self.dlg_mincut.cause.setDisabled(False) self.dlg_mincut.cbx_recieved_day.setDisabled(False) self.dlg_mincut.cbx_recieved_time.setDisabled(False) + self.dlg_mincut.txt_chlorine.setDisabled(False) + self.dlg_mincut.txt_turbidity.setDisabled(False) # Group Prediction self.dlg_mincut.cbx_date_start_predict.setDisabled(False) self.dlg_mincut.cbx_hours_start_predict.setDisabled(False) @@ -182,6 +186,8 @@ def load_mincut(self, result_mincut_id): self.dlg_mincut.real_description.setDisabled(True) self.dlg_mincut.btn_start.setDisabled(False) self.dlg_mincut.btn_end.setDisabled(True) + self.dlg_mincut.txt_chlorine.setDisabled(True) + self.dlg_mincut.txt_turbidity.setDisabled(True) # Actions if self.mincut_class == 1: self.action_mincut.setDisabled(False) @@ -225,6 +231,8 @@ def load_mincut(self, result_mincut_id): self.dlg_mincut.cause.setDisabled(True) self.dlg_mincut.cbx_recieved_day.setDisabled(True) self.dlg_mincut.cbx_recieved_time.setDisabled(True) + self.dlg_mincut.txt_chlorine.setDisabled(True) + self.dlg_mincut.txt_turbidity.setDisabled(True) # Group Prediction dates self.dlg_mincut.cbx_date_start_predict.setDisabled(True) self.dlg_mincut.cbx_hours_start_predict.setDisabled(True) @@ -243,6 +251,8 @@ def load_mincut(self, result_mincut_id): self.dlg_mincut.real_description.setDisabled(False) self.dlg_mincut.btn_start.setDisabled(True) self.dlg_mincut.btn_end.setDisabled(False) + self.dlg_mincut.txt_chlorine.setDisabled(False) + self.dlg_mincut.txt_turbidity.setDisabled(False) # Actions self.action_mincut.setDisabled(True) self.action_refresh_mincut.setDisabled(True) @@ -281,6 +291,8 @@ def load_mincut(self, result_mincut_id): self.dlg_mincut.real_description.setDisabled(True) self.dlg_mincut.btn_start.setDisabled(True) self.dlg_mincut.btn_end.setDisabled(True) + self.dlg_mincut.txt_chlorine.setDisabled(True) + self.dlg_mincut.txt_turbidity.setDisabled(True) # Actions self.action_mincut.setDisabled(True) self.action_refresh_mincut.setDisabled(True) @@ -349,6 +361,8 @@ def init_mincut_form(self): self.real_description = self.dlg_mincut.findChild(QTextEdit, "real_description") self.distance = self.dlg_mincut.findChild(QLineEdit, "distance") self.depth = self.dlg_mincut.findChild(QLineEdit, "depth") + self.chlorine = self.dlg_mincut.findChild(QLineEdit, "chlorine") + self.turbidity = self.dlg_mincut.findChild(QLineEdit, "turbidity") tools_qt.double_validator(self.distance, 0, 9999999, 3) tools_qt.double_validator(self.depth, 0, 9999999, 3) @@ -704,6 +718,8 @@ def _real_start(self): self.dlg_mincut.distance.setEnabled(True) self.dlg_mincut.depth.setEnabled(True) self.dlg_mincut.real_description.setEnabled(True) + self.dlg_mincut.txt_chlorine.setEnabled(True) + self.dlg_mincut.txt_turbidity.setEnabled(True) # Set state to 'In Progress' tools_qt.set_widget_text(self.dlg_mincut, self.dlg_mincut.state, str(self.states[1])) @@ -815,6 +831,10 @@ def _accept_save_data(self): exec_descript = tools_qt.get_text(self.dlg_mincut, "real_description", return_string_null=False) exec_user = tools_qt.get_text(self.dlg_mincut, "exec_user", return_string_null=False) + # chlorine and turbidity + chlorine = tools_qt.get_text(self.dlg_mincut, "txt_chlorine", return_string_null=False) + turbidity = tools_qt.get_text(self.dlg_mincut, "txt_turbidity", return_string_null=False) + # Get prediction date - start date_start_predict = self.dlg_mincut.cbx_date_start_predict.date() time_start_predict = self.dlg_mincut.cbx_hours_start_predict.time() @@ -883,6 +903,12 @@ def _accept_save_data(self): if anl_descript != "": sql += f", anl_descript = $${anl_descript}$$ " + # Manage fields 'chlorine' and 'turbidity' + if chlorine != "": + sql += f", chlorine = $${chlorine}$$" + if turbidity != "": + sql += f", turbidity = $${turbidity}$$" + # Manage address if address_exploitation_id != -1: sql += f", muni_id = '{address_exploitation_id}'" @@ -2385,6 +2411,8 @@ def _enable_widgets(self, state): self.dlg_mincut.real_description.setDisabled(True) self.dlg_mincut.btn_start.setDisabled(True) self.dlg_mincut.btn_end.setDisabled(True) + self.dlg_mincut.txt_chlorine.setDisabled(True) + self.dlg_mincut.txt_turbidity.setDisabled(True) # Actions self.action_mincut.setDisabled(False) self.action_refresh_mincut.setDisabled(True) @@ -2424,6 +2452,8 @@ def _enable_widgets(self, state): self.dlg_mincut.real_description.setDisabled(False) self.dlg_mincut.btn_start.setDisabled(True) self.dlg_mincut.btn_end.setDisabled(False) + self.dlg_mincut.txt_chlorine.setDisabled(False) + self.dlg_mincut.txt_turbidity.setDisabled(False) # Actions self.action_mincut.setDisabled(True) self.action_refresh_mincut.setDisabled(True) @@ -2463,6 +2493,8 @@ def _enable_widgets(self, state): self.dlg_mincut.real_description.setDisabled(True) self.dlg_mincut.btn_start.setDisabled(True) self.dlg_mincut.btn_end.setDisabled(True) + self.dlg_mincut.txt_chlorine.setDisabled(True) + self.dlg_mincut.txt_turbidity.setDisabled(True) # Actions self.action_mincut.setDisabled(True) self.action_refresh_mincut.setDisabled(True) diff --git a/core/ui/toolbars/om/mincut.ui b/core/ui/toolbars/om/mincut.ui index e3176cf7c..eebcf618c 100644 --- a/core/ui/toolbars/om/mincut.ui +++ b/core/ui/toolbars/om/mincut.ui @@ -220,50 +220,30 @@ - - - - - 8 - - - - QFrame::NoFrame - - - QFrame::Plain - - - Description: - - - Qt::AutoText - - - false - - - 3 + + + + true - - + + - true - - - dd/MM/yyyy + false - - true + + + 0 + 0 + - - + + - true + false @@ -303,8 +283,17 @@ - - + + + + + 7 + + + + + + 8 @@ -317,7 +306,7 @@ QFrame::Plain - Received date: + Description: Qt::AutoText @@ -325,21 +314,11 @@ false - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - 3 - - - - false - - - @@ -376,25 +355,46 @@ - - - + + + + + 8 + + + + QFrame::NoFrame + + + QFrame::Plain + + + Received date: + + + Qt::AutoText + + false - - - 0 - 0 - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 3 - - - - - 7 - + + + + true + + + dd/MM/yyyy + + + true @@ -594,30 +594,14 @@ - - - - false - - - - 0 - 0 - - - - Start - - - - - + + - Appropriate: + Chlorine: - + false @@ -655,32 +639,32 @@ - - - - - + + false - - - - - - false + + + 0 + 0 + - - + + Start + + + + - + Appropriate: - + - + false @@ -693,14 +677,14 @@ - + false - + End date: @@ -709,6 +693,77 @@ + + + + + + + false + + + + + + + + + + + + + false + + + + + + + Exec user: + + + + + + + Distance from plot: + + + + + + + + 8 + + + + QFrame::NoFrame + + + QFrame::Plain + + + Description: + + + Qt::AutoText + + + false + + + 3 + + + + + + + false + + + @@ -752,33 +807,6 @@ - - - - - 8 - - - - QFrame::NoFrame - - - QFrame::Plain - - - Description: - - - Qt::AutoText - - - false - - - 3 - - - @@ -809,24 +837,16 @@ - - - - Distance from plot: - - + + - - - - Exec user: - - + + - - - - false + + + + Turbidity: From db2a2b838dd272b00f63f14a507aa0e3993c9a61 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 26 Oct 2022 16:18:59 +0200 Subject: [PATCH 25/36] Enhancement/refactor: use v_edit_element in element manager --- core/shared/document.py | 2 +- core/shared/element.py | 6 +++--- core/utils/tools_gw.py | 16 ++++++++++------ lib/tools_qt.py | 5 +---- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/core/shared/document.py b/core/shared/document.py index cea878cae..d9f5c19f6 100644 --- a/core/shared/document.py +++ b/core/shared/document.py @@ -189,7 +189,7 @@ def manage_documents(self): # Set dignals self.dlg_man.doc_id.textChanged.connect( - partial(tools_qt.filter_by_id, self.dlg_man, self.dlg_man.tbl_document, self.dlg_man.doc_id, table_object)) + partial(tools_qt.filter_by_id, self.dlg_man, self.dlg_man.tbl_document, self.dlg_man.doc_id, table_object, "id")) self.dlg_man.tbl_document.doubleClicked.connect( partial(self._open_selected_object_document, self.dlg_man, self.dlg_man.tbl_document, table_object)) self.dlg_man.btn_cancel.clicked.connect(partial(tools_gw.close_dialog, self.dlg_man)) diff --git a/core/shared/element.py b/core/shared/element.py index e3283c987..5e6c05ab7 100644 --- a/core/shared/element.py +++ b/core/shared/element.py @@ -272,8 +272,8 @@ def manage_elements(self): self.dlg_man.tbl_element.setSelectionBehavior(QAbstractItemView.SelectRows) # Adding auto-completion to a QLineEdit - table_object = "element" - tools_gw.set_completer_object(self.dlg_man, table_object) + table_object = "v_edit_element" + tools_gw.set_completer_object(self.dlg_man, table_object, field_id='element_id') # Set a model with selected filter. Attach that model to selected table message = tools_qt.fill_table(self.dlg_man.tbl_element, f"{self.schema_name}.{table_object}") @@ -283,7 +283,7 @@ def manage_elements(self): # Set signals self.dlg_man.element_id.textChanged.connect(partial( - tools_qt.filter_by_id, self.dlg_man, self.dlg_man.tbl_element, self.dlg_man.element_id, table_object)) + tools_qt.filter_by_id, self.dlg_man, self.dlg_man.tbl_element, self.dlg_man.element_id, table_object, "element_id")) self.dlg_man.tbl_element.doubleClicked.connect(partial( self._open_selected_object_element, self.dlg_man, self.dlg_man.tbl_element, table_object)) self.dlg_man.btn_cancel.clicked.connect(partial(tools_gw.close_dialog, self.dlg_man)) diff --git a/core/utils/tools_gw.py b/core/utils/tools_gw.py index f77a73fa5..6aff2758f 100644 --- a/core/utils/tools_gw.py +++ b/core/utils/tools_gw.py @@ -995,8 +995,8 @@ def delete_selected_rows(widget, table_object): list_id = "" field_object_id = "id" - if table_object == "element": - field_object_id = table_object + "_id" + if table_object == "v_edit_element": + field_object_id = "element_id" elif "v_ui_om_visitman_x_" in table_object: field_object_id = "visit_id" @@ -2839,15 +2839,19 @@ def load_tableview_psector(dialog, feature_type): def set_completer_object(dialog, tablename, field_id="id"): """ Set autocomplete of widget @table_object + "_id" getting id's from selected @table_object + + TODO: Refactor. It should have this params: (dialog, widget, tablename, field_id="id") + The widget might not be called '@table_object + "_id"' """ - widget = tools_qt.get_widget(dialog, tablename + "_id") + widget_name = tablename + "_id" + if tablename == "v_edit_element": # TODO: remove this when refactored + widget_name = "element_id" + + widget = tools_qt.get_widget(dialog, widget_name) if not widget: return - if tablename == "element": - field_id = tablename + "_id" - set_completer_widget(tablename, widget, field_id) diff --git a/lib/tools_qt.py b/lib/tools_qt.py index 636114bfa..9ad8ba68e 100644 --- a/lib/tools_qt.py +++ b/lib/tools_qt.py @@ -708,11 +708,8 @@ def set_lazy_init(widget, lazy_widget=None, lazy_init_function=None): lazy_init_function(lazy_widget) -def filter_by_id(dialog, widget_table, widget_txt, table_object): +def filter_by_id(dialog, widget_table, widget_txt, table_object, field_object_id="id"): - field_object_id = "id" - if table_object == "element": - field_object_id = table_object + "_id" object_id = get_text(dialog, widget_txt) if object_id != 'null': expr = f"{field_object_id}::text ILIKE '%{object_id}%'" From 9b7ca320f7555ffc060d80a2caa02d3604d1438e Mon Sep 17 00:00:00 2001 From: Albert Bofill Date: Wed, 26 Oct 2022 16:35:21 +0200 Subject: [PATCH 26/36] Enhance mincut UI --- core/ui/toolbars/om/mincut.ui | 322 +++++++++++++++++++++------------- 1 file changed, 199 insertions(+), 123 deletions(-) diff --git a/core/ui/toolbars/om/mincut.ui b/core/ui/toolbars/om/mincut.ui index eebcf618c..d5d33af4f 100644 --- a/core/ui/toolbars/om/mincut.ui +++ b/core/ui/toolbars/om/mincut.ui @@ -46,6 +46,8 @@ 8 + 50 + false @@ -86,6 +88,8 @@ 8 + 50 + false @@ -126,6 +130,8 @@ 8 + 50 + false @@ -258,6 +264,8 @@ 8 + 50 + false @@ -288,6 +296,8 @@ 7 + 50 + false @@ -297,6 +307,8 @@ 8 + 50 + false @@ -330,6 +342,8 @@ 8 + 50 + false @@ -360,6 +374,8 @@ 8 + 50 + false @@ -422,6 +438,8 @@ 8 + 50 + false @@ -449,6 +467,8 @@ 8 + 50 + false @@ -479,6 +499,8 @@ 8 + 50 + false @@ -594,30 +616,7 @@ - - - - Chlorine: - - - - - - - false - - - - 0 - 0 - - - - End - - - - + false @@ -655,25 +654,107 @@ + + + + + + + + 8 + 50 + false + + + + QFrame::NoFrame + + + QFrame::Plain + + + Depth: + + + Qt::AutoText + + + false + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 3 + + + - + - Appropriate: + Chlorine: - + + + + + 8 + 50 + false + + + + QFrame::NoFrame + + + QFrame::Plain + + + Description: + + + Qt::AutoText + + + false + + + 3 + + + + + + + Exec user: + + + + + + + Distance from plot: + + + + + + + false + + + + + + + - - - - false - - - dd/MM/yyyy - - - true + + + + End date: @@ -684,19 +765,22 @@ - - - - End date: + + + + false + + + dd/MM/yyyy + + + true - - - - + false @@ -709,58 +793,33 @@ - - + + false - - - - - - Exec user: + + + 0 + 0 + - - - - - Distance from plot: + End - - - - - 8 - - - - QFrame::NoFrame - - - QFrame::Plain - + + - Description: - - - Qt::AutoText - - - false - - - 3 + Turbidity: - - - - false + + + + Appropriate: @@ -807,48 +866,28 @@ - - - - - 8 - - - - QFrame::NoFrame - - - QFrame::Plain - - - Depth: - - - Qt::AutoText - - + + + + + + false - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - 3 - - - - - - - - - - - Turbidity: - - + + + + Qt::Vertical + + + + 20 + 40 + + + @@ -1064,6 +1103,43 @@ + + chk_use_planified + main_tab + type + cause + cbx_recieved_day + cbx_recieved_time + pred_description + cbx_date_start_predict + cbx_hours_start_predict + cbx_date_end_predict + cbx_hours_end_predict + assigned_to + btn_start + cbx_date_start + cbx_hours_start + real_description + distance + depth + txt_chlorine + txt_turbidity + txt_exec_user + appropiate + cbx_date_end + cbx_hours_end + btn_end + mainTab + state + work_order + result_mincut_id + scrollArea + tbl_hydro + txt_infolog + btn_accept + btn_cancel_task + btn_cancel + From fef2d9200b02efcceec4347c6ecf6c2da6f97b6f Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 26 Oct 2022 16:57:19 +0200 Subject: [PATCH 27/36] Major bug fix: info -- editing was properly saved only the first time --- core/shared/info.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/shared/info.py b/core/shared/info.py index f7bcc8f96..40f75a6b6 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -101,6 +101,17 @@ def open_form(self, point=None, table_name=None, feature_id=None, feature_cat=No self.layer = None self.feature = None self.my_json = {} + # Note about self.my_json: this variable is passed to tools_gw.get_values via connected signals. + # If it's reassigned after connecting the signal, it will most likely get a new position in memory, but + # the self.my_json variable passed to the signal will be pointing to the original self.my_json. + # For example, if we do this: + # self.my_json = {'test1': 'test1'} + # widget.signal.connect(partial(tools_gw.get_values, self.my_json)) + # self.my_json = {} + # widget.signal.trigger() + # Now tools_gw.get_values() will read self.my_json as {'test1': 'test1'} + # So to clear the dictionary do this: + # self.my_json.clear() self.tab_type = tab_type # Get project variables @@ -2116,7 +2127,7 @@ def _clean_my_json(self, widget): def _reset_my_json(self): """ Delete keys if exist, when widget is autoupdate """ - self.my_json = {} + self.my_json.clear() def _set_auto_update_lineedit(self, field, dialog, widget, new_feature=None): From a95d98e41e1a4cfc833555445bd0a8fd1131fca8 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 26 Oct 2022 17:02:10 +0200 Subject: [PATCH 28/36] Update changelog --- metadata.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/metadata.txt b/metadata.txt index 523bde426..66e0b360e 100644 --- a/metadata.txt +++ b/metadata.txt @@ -8,7 +8,13 @@ version=3.5.030 author=David Erill, Luigi Pirelli, Natasa Cica, Nestor Ibañez, Adrian Valenciano, Barbara Rzepka, Sergi Muñoz, Josep Lluís Sala, Edgar Fusté, Albert Bofill, Sergi Maspons, Elies Bertran, Abel García Juanes, Xavier Torret Changelog=Version 3.5.030 - + - Allow searching for catalog_id in change feature type & replace feature tools + - Add editing action in dimensioning dialog + - Add type & streetaxis filters in mincut manager + - Add chlorine & turbidity fields in mincut + - Major bug fix in info. The first time saving worked fine but then it didn't work properly. + - Allow QLineEdit & QTextEdit to have tooltips via Qt translation + - Other bug fixes tags= giswater, water networks, sewerage, urban drainage, EPANET, SWMM homepage=https://www.giswater.org From 918f8a414998482ed802382906b207f9cdd2034c Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Thu, 27 Oct 2022 10:44:15 +0200 Subject: [PATCH 29/36] Minor bug fix: ensure closing info will refresh the canvas --- core/shared/info.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/shared/info.py b/core/shared/info.py index 40f75a6b6..b08f33749 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -1459,9 +1459,9 @@ def _manage_accept(self, dialog, action_edit, new_feature, my_json, close_dlg): tools_qt.set_action_checked(action_edit, False) tools_gw.enable_widgets(dialog, self.complet_result['body']['data'], False) self._enable_actions(dialog, False) - # Force layers to reindex in order to fix some snapping issues - self.iface.mapCanvas().snappingUtils().clearAllLocators() - tools_qgis.force_refresh_map_canvas() + # Force layers to reindex in order to fix some snapping issues + self.iface.mapCanvas().snappingUtils().clearAllLocators() + tools_qgis.force_refresh_map_canvas() def _stop_editing(self, dialog, action_edit, layer, fid, my_json, new_feature=None): From 7b2041c09580f62a6afde2f0ca3ea0d60b40397d Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Thu, 27 Oct 2022 12:22:33 +0200 Subject: [PATCH 30/36] Bug fix: manage snapping & emit_point when closing info --- core/shared/info.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/core/shared/info.py b/core/shared/info.py index b08f33749..046eae1f8 100644 --- a/core/shared/info.py +++ b/core/shared/info.py @@ -66,6 +66,7 @@ def __init__(self, tab_type): self.snapper_manager.set_snapping_layers() self.suppres_form = None self.prev_action = None + self.previous_map_tool = None def get_info_from_coordinates(self, point, tab_type): @@ -339,7 +340,7 @@ def get_snapped_feature_id(self, dialog, action, layer_name, option, widget_name action.setChecked(False) return # Block the signals of de dialog so that the key ESC does not close it - dialog.blockSignals(True) + dialog.key_escape.disconnect() self.vertex_marker = self.snapper_manager.vertex_marker @@ -361,6 +362,7 @@ def get_snapped_feature_id(self, dialog, action, layer_name, option, widget_name tools_gw.disconnect_signal('info_snapping', 'get_snapped_feature_id_ep_canvasClicked_get_id') emit_point = QgsMapToolEmitPoint(self.canvas) + self.previous_map_tool = global_vars.canvas.mapTool() self.canvas.setMapTool(emit_point) tools_gw.connect_signal(emit_point.canvasClicked, partial(self._get_id, dialog, action, option, emit_point, child_type), 'info_snapping', 'get_snapped_feature_id_ep_canvasClicked_get_id') @@ -747,6 +749,7 @@ def _manage_actions_signals(self, complet_result, list_points, new_feature, tab_ self.action_section.triggered.connect(partial(self._open_section_form)) self.action_help.triggered.connect(partial(self._open_help, self.feature_type)) self.ep = QgsMapToolEmitPoint(self.canvas) + self.previous_map_tool = global_vars.canvas.mapTool() self.action_interpolate.triggered.connect(partial(self._activate_snapping, complet_result, self.ep)) # Disable action edit if user can't edit @@ -874,6 +877,16 @@ def _disconnect_signals(self): except Exception: pass + try: + tools_gw.disconnect_signal('info_snapping') + except Exception: + pass + + try: + global_vars.canvas.setMapTool(self.previous_map_tool) + except Exception: + pass + self.connected = False global is_inserting is_inserting = False @@ -1161,6 +1174,7 @@ def _manage_action_copy_paste(self, dialog, feature_type, tab_type=None): # Set map tool emit point and signals tools_gw.disconnect_signal('info_snapping', 'manage_action_copy_paste_ep_canvasClicked') emit_point = QgsMapToolEmitPoint(global_vars.canvas) + self.previous_map_tool = global_vars.canvas.mapTool() global_vars.canvas.setMapTool(emit_point) tools_gw.disconnect_signal('info_snapping', 'manage_action_copy_paste_xyCoordinates_mouse_move') tools_gw.connect_signal(global_vars.canvas.xyCoordinates, self._manage_action_copy_paste_mouse_move, @@ -4258,7 +4272,7 @@ def _get_id(self, dialog, action, option, emit_point, child_type, point, event): def _set_to_arc(self, feat_id, child_type): """ - Function called in def get_id(self, dialog, action, option, point, event): + Function called in def _get_id(self, dialog, action, option, emit_point, child_type, point, event): getattr(self, options[option][1])(feat_id, child_type) :param feat_id: Id of the snapped feature @@ -4299,6 +4313,7 @@ def _cancel_snapping_tool(self, dialog, action): tools_qgis.disconnect_snapping(False, None, self.vertex_marker) tools_gw.disconnect_signal('info_snapping') dialog.blockSignals(False) + dialog.key_escape.connect(partial(tools_gw.close_dialog, dialog)) action.setChecked(False) self.signal_activate.emit() From 79ef3341f84faed849cd9adba9a09986d90d8148 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Thu, 27 Oct 2022 12:44:18 +0200 Subject: [PATCH 31/36] Bug fix: feature_delete -- add gully for ud projects --- core/toolbars/edit/feature_delete_button.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/toolbars/edit/feature_delete_button.py b/core/toolbars/edit/feature_delete_button.py index 0ce0390eb..7940535a9 100644 --- a/core/toolbars/edit/feature_delete_button.py +++ b/core/toolbars/edit/feature_delete_button.py @@ -28,6 +28,8 @@ def __init__(self, icon_path, action_name, text, toolbar, action_group, list_fea self.list_feature_type = list_feature_type if not self.list_feature_type: self.list_feature_type = tuple(['ARC', 'NODE', 'CONNEC']) + if global_vars.project_type == 'ud': + self.list_feature_type += ('GULLY',) else: self.list_feature_type = tuple(self.list_feature_type) if len(self.list_feature_type) == 1: From 20950ff2ce228290e06508f799dba35c9e0b1143 Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Fri, 28 Oct 2022 10:10:56 +0200 Subject: [PATCH 32/36] Enhancement: add 'Open plugin folder' to giswater menu --- core/load_project_menu.py | 20 +++++++++++++++++++- icons/dialogs/20x20/108.png | Bin 0 -> 7061 bytes metadata.txt | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 icons/dialogs/20x20/108.png diff --git a/core/load_project_menu.py b/core/load_project_menu.py index 9efa21e06..7df9891c0 100644 --- a/core/load_project_menu.py +++ b/core/load_project_menu.py @@ -142,6 +142,15 @@ def read_menu(self, project_loaded): # endregion + # region Open plugin folder + if global_vars.plugin_dir: + icon_path = f"{icon_folder}{os.sep}dialogs{os.sep}20x20{os.sep}108.png" + folder_icon = QIcon(icon_path) + action_open_plugin_path = self.main_menu.addAction(f"Open plugin folder") + action_open_plugin_path.setIcon(folder_icon) + action_open_plugin_path.triggered.connect(self._open_plugin_path) + # endregion + # region Advanced action_manage_file = self.main_menu.addAction(f"Advanced") action_manage_file.triggered.connect(self._open_manage_file) @@ -157,7 +166,7 @@ def read_menu(self, project_loaded): log_folder_volume = f"{round(size / (1024 * 1024), 2)} MB" icon_path = f"{icon_folder}{os.sep}dialogs{os.sep}20x20{os.sep}102.png" folder_icon = QIcon(icon_path) - action_open_path = self.main_menu.addAction(f"Open folder ({log_folder_volume})") + action_open_path = self.main_menu.addAction(f"Open user folder ({log_folder_volume})") action_open_path.setIcon(folder_icon) action_open_path.triggered.connect(self._open_config_path) # endregion @@ -188,6 +197,15 @@ def _open_config_path(self): tools_qgis.show_warning(message, parameter=path) + def _open_plugin_path(self): + """ Opens the OS-specific Plugin directory """ + + path = os.path.realpath(global_vars.plugin_dir) + status, message = tools_os.open_file(path) + if status is False and message is not None: + tools_qgis.show_warning(message, parameter=path) + + def _open_manage_file(self): """ Manage files dialog:: """ diff --git a/icons/dialogs/20x20/108.png b/icons/dialogs/20x20/108.png new file mode 100644 index 0000000000000000000000000000000000000000..0c32f27777dfd098df60ffaf4ce02b84e818ccd3 GIT binary patch literal 7061 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 Date: Fri, 28 Oct 2022 11:39:17 +0200 Subject: [PATCH 33/36] Bug fix: element field_id for auto-completion --- core/shared/element.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/shared/element.py b/core/shared/element.py index 5e6c05ab7..b2a488de6 100644 --- a/core/shared/element.py +++ b/core/shared/element.py @@ -113,7 +113,7 @@ def get_element(self, new_element_id=True, feature=None, feature_type=None, sele # Adding auto-completion to a QLineEdit table_object = "element" - tools_gw.set_completer_object(self.dlg_add_element, table_object) + tools_gw.set_completer_object(self.dlg_add_element, table_object, field_id='element_id') # Set signals excluded_layers = ["v_edit_arc", "v_edit_node", "v_edit_connec", "v_edit_element", "v_edit_gully", @@ -359,7 +359,7 @@ def _fill_tbl_new_element(self, dialog, feature_type, feature_id): # Adding auto-completion to a QLineEdit self.table_object = "element" - tools_gw.set_completer_object(dialog, self.table_object) + tools_gw.set_completer_object(dialog, self.table_object, field_id='element_id') def _manage_element_accept(self, table_object): From 32b1441eb84da80a4199e39ecae3bece1e0b143e Mon Sep 17 00:00:00 2001 From: "DESKTOP-C0CK81O\\Usuario" Date: Sat, 29 Oct 2022 14:12:42 +0200 Subject: [PATCH 34/36] Update metadata making compatible with PostgreSQL-15 --- metadata.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata.txt b/metadata.txt index 08162f585..8e3bac6e6 100644 --- a/metadata.txt +++ b/metadata.txt @@ -29,4 +29,4 @@ experimental=False minorQgisVersion=3.16 majorQgisVersion=3.99 minorPgVersion=9.05.00 -majorPgVersion=14.00.99 \ No newline at end of file +majorPgVersion=15.00.99 \ No newline at end of file From d0133e620190940628680df8e32aac68f650114e Mon Sep 17 00:00:00 2001 From: Sergi Maspons Date: Wed, 2 Nov 2022 14:43:53 +0100 Subject: [PATCH 35/36] Enhancement. add Giswater header --- resources/example/dxf/ddl.sql | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/example/dxf/ddl.sql b/resources/example/dxf/ddl.sql index 33ed8427b..1a06b1691 100644 --- a/resources/example/dxf/ddl.sql +++ b/resources/example/dxf/ddl.sql @@ -1,4 +1,8 @@ - +/* +This file is part of Giswater 3 +The program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. +This version of Giswater is provided by Giswater Association +*/ SET search_path=SCHEMA_NAME; --add import dxf to toolbox UPDATE audit_cat_function set istoolbox=true where id=2784; From 0fa5b3f690ebd53cd7cfed6d691e7eb64c33d277 Mon Sep 17 00:00:00 2001 From: Edgar Fuste Date: Wed, 2 Nov 2022 16:16:55 +0100 Subject: [PATCH 36/36] Update dbmodel --- dbmodel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dbmodel b/dbmodel index f270c8a1a..a407a0703 160000 --- a/dbmodel +++ b/dbmodel @@ -1 +1 @@ -Subproject commit f270c8a1a688496d9b6ce6905729da13affaa1e2 +Subproject commit a407a0703b21510fe42f9fb88590a3a36a0f879e