def add_new_preset(self): new_preset_name = self.line_edit.text() exclude_list = ['environment_config'] presets = env_server.get_server_presets() exclude_list.extend(presets['presets_list']) if new_preset_name and new_preset_name not in exclude_list: self.line_edit.setText('') root_item = QtGui.QTreeWidgetItem() root_item.setText(0, new_preset_name) env_server.add_server_preset(new_preset_name) self.presets_tree_widget.addTopLevelItem(root_item) elif new_preset_name in exclude_list: message_box = QtGui.QMessageBox( QtGui.QMessageBox.Information, 'Already exists', '<p>Server Preset named <b>{0}</b> already in Presets List.</p><p>Choose another Name.</p>'.format(new_preset_name), QtGui.QMessageBox.StandardButton, self, ) message_box.exec_()
def check_name_uniqueness(self, data): name = data.get('name') if not name: return True search_type = self.tactic_widget.get_search_type() if not search_type and self.sobject: search_key_split = tc.split_search_key(self.sobject.get_search_key()) search_type = search_key_split.get('search_type') if name and search_type: filters = [('name', name)] project = self.stype.get_project() existing = tc.server_start(project=project.get_code()).query(search_type, filters) if self.get_view() == 'edit': # check if we editing and leaved the same name, not warn about uniqueness if self.init_data.get('name') == name: existing = False if existing: msb = QtGui.QMessageBox(QtGui.QMessageBox.Question, 'This Name already used!', "Do you want to use this name anyway?", QtGui.QMessageBox.NoButton, self) msb.addButton("Yes", QtGui.QMessageBox.YesRole) msb.addButton("No", QtGui.QMessageBox.NoRole) msb.exec_() reply = msb.buttonRole(msb.clickedButton()) if reply == QtGui.QMessageBox.YesRole: return True elif reply == QtGui.QMessageBox.NoRole: return False return True
def check_name_uniqueness(self, data): existing = False name = data.get('name') if not name: return True search_type = self.tactic_widget.get_search_type() if not search_type and self.sobject: search_key_split = tc.split_search_key( self.sobject.get_search_key()) search_type = search_key_split.get('search_type') if name and search_type: # better version, that take parents into account parent_sobject = self.tactic_widget.get_parent_sobject() if parent_sobject: related_sobjects, info = parent_sobject.get_related_sobjects( child_stype=self.stype, parent_stype=parent_sobject.get_stype()) else: if self.sobject: if self.sobject.get_value('name'): filters = [('name', self.sobject.get_value('name'))] related_sobjects, info = tc.get_sobjects( self.stype.get_code(), filters, project_code=self.stype.get_project().get_code()) else: related_sobjects = {} else: related_sobjects = {} for related_sobject in related_sobjects.values(): if related_sobject.get_value('name') == name: existing = True if self.get_view() == 'edit': # check if we editing and leaved the same name, not warn about uniqueness if self.init_data.get('name') == name: existing = False if existing: msb = QtGui.QMessageBox( QtGui.QMessageBox.Question, 'This Name already used!', "Do you want to use this name anyway?", QtGui.QMessageBox.NoButton, self) msb.addButton("Yes", QtGui.QMessageBox.YesRole) msb.addButton("No", QtGui.QMessageBox.NoRole) msb.exec_() reply = msb.buttonRole(msb.clickedButton()) if reply == QtGui.QMessageBox.YesRole: return True elif reply == QtGui.QMessageBox.NoRole: return False return True
def wrong_project_message(self, skey): print(skey) msb = QtGui.QMessageBox(QtGui.QMessageBox.Question, 'Item {code}, not belongs to current project!'.format(**skey), '<p>Current project is <b>{0}</b>, switch to <b>{project}</b> related to this item?</p>'.format( env_server.get_project(), **skey) + '<p>This will restart TACTIC Handler!</p>', QtGui.QMessageBox.NoButton, env_inst.ui_main) msb.addButton("Switch to Project", QtGui.QMessageBox.YesRole) msb.addButton("Cancel", QtGui.QMessageBox.NoRole) msb.exec_() reply = msb.buttonRole(msb.clickedButton()) if reply == QtGui.QMessageBox.YesRole: env_server.set_project(skey['project']) skey_link = self.skeyLineEdit.text() self.close() self.create_ui_main() self.show() self.skeyLineEdit.setText(skey_link) self.go_by_skey()