def ud_hydrology_selector(self): """ Dialog hydrology_selector.ui """ self.dlg_hydrology_selector = HydrologySelector() self.load_settings(self.dlg_hydrology_selector) self.dlg_hydrology_selector.btn_accept.clicked.connect(self.save_hydrology) self.dlg_hydrology_selector.hydrology.currentIndexChanged.connect(self.update_labels) self.dlg_hydrology_selector.txt_name.textChanged.connect(partial(self.filter_cbx_by_text, "cat_hydrology", self.dlg_hydrology_selector.txt_name, self.dlg_hydrology_selector.hydrology)) sql = ("SELECT DISTINCT(name), hydrology_id FROM " + self.schema_name + ".cat_hydrology ORDER BY name") rows = self.controller.get_rows(sql) if not rows: message = "Any data found in table" self.controller.show_warning(message, parameter='cat_hydrology') return False utils_giswater.set_item_data(self.dlg_hydrology_selector.hydrology, rows) sql = ("SELECT DISTINCT(t1.name) FROM " + self.schema_name + ".cat_hydrology AS t1" " INNER JOIN " + self.schema_name + ".inp_selector_hydrology AS t2 ON t1.hydrology_id = t2.hydrology_id " " WHERE t2.cur_user = current_user") row = self.controller.get_row(sql) if row: utils_giswater.setWidgetText(self.dlg_hydrology_selector, self.dlg_hydrology_selector.hydrology, row[0]) else: utils_giswater.setWidgetText(self.dlg_hydrology_selector, self.dlg_hydrology_selector.hydrology, 0) self.update_labels() self.dlg_hydrology_selector.setWindowFlags(Qt.WindowStaysOnTopHint) self.dlg_hydrology_selector.exec_()
def filter_cbx_by_text(self, tablename, widgettxt, widgetcbx): sql = ("SELECT DISTINCT(name), hydrology_id FROM " + self.schema_name + "." + str(tablename) + "" " WHERE name LIKE '%" + str(widgettxt.text()) + "%'" " ORDER BY name ") rows = self.controller.get_rows(sql) if not rows: message = "Check the table 'cat_hydrology' " self.controller.show_warning(message) return False utils_giswater.set_item_data(widgetcbx, rows) self.update_labels()
def ws_times(self): """ Open dialog ws_times.ui""" dlg_wstimes = WStimes() self.load_settings(dlg_wstimes) dlg_wstimes.duration.setValidator(QIntValidator()) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_times ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(dlg_wstimes.statistic, rows, 1) dlg_wstimes.btn_accept.clicked.connect(partial(self.update_table, 'inp_times', dlg_wstimes)) dlg_wstimes.btn_cancel.clicked.connect(dlg_wstimes.close) self.go2epa_options_get_data('inp_times', dlg_wstimes) dlg_wstimes.setWindowFlags(Qt.WindowStaysOnTopHint) dlg_wstimes.exec_()
def fill_fields(self): """ Fill combo boxes of the form """ # Visit tab # Set current date and time current_date = QDate.currentDate() self.dlg_lot.startdate.setDate(current_date) self.dlg_lot.enddate.setDate(current_date) # Set current user sql = "SELECT current_user" row = self.controller.get_row(sql, commit=self.autocommit) utils_giswater.setWidgetText(self.dlg_lot, self.user_name, row[0]) # Fill ComboBox cmb_visit_class sql = ("SELECT id, idval, feature_type" " FROM " + self.schema_name + ".om_visit_class " " WHERE ismultifeature is False" " ORDER BY idval") visitclass_ids = self.controller.get_rows(sql, commit=self.autocommit) if visitclass_ids: utils_giswater.set_item_data(self.dlg_lot.cmb_visit_class, visitclass_ids, 1) # Fill ComboBox cmb_assigned_to sql = ("SELECT id, idval" " FROM " + self.schema_name + ".cat_team " " WHERE active is True " " ORDER BY idval") users = self.controller.get_rows(sql, commit=self.autocommit) if users: utils_giswater.set_item_data(self.dlg_lot.cmb_assigned_to, users, 1) # TODO fill combo with correct table # Fill ComboBox cmb_status sql = ("SELECT id, idval" " FROM " + self.schema_name + ".om_visit_class " " ORDER BY idval") status = self.controller.get_rows(sql, commit=self.autocommit) status = [(0, 'PLANIFICAT'), (1, 'EXITOS'), (2, 'FAIL'), (3, 'VALIDAT')] if status: utils_giswater.set_item_data(self.dlg_lot.cmb_status, status, 1, sort_combo=False) # Relations tab # fill feature_type sql = ("SELECT id, id" " FROM " + self.schema_name + ".sys_feature_type" " WHERE net_category = 1" " ORDER BY id") feature_type = self.controller.get_rows(sql, log_sql=False, commit=self.autocommit) if feature_type: utils_giswater.set_item_data(self.dlg_lot.feature_type, feature_type, 1)
def ws_options(self): """ Open dialog ws_options.ui """ # Create dialog self.dlg_wsoptions = WSoptions() self.load_settings(self.dlg_wsoptions) # Allow QTextView only Double text self.dlg_wsoptions.viscosity.setValidator(QDoubleValidator()) self.dlg_wsoptions.trials.setValidator(QDoubleValidator()) self.dlg_wsoptions.accuracy.setValidator(QDoubleValidator()) self.dlg_wsoptions.emitter_exponent.setValidator(QDoubleValidator()) self.dlg_wsoptions.checkfreq.setValidator(QDoubleValidator()) self.dlg_wsoptions.maxcheck.setValidator(QDoubleValidator()) self.dlg_wsoptions.damplimit.setValidator(QDoubleValidator()) self.dlg_wsoptions.node_id.setValidator(QDoubleValidator()) self.dlg_wsoptions.unbalanced_n.setValidator(QDoubleValidator()) self.dlg_wsoptions.specific_gravity.setValidator(QDoubleValidator()) self.dlg_wsoptions.diffusivity.setValidator(QDoubleValidator()) self.dlg_wsoptions.tolerance.setValidator(QDoubleValidator()) self.dlg_wsoptions.demand_multiplier.setValidator(QDoubleValidator()) self.dlg_wsoptions.rtc_enabled.setChecked(True) # Set values from widgets of type QComboBox sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_units ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.units, rows) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_headloss ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.headloss, rows) sql = "SELECT pattern_id, pattern_id FROM "+self.schema_name+".inp_pattern ORDER BY pattern_id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.pattern, rows) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_unbal ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.unbalanced, rows) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_hyd ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.hydraulics, rows) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_qual ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.quality, rows) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_valvemode ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.valve_mode, rows) sql = "SELECT id::text, id::text FROM "+self.schema_name+".anl_mincut_result_cat ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.valve_mode_mincut_result, rows) sql = "SELECT id, code FROM "+self.schema_name+".ext_cat_period ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.rtc_period_id, rows, 1) sql = "SELECT id, id FROM "+self.schema_name+".inp_value_opti_rtc_coef ORDER BY id" rows = self.controller.get_rows(sql) utils_giswater.set_item_data(self.dlg_wsoptions.rtc_coefficient, rows) # TODO if self.dlg_wsoptions.valve_mode.currentText() != "MINCUT RESULTS": self.dlg_wsoptions.valve_mode_mincut_result.setEnabled(False) if self.dlg_wsoptions.hydraulics.currentText() == "": self.dlg_wsoptions.hydraulics_fname.setEnabled(False) else: self.dlg_wsoptions.hydraulics_fname.setEnabled(True) # TODO if self.dlg_wsoptions.quality.currentText() == "TRACE": self.dlg_wsoptions.node_id.setEnabled(False) else: self.dlg_wsoptions.node_id.setEnabled(True) if utils_giswater.isChecked(self.dlg_wsoptions, self.dlg_wsoptions.rtc_enabled): self.dlg_wsoptions.rtc_period_id.setEnabled(True) self.dlg_wsoptions.rtc_coefficient.setEnabled(True) self.dlg_wsoptions.unbalanced.currentIndexChanged.connect( partial(self.enable_linetext, self.dlg_wsoptions, self.dlg_wsoptions.unbalanced, self.dlg_wsoptions.unbalanced_n, "STOP")) self.dlg_wsoptions.hydraulics.currentIndexChanged.connect( partial(self.enable_linetext, self.dlg_wsoptions, self.dlg_wsoptions.hydraulics, self.dlg_wsoptions.hydraulics_fname, "")) self.dlg_wsoptions.quality.currentIndexChanged.connect( partial(self.enable_linetext, self.dlg_wsoptions, self.dlg_wsoptions.quality, self.dlg_wsoptions.node_id, "TRACE")) self.dlg_wsoptions.valve_mode.currentIndexChanged.connect( partial(self.enable_linetext, self.dlg_wsoptions, self.dlg_wsoptions.valve_mode, self.dlg_wsoptions.valve_mode_mincut_result, ("EPA TABLES", "INVENTORY VALUES"))) self.dlg_wsoptions.rtc_enabled.stateChanged.connect(self.enable_per_coef) self.dlg_wsoptions.btn_accept.clicked.connect( partial(self.update_table, 'inp_options', self.dlg_wsoptions)) self.dlg_wsoptions.btn_cancel.clicked.connect(self.dlg_wsoptions.close) self.go2epa_options_get_data('inp_options', self.dlg_wsoptions) self.dlg_wsoptions.setWindowFlags(Qt.WindowStaysOnTopHint) self.dlg_wsoptions.exec_()
def fill_combos(self): """ Fill combo boxes of the form """ # Visit tab # Fill ComboBox visitcat_id # save result in self.visitcat_ids to get id depending on selected combo sql = ("SELECT id, name" " FROM " + self.schema_name + ".om_visit_cat" " WHERE active is true" " ORDER BY name") self.visitcat_ids = self.controller.get_rows(sql, commit=self.autocommit) if self.visitcat_ids: utils_giswater.set_item_data(self.dlg.visitcat_id, self.visitcat_ids, 1) # now get default value to be show in visitcat_id sql = ("SELECT value" " FROM " + self.schema_name + ".config_param_user" " WHERE parameter = 'visitcat_vdefault'" " AND user = '******'") row = self.controller.get_row(sql, commit=self.autocommit) if row: # if int then look for default row ans set it try: utils_giswater.set_combo_itemData(self.dlg.visitcat_id, row[0], 0, 1) for i in range(0, self.dlg.visitcat_id.count()): elem = self.dlg.visitcat_id.itemData(i) if str(row[0]) == str(elem[0]): utils_giswater.setWidgetText(self.dlg.visitcat_id, (elem[1])) except TypeError: pass except ValueError: pass # Relations tab # fill feature_type sql = ("SELECT id" " FROM " + self.schema_name + ".sys_feature_type" " WHERE net_category = 1" " ORDER BY id") rows = self.controller.get_rows(sql, commit=self.autocommit) utils_giswater.fillComboBox("feature_type", rows, allow_nulls=False) # Event tab # Fill ComboBox parameter_type_id sql = ("SELECT id" " FROM " + self.schema_name + ".om_visit_parameter_type" " ORDER BY id") parameter_type_ids = self.controller.get_rows(sql, commit=self.autocommit) utils_giswater.fillComboBox("parameter_type_id", parameter_type_ids, allow_nulls=False) # now get default value to be show in parameter_type_id sql = ("SELECT value" " FROM " + self.schema_name + ".config_param_user" " WHERE parameter = 'om_param_type_vdefault'" " AND user = '******'") row = self.controller.get_row(sql, commit=self.autocommit) if row: # if int then look for default row ans set it try: parameter_type_id = int(row[0]) combo_value = parameter_type_ids[parameter_type_id] combo_index = self.parameter_type_id.findText(combo_value) self.parameter_type_id.setCurrentIndex(combo_index) except TypeError: pass except ValueError: pass