def accept(self): if self.uj_station: now = QDateTime.currentDateTime() network = QSqlTableModel() network.setTable("reged_station") rec_net = network.record() rec_net.remove(0) rec_net.setValue(0, self.station.text()) rec_net.setValue(1, self.ip.text()) rec_net.setValue(2, self.token.text()) rec_net.setValue(3, now) if network.insertRecord(-1, rec_net): network.submitAll() else: db.rollback() self.uj_station = False if self.valtozott: # Módosítani a db-t és a config.ini-t # config.ini update config.set('DEFAULT', 'secret key', self.token.text()) config.set('DEFAULT', 'station ip', self.ip.text()) config.set('DEFAULT', 'station id', self.station.text()) with open('config.ini', 'w') as configfile: config.write(configfile) # db update now = QDateTime.currentDateTime().toString( "yyyy-MM-ddThh:mm:ss.sss") model3 = QSqlQueryModel() query3 = QSqlQuery( f"update reged_station set station_id='{self.station.text()}', station_ip='{self.ip.text()}', timestamp='{now}' where secret_key='{self.token.text()}'", db=db) model3.setQuery(query3) self.valtozott = False super().accept()
def new_kiadas(self): self.kiadas_form_window = KiadasFormDialog() self.kiadas_form_window.setWindowTitle("Új kiadás rögzítése") self.kiadas_form_window.show() model = QSqlTableModel() model.setTable("kassza") record = model.record() record.remove(record.indexOf('id')) if self.kiadas_form_window.exec_(): mezo_rekord = [] for i in range(len(self.kiadas_form_window.mezo_ertekek)): if i != 4: mezo_rekord.append( self.kiadas_form_window.mezo_ertekek[i].text()) else: mezo_rekord.append( int(self.kiadas_form_window.mezo_ertekek[i].text()) * -1) for i in range(len(mezo_rekord)): record.setValue(i, mezo_rekord[i]) if model.insertRecord(-1, record): model.submitAll() else: db.rollback()
def new_berlet(self): self.berlet_form_window = BerletFormDialog() self.berlet_form_window.setWindowTitle("Bérlet vásárlás") self.berlet_form_window.show() model = QSqlTableModel() model.setTable("kassza") record = model.record() record.remove(record.indexOf('id')) if self.berlet_form_window.exec_(): for i in range(len(self.berlet_form_window.mezo_ertekek)): record.setValue(i, self.berlet_form_window.mezo_ertekek[i].text()) if model.insertRecord(-1, record): model.submitAll() else: db.rollback()
def new_adomany(self): self.adomany_form_window = AdomanyFormDialog() self.adomany_form_window.setWindowTitle("Adomány befizetés") self.adomany_form_window.show() model = QSqlTableModel() model.setTable("kassza") record = model.record() record.remove(record.indexOf('id')) if self.adomany_form_window.exec_(): mezo_rekord = [] for i in range(len(self.adomany_form_window.mezo_ertekek)): mezo_rekord.append( self.adomany_form_window.mezo_ertekek[i].text()) for i in range(len(mezo_rekord)): record.setValue(i, mezo_rekord[i]) if model.insertRecord(-1, record): model.submitAll() else: db.rollback()
def new_settings(parent): m_id = p1_id = p2_id = set = leg = 0 var = "" # manage_settings_window = GameSettingsDialog() # manage_settings_window.show() if manage_settings_window.exec_(): player1 = manage_settings_window.input_player1_name.text() player2 = manage_settings_window.input_player2_name.text() # A MATCH_ID-T AZ AUTOINCREMENTBŐL KELLENE VISSZAKÉRNI ÉS NEM IMPLICIT RANDOMBÓL GENERÁLNI m_id = random.randint(10, 1000000) # print(m_id) set = manage_settings_window.spin_legs.value() leg = manage_settings_window.spin_sets.value() if manage_settings_window.gomb_301.isChecked(): var = "301" elif manage_settings_window.gomb_401.isChecked(): var = "401" elif manage_settings_window.gomb_501.isChecked(): var = "501" else: var = "701" # print(var) player1_id_model = QSqlQueryModel() query1 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player1}'", db=db) player1_id_model.setQuery(query1) if player1_id_model.record(0).value(0): p1_id = int(player1_id_model.record(0).value(0)) else: player_model1 = QSqlTableModel() player_model1.setTable("players") rec_play1 = player_model1.record() rec_play1.remove(0) rec_play1.setValue(0, player1) if player_model1.insertRecord(-1, rec_play1): player_model1.submitAll() else: db.rollback() query1 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player1}'", db=db) player1_id_model.setQuery(query1) p1_id = int(player1_id_model.record(0).value(0)) player2_id_model = QSqlQueryModel() query2 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player2}'", db=db) player2_id_model.setQuery(query2) if player2_id_model.record(0).value(0): p2_id = int(player2_id_model.record(0).value(0)) else: player_model2 = QSqlTableModel() player_model2.setTable("players") rec_play2 = player_model2.record() rec_play2.remove(0) rec_play2.setValue(0, player2) if player_model2.insertRecord(-1, rec_play2): player_model2.submitAll() else: db.rollback() query2 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player2}'", db=db) player2_id_model.setQuery(query2) p2_id = int(player2_id_model.record(0).value(0)) # Match paremeterek rögzítése match_model = QSqlTableModel() match_model.setTable("match_settings") record = match_model.record() record.setValue(0, m_id) record.setValue(1, p1_id) record.setValue(2, p2_id) record.setValue(3, var) record.setValue(4, set) record.setValue(5, leg) if match_model.insertRecord(-1, record): match_model.submitAll() else: db.rollback() # parent.main_layout.addLayout(parent.match_layout) # parent.match_layout.addWidget(parent.cimke) # parent.main_layout.addWidget(parent.GameWindow) parent.gomb1.setText("OK") else: # parent.gomb1.setText("Cancel") parent.close()
def accept(self): params = [] m_id = p1_id = p2_id = set = leg = hc1 = hc2 = 0 var = "" player1 = self.input_player1_name.text() player2 = self.input_player2_name.text() # todo A MATCH_ID-T VALAMI EGYEDI MÓDON KELL GENERÁLNI(pl. az időbélyeg bizonyos részével) m_id = random.randint(10, 1000000) leg = self.spin_legs.value() set = self.spin_sets.value() hc1 = self.handi1.value() hc2 = self.handi2.value() if self.gomb_301.isChecked(): var = "301" elif self.gomb_401.isChecked(): var = "401" elif self.gomb_501.isChecked(): var = "501" else: var = "701" if self.best_of.isChecked(): bestof = 1 else: bestof = 0 if len(player1) == 0: p1_id = 1 player1 = "Player 1" else: player1_id_model = QSqlQueryModel() query1 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player1}' and type='local' and aktiv=1", db=db) player1_id_model.setQuery(query1) # todo megnézni, hogy sima query.exec_ -el hogyan működik, lehet-e ellenőrizni, hogy üres vagy nem if player1_id_model.record(0).value(0): p1_id = int(player1_id_model.record(0).value(0)) else: # todo beszúrás előtt ellenőritni, hogy egyedi-e. Létezhet versenyen felvitt ugyanolyan név player_model1 = QSqlTableModel() player_model1.setTable("players") rec_play1 = player_model1.record() rec_play1.remove(0) rec_play1.setValue(0, player1) rec_play1.setValue(1, 'local') rec_play1.setValue(2, 1) if player_model1.insertRecord(-1, rec_play1): player_model1.submitAll() else: db.rollback() query1 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player1}' and type='local' and aktiv=1", db=db) player1_id_model.setQuery(query1) # todo megnézni, hogy sima query.exec_ -el hogyan működik, lehet-e ellenőrizni, hogy üres vagy nem p1_id = int(player1_id_model.record(0).value(0)) if len(player2) == 0: p2_id = 2 player2 = "Player 2" else: player2_id_model = QSqlQueryModel() query2 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player2}' and type='local' and aktiv=1", db=db) player2_id_model.setQuery(query2) # todo megnézni, hogy sima query.exec_ -el hogyan működik, lehet-e ellenőrizni, hogy üres vagy nem if player2_id_model.record(0).value(0): p2_id = int(player2_id_model.record(0).value(0)) else: player_model2 = QSqlTableModel() player_model2.setTable("players") rec_play2 = player_model2.record() rec_play2.remove(0) rec_play2.setValue(0, player2) rec_play2.setValue(1, 'local') rec_play2.setValue(2, 1) if player_model2.insertRecord(-1, rec_play2): player_model2.submitAll() else: db.rollback() query2 = QSqlQuery( f"SELECT player_id FROM players where player_name = '{player2}' and type='local' and aktiv=1", db=db) player2_id_model.setQuery(query2) # todo megnézni, hogy sima query.exec_ -el hogyan működik, lehet-e ellenőrizni, hogy üres vagy nem p2_id = int(player2_id_model.record(0).value(0)) # Match paremeterek rögzítése now = QDateTime.currentDateTime() match_model = QSqlTableModel() match_model.setTable("match_settings") # todo Best Of... nincs db-ben tárolva record = match_model.record() record.setValue(0, m_id) record.setValue(1, p1_id) record.setValue(2, p2_id) record.setValue(3, var) record.setValue(4, leg) record.setValue(5, set) record.setValue(6, hc1) record.setValue(7, hc2) record.setValue(8, now) if match_model.insertRecord(-1, record): match_model.submitAll() else: db.rollback() params.append(player1) params.append(player2) params.append(m_id) params.append(p1_id) params.append(p2_id) params.append(var) params.append(leg) params.append(set) params.append(hc1) params.append(hc2) params.append(bestof) self.parent.new_game_window.params = params self.parent.new_game_window.refresh() super().accept()
def insert_torna_settings(self): van_ilyen_nev = False if len(self.torna_name.text()) != 0: torna_id_model = QSqlQueryModel() query = QSqlQuery( "select torna_id, torna_name from torna_settings", db=db) torna_id_model.setQuery(query) for i in range(torna_id_model.rowCount()): if torna_id_model.record(i).value(1) == self.torna_name.text(): msg = QMessageBox(self) msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Név ütközés!") msg.setText( '<html style="font-size: 14px; color: red">Már van ilyen nevű verseny!<br></html>' + '<html style="font-size: 16px">Kérem adjon a versenynek egyedi nevet!</html>' ) msg.exec_() van_ilyen_nev = True if not van_ilyen_nev: torna_settings_model = QSqlTableModel( db=db ) # !!!!!!! Ha több db van, akkor itt konkrétan meg kell adni torna_settings_model.setTable("torna_settings") record = torna_settings_model.record() record.setValue(1, self.torna_name.text()) if self.is_roundrobin.isChecked(): record.setValue(2, 1) else: record.setValue(2, 0) record.setValue(3, self.csoport_number.value()) record.setValue(4, self.jatekos_per_csoport.value()) record.setValue(5, self.variant.value()) if self.is_sets.isChecked(): record.setValue(6, 1) else: record.setValue(6, 0) record.setValue(7, self.sets_number.value()) record.setValue(8, self.legs_number.value()) # print(record.value(2)) if self.is_best.isChecked(): record.setValue(9, 1) else: record.setValue(9, 0) if self.is_draw.isChecked(): record.setValue(10, 1) else: record.setValue(10, 0) record.setValue(11, self.pont_win.value()) record.setValue(12, self.pont_draw.value()) record.setValue(13, self.pont_lost.value()) if self.is_single_elim.isChecked(): record.setValue(14, 1) else: record.setValue(14, 0) record.setValue(15, self.num_single.value()) if self.is_3place.isChecked(): record.setValue(16, 1) else: record.setValue(16, 0) record.setValue(17, self.leg_num_single.value()) record.setValue(18, self.leg_num_semifinal.value()) record.setValue(19, self.leg_num_3place.value()) record.setValue(20, self.leg_num_final.value()) record.setValue(21, 2) # aktiv flag: 0: vége, 1: folyamatban, 2: szerkesztés alatt # print(record) if torna_settings_model.insertRecord(-1, record): torna_settings_model.submitAll() else: db.rollback() torna_id_model2 = QSqlQueryModel() query2 = QSqlQuery( f"select torna_id from torna_settings where torna_name='{self.torna_name.text()}'", db=db) torna_id_model2.setQuery(query2) self.torna_id = int(torna_id_model2.record(0).value(0)) self.gomb_members.setDisabled(False) else: msg = QMessageBox(self) msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Hiányzik a verseny neve!") msg.setText( '<html style="font-size: 14px; color: red">A létrehozott versenynek kell egy elnevezés!<br></html>' + '<html style="font-size: 16px">Kérem adja meg a verseny nevét!</html>' ) msg.exec_()
class ManageMembers(QMainWindow): def __init__(self, parent): super(ManageMembers, self).__init__(parent) self.setWindowTitle("Tagok kezelése") widget = QWidget() main_layout = QHBoxLayout() widget.setLayout(main_layout) self.setCentralWidget(widget) self.table_view = QTableView() main_layout.addWidget(self.table_view) self.model = QSqlTableModel(db=db) self.model.setTable("members") self.model.select() self.model.setEditStrategy(QSqlTableModel.OnManualSubmit) self.model.setHeaderData(1, Qt.Horizontal, "Vezetéknév") self.model.setHeaderData(2, Qt.Horizontal, "Utónév") self.model.setHeaderData(3, Qt.Horizontal, "Született") self.model.setHeaderData(4, Qt.Horizontal, "Ir.szám") self.model.setHeaderData(5, Qt.Horizontal, "Helység") self.model.setHeaderData(6, Qt.Horizontal, "Cím") self.model.setHeaderData(7, Qt.Horizontal, "Telefon") self.model.setHeaderData(8, Qt.Horizontal, "E-mail") self.model.setHeaderData(9, Qt.Horizontal, "Tagság kezdete") self.model.setHeaderData(10, Qt.Horizontal, "Aktív") # self.model.setFilter('vezeteknev Like "Czi%"') self.table_view.setModel(self.model) self.table_view.hideColumn(0) self.table_view.resizeColumnsToContents() # Ha ez engedélyezve, akkor a model-nél beállított sort nem működik, ez felülírja # Enélkül működik a model-es beállítás self.table_view.setSortingEnabled(True) # Ha engedélyezve van a fejléc szerinti rendezés, akkor UTÁNA meg lehet adni az alap sorrendet self.table_view.sortByColumn(1, Qt.AscendingOrder) self.model.dataChanged.connect(self.valtozott) gomb_layout = QVBoxLayout() main_layout.addLayout(gomb_layout) self.delete_button = QPushButton("&Tag törlése") self.add_button = QPushButton("&Új tag") self.apply_button = QPushButton("Módosítások alkalmazása") self.cancel_button = QPushButton("Módosítások elvetése") gomb_layout.addWidget(self.delete_button) gomb_layout.addWidget(self.add_button) gomb_layout.addWidget(self.apply_button) gomb_layout.addWidget(self.cancel_button) self.space = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) gomb_layout.addItem(self.space) self.setFixedSize(1000, 800) tb = self.addToolBar("File") exit = QAction(QIcon("images/door--arrow.png"), "Kilépés", self) tb.addAction(exit) excel = QAction(QIcon("images/excel.png"), "Excel", self) tb.addAction(excel) tb.actionTriggered[QAction].connect(self.toolbarpressed) self.delete_button.clicked.connect(self.tag_torles) self.add_button.clicked.connect(self.tag_hozzadas) self.apply_button.clicked.connect(self.valtozas_mentese) self.cancel_button.clicked.connect(self.valtozas_elvetese) def tag_hozzadas(self): self.form_window = UjtagFormDialog() self.form_window.setWindowTitle("Új tag felvétele") if self.form_window.exec_(): record = self.model.record() record.remove(record.indexOf('id')) for i in range(len(self.form_window.mezo_ertekek)): record.setValue(i, self.form_window.mezo_ertekek[i].text()) # print(i, record.value(i)) if self.model.insertRecord(-1, record): self.model.submitAll() self.apply_button.setStyleSheet('') self.cancel_button.setStyleSheet('') else: db.rollback() def tag_torles(self): if len(self.table_view.selectedIndexes()) > 0: self.model.removeRow(self.table_view.selectedIndexes()[0].row()) self.model.submitAll() else: reply = QMessageBox.question(None, 'Hiba!', 'Törlés előtt jelöljön ki egy sort!', QMessageBox.Ok) def toolbarpressed(self, a): if a.text() == "Kilépés": self.close() if a.text() == "Excel": data = [] for i in range(self.model.rowCount()): sor = [] for j in range(self.model.columnCount()): if isinstance(self.model.record(i).value(j), QDate): sor.append( self.model.record(i).value(j).toString( "yyyy-MM-dd")) else: sor.append(self.model.record(i).value(j)) data.append(sor) p.save_as(array=data, dest_file_name="tagok.xlsx") def valtozott(self): self.apply_button.setStyleSheet('background-color: green;') self.cancel_button.setStyleSheet('background-color: red;') def valtozas_mentese(self): self.model.submitAll() self.apply_button.setStyleSheet('') self.cancel_button.setStyleSheet('') def valtozas_elvetese(self): self.model.revertAll() self.apply_button.setStyleSheet('') self.cancel_button.setStyleSheet('')