示例#1
0
    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)
示例#2
0
 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()
示例#3
0
 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
示例#4
0
    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"请选择一行进行更新!")
示例#5
0
 def all_project(self):
     search_datas = ProjectManager.get_all_project_and_format()
     self.refresh_project(search_datas)