def __init__(self, owner): super(AssignmentDialog, self).__init__() self.ui = Ui_assignmentDialog() self.ui.setupUi(self) self.tbl = self.ui.tableWidget self.owner = owner self._load_label() self._load_table(self.owner.assignments) self.tbl.cellClicked.connect(self._item_selected) self.ui.addBtn.clicked.connect(self._add_clicked) self.ui.saveBtn.clicked.connect(self._save_clicked) self.ui.removeBtn.clicked.connect(self._remove_clicked) self.setMinimumWidth(800)
class AssignmentDialog(QDialog): # noinspection PyUnresolvedReferences def __init__(self, owner): super(AssignmentDialog, self).__init__() self.ui = Ui_assignmentDialog() self.ui.setupUi(self) self.tbl = self.ui.tableWidget self.owner = owner self._load_label() self._load_table(self.owner.assignments) self.tbl.cellClicked.connect(self._item_selected) self.ui.addBtn.clicked.connect(self._add_clicked) self.ui.saveBtn.clicked.connect(self._save_clicked) self.ui.removeBtn.clicked.connect(self._remove_clicked) self.setMinimumWidth(800) def _load_label(self): txt = 'Assignments for ' if type(self.owner) is Project: txt += self.owner.nickname else: txt += self.owner.name self.ui.ownerLabel.setText(txt) def _load_table(self, assignments): from PyQt5.QtCore import Qt self.tbl.clear() if not assignments: return self.tbl.setRowCount(len(assignments)) self.tbl.setColumnCount(4) self.tbl.setHorizontalHeaderLabels([ 'Employee' if type(self.owner) is Project else 'Project', 'FM', 'LM', '%' ]) self.tbl.verticalHeader().hide() self.tbl.setColumnWidth(0, 180) self.tbl.setColumnWidth(1, 50) self.tbl.setColumnWidth(2, 50) self.tbl.setColumnWidth(3, 30) for row, asn in enumerate(assignments): if type(self.owner) is Project: item = QTableWidgetItem(asn.employee_name) else: item = QTableWidgetItem(asn.project_name) self.tbl.setItem(row, 0, item) item = QTableWidgetItem(Monkey.prettify(asn.first_month)) item.setTextAlignment(Qt.AlignRight) self.tbl.setItem(row, 1, item) item = QTableWidgetItem(Monkey.prettify(asn.last_month)) item.setTextAlignment(Qt.AlignRight) self.tbl.setItem(row, 2, item) item = QTableWidgetItem(str(asn.effort)) item.setTextAlignment(Qt.AlignRight) self.tbl.setItem(row, 3, item) self.tbl.setCurrentItem(self.tbl.item(0, 0)) self._item_selected() def _item_selected(self): asn = self.owner.assignments[self.tbl.currentIndex().row()] self.ui.firstMonthEdit.setText(Monkey.prettify(asn.first_month)) self.ui.lastMonthEdit.setText(Monkey.prettify(asn.last_month)) self.ui.effortEdit.setText(str(asn.effort)) self.ui.notesEdit.setPlainText(asn.notes) def _add_clicked(self): # self.current_prj_id = None self._clear_form() self.ui.firstMonthEdit.setFocus() def _clear_form(self): self.ui.firstMonthEdit.setText(None) self.ui.lastMonthEdit.setText(None) self.ui.effortEdit.setText(None) self.ui.notesEdit.setPlainText(None) def _save_clicked(self): pass # prj = self._valid_prj() # if prj: # prj.save() # self._load() def _is_valid_input(self): pass # name = self.ui.nameEdit.text() # if not name: # msg = 'Project name is required!' # QMessageBox.critical(QMessageBox(), 'Input Error', msg) # self.ui.nameEdit.setFocus() # return None # nickname = self.ui.nicknameEdit.text() # if not nickname: # msg = 'Project nickname is required!' # QMessageBox.critical(QMessageBox(), 'Input Error', msg) # self.ui.nicknameEdit.setFocus() # return None # if self.project_dict[nickname]: # msg = 'Project nickname must be unique!' # QMessageBox.critical(QMessageBox(), 'Input Error', msg) # self.ui.nicknameEdit.setFocus() # return None # first_month = self.ui.firstMonthEdit.text() # last_month = self.ui.lastMonthEdit.text() # if not Monkey.is_valid_pair(first_month, last_month): # msg = 'Invalid time frame: invalid month or first month after last month!' # QMessageBox.critical(QMessageBox(), 'Input Error', msg) # self.ui.firstMonthEdit.setFocus() # return None # notes = self.ui.notesEdit.toPlainText() # return Project([ # self.current_prj_id, nickname, name, int(first_month), int(last_month), notes # ]) def _remove_clicked(self): # nickname = self.ui.nicknameEdit.text() msg = 'Are you sure you want to remove assignment ?' reply = QMessageBox.question(QMessageBox(), 'Double check', msg)