class AllManufactersWindow(QFrame): def __init__(self): QFrame.__init__(self) self.ui = Ui_all_manufacters_form() self.ui.setupUi(self) #self.manufacters = query_session.query(Manufacter).all() self.drawTable() QObject.connect(self.ui.add_manufacter_btn, SIGNAL("clicked()"), self.showNewManufacterForm) QObject.connect(self.ui.del_manufacter_btn, SIGNAL("clicked()"), self.delManufacter) def drawTable(self): self.manufacters = query_session.query(Manufacter).all() self.ui.manufacters_table.clear() self.ui.manufacters_table.setRowCount(1) self.ui.manufacters_table.setColumnCount(3) self.ui.manufacters_table.setHorizontalHeaderLabels([QString.fromUtf8('Номер'), QString.fromUtf8('Название'), QString.fromUtf8('Страна')]) self.ui.manufacters_table.resizeColumnsToContents() for manufacter in self.manufacters: data = [] data.append(str(manufacter.id)) data.append(manufacter.name) data.append(manufacter.country) for i in range(0,3): tableitem = QTableWidgetItem() tableitem.setText(data[i]) tableitem.font = QFont("Arial", 10) tableitem.font.setBold(True) tableitem.textcolor = QColor("black") self.ui.manufacters_table.setItem(self.ui.manufacters_table.rowCount() - 1,i,tableitem) self.ui.manufacters_table.setRowCount(self.ui.manufacters_table.rowCount()+1) self.ui.manufacters_table.resizeColumnsToContents() def showNewManufacterForm(self): self.new_manufacter_form = NewManufacterForm(self) QObject.connect(self.new_manufacter_form, SIGNAL("manufacterAdded()"), self.drawTable) self.new_manufacter_form.setWindowModality(2) self.new_manufacter_form.show() def delManufacter(self): row = self.ui.manufacters_table.currentRow() id_for_delete = int(self.ui.manufacters_table.item(row, 0).text()) manufacter_for_delete = query_session.query(Manufacter).filter_by(id=id_for_delete).one() s = Session() s.delete(manufacter_for_delete) s.commit() s.close self.drawTable()
def setManufacter(self,num): c = self.ui.manufacter_combo.count() if (num < self.ui.manufacter_combo.count() - 1): manufacter = query_session.query(Manufacter).filter_by(name=unicode(self.ui.manufacter_combo.itemText(num))).one() self.manufacter = manufacter else: self.new_manufacter_form = NewManufacterForm(self) self.new_manufacter_form.setWindowModality(2) self.new_manufacter_form.show() QObject.connect(self.new_manufacter_form, SIGNAL("manufacterAdded()"), self.drawManufacterCombo)
class NewDrugForm(QFrame): def __init__(self): QFrame.__init__(self) self.ui = Ui_new_drug_form() self.ui.setupUi(self) QObject.connect(self.ui.ok_btn, SIGNAL("clicked()"), self.addDrug) self.drawManufacterCombo() #self.setManufacter(0) def addDrug(self): drug = Drug(str(self.ui.drug_name.text().toUtf8()), self.manufacter, str(self.ui.serial_number.text().toUtf8()), _date_from_str(self.ui.best_before.text()), float(self.ui.price.text().toUtf8())) s = Session() s.add(drug) s.commit() s.close() self.emit(SIGNAL("drugCreated()")) self.close() def drawManufacterCombo(self): combo = self.ui.manufacter_combo items = self.manufacters = query_session.query(Manufacter).all() combo.clear() for item in items: combo.addItem(item.name) combo.addItem(QString.fromUtf8('Новый производитель')) QObject.connect(self.ui.manufacter_combo, SIGNAL("currentIndexChanged(int)"), self.setManufacter) self.setManufacter(0) def setManufacter(self,num): c = self.ui.manufacter_combo.count() if (num < self.ui.manufacter_combo.count() - 1): manufacter = query_session.query(Manufacter).filter_by(name=unicode(self.ui.manufacter_combo.itemText(num))).one() self.manufacter = manufacter else: self.new_manufacter_form = NewManufacterForm(self) self.new_manufacter_form.setWindowModality(2) self.new_manufacter_form.show() QObject.connect(self.new_manufacter_form, SIGNAL("manufacterAdded()"), self.drawManufacterCombo)
def showNewManufacterForm(self): self.new_manufacter_form = NewManufacterForm(self) QObject.connect(self.new_manufacter_form, SIGNAL("manufacterAdded()"), self.drawTable) self.new_manufacter_form.setWindowModality(2) self.new_manufacter_form.show()