def add_attribute(attribute: Attribute): sql_text = ''' INSERT INTO attributes(name,is_required,create_time,create_op,delete_state) VALUES ('{}', {}, '{}', {}, {})''' \ .format(attribute.name(), attribute.is_required(), attribute.create_time(), attribute.create_op(), attribute.delete_state()) return execute(sql_text)
def _init_checkbox(self): all_attr_list = attribute_handler.get_all_attributes() if self.service_id: self.checked_dict = self._get_service_attribute() row = 0 column = 0 model = QtGui.QStandardItemModel() for attr in all_attr_list: item = QtGui.QStandardItem(attr[1]) if attr[3] == Attribute.required(): # 如果是必填,则默认勾选,同时不允许修改 item.setCheckState(Qt.Checked) item.setFlags(QtCore.Qt.NoItemFlags) else: item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) # 如果该属性已经关联了服务项目,则默认勾选 if attr[0] not in self.checked_dict: item.setCheckState(Qt.Unchecked) else: item.setCheckState(Qt.Checked) self.checkbox_dict[attr[0]] = item model.setItem(row, column, item) # 表格中每行显示5条记录 column += 1 if column >= 5: row += 1 column = 0 self.tableView.horizontalHeader().setStretchLastSection(True) self.tableView.setModel(model)
def get_all_option_attributes(): sql_text = '''SELECT id, name FROM attributes WHERE delete_state = 0 and is_required = {} ORDER BY display_order, name ''' \ .format(Attribute.option()) return execute(sql_text)
def get_all_required_attributes(): sql_text = '''SELECT id, name FROM attributes WHERE delete_state = 0 and is_required = {} ORDER BY name ''' \ .format(Attribute.required()) return execute(sql_text)
def do_add(self): attr_name, ok = QInputDialog.getText(self.add, '新增属性', '请输入属性名') if attr_name and ok: exists_info = attribute_handler.get_count_by_name(attr_name) if exists_info: if not exists_info[1]: QMessageBox.information(self.add, '提示', '该属性已经存在,请重新输入') return else: attribute_handler.undo_delete_attribute_logical( exists_info[2]) else: attribute = Attribute() attribute.create_op(Common.config.login_user_info[0]) attribute.name(attr_name) attribute.create_time(time_utils.get_now()) attribute_handler.add_attribute(attribute) QMessageBox.information(self.add, '提示', '新增成功') self._init_table()
def get_attr_by_name(attr_name): sql_text = '''select id, name from attributes where name = '{}' and delete_state = 0 and is_required = {}''' \ .format(attr_name, Attribute.option()) return execute(sql_text, True)
def test_attribute_string_conversion(self): attribute_name = 'Strength' attribute = Attribute(attribute_name, []) self.assertEqual(str(attribute), attribute_name + ': 0 + 0 = 0')