def __init__(self,parent=None): super(MyTable,self).__init__(parent) head_labels = constant.PROJECT_COLUMN self.setColumnCount(len(head_labels)) self.setRowCount(0) self.setHorizontalHeaderLabels(head_labels) search_datas = ProjectManager.get_all_project_and_format() self.refresh_project(search_datas)
def add_project(self): dialog = Dialog() staff_data_list = StaffManager.search_idle_staff() for staff in staff_data_list: dialog.listWidgetA.addItem(QtGui.QListWidgetItem(staff[1])) if dialog.exec_(): dic = dialog.get_add_datas() attendee_ids = copy.deepcopy(dic['attendee_ids']) del dic['attendee_ids'] project = Project(**dic) project = ProjectManager.add_project(project) StaffManager.add_staff_project(project.id, attendee_ids) search_datas = ProjectManager.get_all_project_and_format() self.refresh_project(search_datas) dialog.destroy()
def delete_project(self): indexes = self.selectionModel().selectedRows() if len(indexes) == 0: ToolsManager.information_box(u"注意", u"请选择一行或多行进行删除!") else: button = ToolsManager.question_box(u"提醒", u"是否删除选中行?") if button == QtGui.QMessageBox.Ok: ids_list = [] for index in sorted(indexes): id_text = self.item(index.row(), 0).text() ids_list.append(int(id_text)) ProjectManager.delete_project(ids_list) StaffManager.delete_staff_project_by_project_ids(ids_list) search_datas = ProjectManager.get_all_project_and_format() self.refresh_project(search_datas) else: pass
def update_project(self): indexes = self.selectionModel().selectedRows() if(len(indexes)) == 1: dialog = Dialog() id_text = self.item(indexes[0].row(), 0).text() project_item = ProjectManager.get_one_item_by_project_id(int(id_text)) dialog.name_edit.setText(project_item.name) dialog.search_id_edit.setText(project_item.search_id) dialog.source_place_edit.setCurrentIndex(dialog.source_place_edit.findText(project_item.source_place)) dialog.main_designer_edit.setText(project_item.main_designer) dialog.design_all_edit.setText(project_item.design_all) dialog.responsible_man_edit.setText(project_item.responsible_man) dialog.start_time_edit.setDate(project_item.start_time) dialog.end_time_edit.setDate(project_item.end_time) dialog.description_edit.setText(project_item.description) dialog.name_edit.setReadOnly(True) staff_str = StaffManager.search_staff_by_project_id(project_item.id) if staff_str == '': # 项目里没人 staff_data_list = StaffManager.search_idle_staff() for staff in staff_data_list: dialog.listWidgetA.addItem(staff[1]) # "1"是列表的的名字字段 else: staff_name_list = staff_str.split(',') for staff_name in staff_name_list: dialog.listWidgetB.addItem(staff_name) staff_data_list = StaffManager.search_idle_staff() for staff in staff_data_list: if staff[1] not in staff_name_list: dialog.listWidgetA.addItem(staff[1]) if dialog.exec_(): dic = dialog.get_add_datas() dic['id'] = int(id_text) ProjectManager.updata_project(dic) search_datas = ProjectManager.get_all_project_and_format() self.refresh_project(search_datas) dialog.destroy() else: # 弹出警告 ToolsManager.information_box(u"注意", u"请选择一行进行更新!")
def all_project(self): search_datas = ProjectManager.get_all_project_and_format() self.refresh_project(search_datas)