small fixes, working state, ui update

This commit is contained in:
WorldTeacher
2024-02-12 14:03:06 +01:00
parent cbd3ae80c7
commit 892fa97f58
5 changed files with 128 additions and 100 deletions

View File

@@ -174,7 +174,6 @@ class Ui(Ui_Semesterapparat):
# self.tableWidget_apparate.text
self.actionEinstellungen.triggered.connect(self.open_settings)
# set validators
self.sem_year.setValidator(QtGui.QIntValidator())
self.sem_year.setText(str(QtCore.QDate.currentDate().year()))
self.prof_mail.setValidator(
QRegularExpressionValidator(
@@ -306,7 +305,6 @@ class Ui(Ui_Semesterapparat):
self.pushButton.clicked.connect(self.delete_user)
self.update_user.clicked.connect(self.update_user_data)
self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
def populate_appfach_dropdown(self):
self.app_fach.clear()
self.app_fach.addItem("")
@@ -1100,7 +1098,6 @@ class Ui(Ui_Semesterapparat):
text = f"Medium {curr}/{total}"
self.logger.log_info(text)
self.progress_label.setText(text)
self.MainWindow.setStatusTip(f"Medien werden hinzugefügt, bitte warten... {curr}/{total}")
# update tableWidget_apparat_media
self.update_app_media_list()
@@ -1141,23 +1138,21 @@ class Ui(Ui_Semesterapparat):
# create apparat
self.btn_save_apparat()
# create a thread that updates the progress label after each medium
thread = QThread()
grabber = BookGrabber(mode=mode, app_id=app_id, prof_id=prof_id, data=data)
# grabber.mode = mode
# grabber.data = data
# grabber.app_id = app_id
# grabber.prof_id = prof_id
grabber.moveToThread(thread)
grabber.finished.connect(thread.quit)
grabber.finished.connect(grabber.deleteLater)
grabber.finished.connect(self.hide_progress_label)
grabber.finished.connect(self.update_app_media_list)
grabber.updateSignal.connect(self.update_progress_label)
# worker.finished.connect(worker.deleteLater)
grabber.start()
self.threadeds.append(thread)
self.grabbers.append(grabber)
# run grabber.deletelater
grabber.stop()
grabber.wait()
grabber.quit()
# for book in data:
# # self.progress_label.setText(f"Medium {ct}/{len(data)}")
@@ -1177,7 +1172,6 @@ class Ui(Ui_Semesterapparat):
self.threadeds.clear()
def _update_progress(current, all_titles):
self.avail_status.setText( "{}/{}".format(current, all_titles))
self.btn_reserve.setStatusTip(f"Verfügbarkeit wird geprüft, bitte warten... {current}/{all_titles}")
def _hide_progress_label():
self.label_20.hide()
self.avail_status.hide()
@@ -1208,18 +1202,20 @@ class Ui(Ui_Semesterapparat):
deleted=0,
)
thread = QThread()
# thread = QThread()
appnumber = self.active_apparat()
print(links)
availcheck = AvailChecker(links, appnumber, books=books)
availcheck.moveToThread(thread)
availcheck.finished.connect(thread.quit)
# availcheck.moveToThread(thread)
# availcheck.finished.connect(thread.quit)
availcheck.finished.connect(availcheck.deleteLater)
availcheck.finished.connect(self.update_app_media_list)
availcheck.updateProgress.connect(_update_progress)
availcheck.finished.connect(_hide_progress_label)
availcheck.start()
self.threadeds.append(thread)
# kill availcheck after completion
# self.threadeds.append(thread)
self.grabbers.append(availcheck)
def btn_cancel_active_selection(self):
@@ -1533,17 +1529,16 @@ class Ui(Ui_Semesterapparat):
signatures = [i for i in signatures if i != ""]
ic(signatures)
print("starting thread")
thread = QThread()
grabber = BookGrabber(mode = "ARRAY", app_id = app_id,prof_id = prof_id,data = signatures)
# grabber.mode = "ARRAY"
# grabber.data = signatures
# grabber.app_id = app_id
# grabber.prof_id = prof_id
grabber.moveToThread(thread)
# grabber.moveToThread(thread)
self.label_info.show()
self.progress_label.show()
self.line_2.show()
grabber.finished.connect(thread.quit)
# grabber.finished.connect(thread.quit)
grabber.finished.connect(grabber.deleteLater)
grabber.finished.connect(self.hide_progress_label)
grabber.finished.connect(self.update_app_media_list)
@@ -1553,6 +1548,7 @@ class Ui(Ui_Semesterapparat):
grabber.start()
# self.thread = thread
# kill grabber after completion
self.grabbers.append(grabber)
def unlock_apparate(self):
@@ -1818,7 +1814,7 @@ class Ui(Ui_Semesterapparat):
signature=book,
prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
)
book_id = self.db.getBookIdBasedOnSignature(self.active_apparat(),self.db.getProfId(self.drpdwn_prof_name.currentText()),book)
widget = QtWidgets.QDialog()
bookedit = edit_bookdata_ui()
bookedit.setupUi(widget)
@@ -1841,28 +1837,48 @@ class Ui(Ui_Semesterapparat):
selected_apparat_id = self.tableWidget_apparate.item(
self.tableWidget_apparate.currentRow(), 0
).text()
signature = self.tableWidget_apparat_media.item(
self.tableWidget_apparat_media.currentRow(), 1
).text()
# bookdata= self.db.getBookIdBasedOnSignature(selected_apparat_id,prof_id=self.db.get_prof_id(self.drpdwn_prof_name.currentText()),signature=signature)
book_id = self.db.getBookIdBasedOnSignature(
selected_apparat_id,
prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
signature=signature,
)
message = f'Soll das Medium "{self.tableWidget_apparat_media.item(self.tableWidget_apparat_media.currentRow(),0).text()}" wirklich gelöscht werden?'
state = self.confirm_popup(message)
print(state)
if state == 1:
self.db.deleteBook(book_id)
self.update_app_media_list()
pass
# check how many rows are selected
selected_rows = self.tableWidget_apparat_media.selectionModel().selectedRows()
if len(selected_rows) == 1:
signature = self.tableWidget_apparat_media.item(
self.tableWidget_apparat_media.currentRow(), 1
).text()
book_id = self.db.getBookIdBasedOnSignature(
selected_apparat_id,
prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
signature=signature,
)
message = f'Soll das Medium "{self.tableWidget_apparat_media.item(self.tableWidget_apparat_media.currentRow(),0).text()}" wirklich gelöscht werden?'
state = self.confirm_popup(message)
print(state)
if state == 1:
self.db.deleteBook(book_id)
self.update_app_media_list()
pass
else:
# get all selected rows
ranges = self.tableWidget_apparat_media.selectedRanges()
rows = []
for r in ranges:
for row in range(r.topRow(), r.bottomRow() + 1):
rows.append(row)
print(rows)
message = f"Sollen die {len(rows)} Medien wirklich gelöscht werden?"
state = self.confirm_popup(message)
if state == 1:
for _ in rows:
signature = self.tableWidget_apparat_media.item(_, 1).text()
book_id = self.db.getBookIdBasedOnSignature(
selected_apparat_id,
prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
signature=signature,
)
self.db.deleteBook(book_id)
self.update_app_media_list()
def extend_apparat(self):
framework = QtWidgets.QDialog()
frame = App_Ext_Dialog()
frame.setupUi(framework)
frame.sem_year.setValidator(QtGui.QIntValidator())
frame.sem_year.setText(str(QtCore.QDate.currentDate().year()))
framework.exec()
# return data from dialog if ok is pressed