Refactor code to improve readability, try diff threads

This commit is contained in:
WorldTeacher
2024-02-09 13:17:15 +01:00
parent ae9bb40166
commit cbd3ae80c7

View File

@@ -123,7 +123,6 @@ class MessageCalendar(QtWidgets.QCalendarWidget):
) )
class Ui(Ui_Semesterapparat): class Ui(Ui_Semesterapparat):
# use the Ui_MainWindow class from mainwindow.py # use the Ui_MainWindow class from mainwindow.py
def __init__(self, MainWindow, username: str) -> None: def __init__(self, MainWindow, username: str) -> None:
@@ -161,10 +160,10 @@ class Ui(Ui_Semesterapparat):
) )
self.calendarWidget.setObjectName("MessageCalendar") self.calendarWidget.setObjectName("MessageCalendar")
self.calendarWidget.clicked.connect(self.open_reminder) self.calendarWidget.clicked.connect(self.open_reminder)
#assign a context menu to the calendar # assign a context menu to the calendar
self.calendarWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu) self.calendarWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
self.calendarWidget.customContextMenuRequested.connect(self.calendar_context_menu) self.calendarWidget.customContextMenuRequested.connect(self.calendar_context_menu)
self.tableWidget_apparat_media.horizontalHeader().setSectionResizeMode( self.tableWidget_apparat_media.horizontalHeader().setSectionResizeMode(
QtWidgets.QHeaderView.ResizeMode.Stretch QtWidgets.QHeaderView.ResizeMode.Stretch
) )
@@ -214,7 +213,7 @@ class Ui(Ui_Semesterapparat):
self.tableWidget_apparat_media.customContextMenuRequested.connect( self.tableWidget_apparat_media.customContextMenuRequested.connect(
self.media_context_menu self.media_context_menu
) )
#enable automatic resizing of columns for book_search_result # enable automatic resizing of columns for book_search_result
self.book_search_result.horizontalHeader().setSectionResizeMode( self.book_search_result.horizontalHeader().setSectionResizeMode(
QtWidgets.QHeaderView.ResizeMode.Stretch QtWidgets.QHeaderView.ResizeMode.Stretch
) )
@@ -287,40 +286,39 @@ class Ui(Ui_Semesterapparat):
self.tabWidget.currentChanged.connect(self.tab_changed) self.tabWidget.currentChanged.connect(self.tab_changed)
self.btn_search.clicked.connect(self.statistics) self.btn_search.clicked.connect(self.statistics)
# self.thread_check() # self.thread_check()
### Admin interface ### ### Admin interface ###
#!admin - create user #!admin - create user
#!admin - delete user #!admin - delete user
#!admin - change user #!admin - change user
#TODO:admin - change faculty # TODO:admin - change faculty
self.select_action_box.addItem("") self.select_action_box.addItem("")
self.select_action_box.setCurrentText("") self.select_action_box.setCurrentText("")
self.hide_all() self.hide_all()
self.select_action_box.currentTextChanged.connect(self.admin_action_changed) self.select_action_box.currentTextChanged.connect(self.admin_action_changed)
self.edit_faculty_member_select_member.currentTextChanged.connect(self.edit_faculty_member_set_data) self.edit_faculty_member_select_member.currentTextChanged.connect(self.edit_faculty_member_set_data)
self.book_search.clicked.connect(self.search_book) self.book_search.clicked.connect(self.search_book)
#enable click functionality for the combobox to allow selection of roles # enable click functionality for the combobox to allow selection of roles
#admin buttons # admin buttons
self.user_frame_addUser.clicked.connect(self.add_user) self.user_frame_addUser.clicked.connect(self.add_user)
self.pushButton.clicked.connect(self.delete_user) self.pushButton.clicked.connect(self.delete_user)
self.update_user.clicked.connect(self.update_user_data) self.update_user.clicked.connect(self.update_user_data)
self.update_faculty_member.clicked.connect(self.edit_faculty_member_action) self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
def populate_appfach_dropdown(self): def populate_appfach_dropdown(self):
self.app_fach.clear() self.app_fach.clear()
self.app_fach.addItem("") self.app_fach.addItem("")
self.app_fach.setCurrentText("") self.app_fach.setCurrentText("")
self.app_fach.addItems([subject[1] for subject in self.db.getSubjects()]) self.app_fach.addItems([subject[1] for subject in self.db.getSubjects()])
def tabW1_changed(self): def tabW1_changed(self):
if self.tabWidget.currentIndex() == 1: if self.tabWidget.currentIndex() == 1:
# self.tabWidget.setCurrentIndex(1) # self.tabWidget.setCurrentIndex(1)
self.tabWidget_2.setCurrentIndex(1) self.tabWidget_2.setCurrentIndex(1)
self.tabWidget_2.setCurrentIndex(0) self.tabWidget_2.setCurrentIndex(0)
def search_book(self): def search_book(self):
self.book_search_result.setRowCount(0) self.book_search_result.setRowCount(0)
signature = self.seach_by_signature.text() signature = self.seach_by_signature.text()
@@ -335,22 +333,21 @@ class Ui(Ui_Semesterapparat):
if retdata == None: if retdata == None:
return return
for book in retdata: for book in retdata:
self.book_search_result.insertRow(0) self.book_search_result.insertRow(0)
self.book_search_result.setItem(0,0,QtWidgets.QTableWidgetItem(book[0].title)) self.book_search_result.setItem(0,0,QtWidgets.QTableWidgetItem(book[0].title))
self.book_search_result.setItem(0,1,QtWidgets.QTableWidgetItem(book[0].signature)) self.book_search_result.setItem(0,1,QtWidgets.QTableWidgetItem(book[0].signature))
print(book[1]) print(book[1])
self.book_search_result.setItem(0,2,QtWidgets.QTableWidgetItem(self.db.getApparatName(book[1],book[2]))) self.book_search_result.setItem(0,2,QtWidgets.QTableWidgetItem(self.db.getApparatName(book[1],book[2])))
def edit_faculty_member_set_data(self): def edit_faculty_member_set_data(self):
#get the selected member # get the selected member
name = self.edit_faculty_member_select_member.currentText() name = self.edit_faculty_member_select_member.currentText()
fullname = name.replace(",","") fullname = name.replace(",","")
print(fullname,name) print(fullname,name)
#get the data for the selected member # get the data for the selected member
data = self.db.getProfByName(fullname) data = self.db.getProfByName(fullname)
#set the data # set the data
print(data) print(data)
if data == None: if data == None:
self.edit_faculty_member_title.setText("") self.edit_faculty_member_title.setText("")
@@ -362,15 +359,14 @@ class Ui(Ui_Semesterapparat):
self.faculty_member_old_telnr.setText(data[6]) self.faculty_member_old_telnr.setText(data[6])
self.faculty_member_oldmail.setText(data[5]) self.faculty_member_oldmail.setText(data[5])
self.edit_faculty_member_title.setText(data[1]) if data[1] != None else self.edit_faculty_member_title.setText("") self.edit_faculty_member_title.setText(data[1]) if data[1] != None else self.edit_faculty_member_title.setText("")
# self.edit_faculty_member_name.setText(f"{data[3]} {data[2]}") # self.edit_faculty_member_name.setText(f"{data[3]} {data[2]}")
# self.edit_faculty_member_title.setCurrentText(data[1]) # self.edit_faculty_member_title.setCurrentText(data[1])
# self.edit_faculty_member_mail.setText(data[4]) # self.edit_faculty_member_mail.setText(data[4])
# self.edit_faculty_member_tel.setText(data[5]) # self.edit_faculty_member_tel.setText(data[5])
# self.edit_faculty_member_adis_id.setText(str(data[0])) # self.edit_faculty_member_adis_id.setText(str(data[0]))
# self.edit_faculty_member_id.setText(str(data[6])) # self.edit_faculty_member_id.setText(str(data[6]))
def add_user(self): def add_user(self):
username = self.user_create_frame_username.text() username = self.user_create_frame_username.text()
password = self.user_create_frame_password.text() password = self.user_create_frame_password.text()
@@ -385,7 +381,7 @@ class Ui(Ui_Semesterapparat):
self.user_create_frame_password.clear() self.user_create_frame_password.clear()
self.user_frame_userrole.setCurrentText("") self.user_frame_userrole.setCurrentText("")
self.admin_action_changed() self.admin_action_changed()
def delete_user(self): def delete_user(self):
if self.user_delete_confirm.isChecked(): if self.user_delete_confirm.isChecked():
username = self.user_delete_frame_user_select.currentText() username = self.user_delete_frame_user_select.currentText()
@@ -395,12 +391,12 @@ class Ui(Ui_Semesterapparat):
else: else:
# self.user_delete_err_message.setText("Bitte bestätigen Sie die Löschung des Nutzers") # TODO: implement error message # self.user_delete_err_message.setText("Bitte bestätigen Sie die Löschung des Nutzers") # TODO: implement error message
ic("please confirm the deletion of the user") ic("please confirm the deletion of the user")
def update_user_data(self): def update_user_data(self):
username = self.user_edit_frame_user_select.currentText() username = self.user_edit_frame_user_select.currentText()
password = self.user_edit_frame_new_password.text() if self.user_edit_frame_new_password.text() != "" else None password = self.user_edit_frame_new_password.text() if self.user_edit_frame_new_password.text() != "" else None
role = self.user_edit_frame_role_select.currentText() if self.user_edit_frame_role_select.currentText() != "" else None role = self.user_edit_frame_role_select.currentText() if self.user_edit_frame_role_select.currentText() != "" else None
userdata = AdminCommands().create_password(password) userdata = AdminCommands().create_password(password)
data = { data = {
"password": f"{userdata[1]}{userdata[0]}", "password": f"{userdata[1]}{userdata[0]}",
@@ -413,7 +409,7 @@ class Ui(Ui_Semesterapparat):
self.user_edit_frame_user_select.setCurrentText("") self.user_edit_frame_user_select.setCurrentText("")
self.user_edit_frame_new_password.clear() self.user_edit_frame_new_password.clear()
self.user_edit_frame_role_select.setCurrentText("") self.user_edit_frame_role_select.setCurrentText("")
def edit_faculty_member_action(self): def edit_faculty_member_action(self):
def __gen_fullname(fname,lname,data): def __gen_fullname(fname,lname,data):
if fname == "" and lname == "": if fname == "" and lname == "":
@@ -424,16 +420,16 @@ class Ui(Ui_Semesterapparat):
return f"{data[2]} {fname}" return f"{data[2]} {fname}"
if fname != "" and lname != "": if fname != "" and lname != "":
return f"{lname} {fname}" return f"{lname} {fname}"
#get the data and use new value if it is not none and does not mach the old value # get the data and use new value if it is not none and does not mach the old value
if self.edit_faculty_member_select_member.currentText() =="": if self.edit_faculty_member_select_member.currentText() =="":
return return
olddata = self.db.getFacultyMember(self.edit_faculty_member_select_member.currentText()) olddata = self.db.getFacultyMember(self.edit_faculty_member_select_member.currentText())
data = olddata[0] data = olddata[0]
oldlname = data[2] oldlname = data[2]
oldfname = data[1] oldfname = data[1]
#take data except first and last entry # take data except first and last entry
titel = self.edit_faculty_member_new_title.currentText() if self.edit_faculty_member_new_title.currentText() != "Kein Titel" else None titel = self.edit_faculty_member_new_title.currentText() if self.edit_faculty_member_new_title.currentText() != "Kein Titel" else None
fname = self.edit_faculty_member_new_surname.text() if self.edit_faculty_member_new_surname.text() != "" else self.edit_faculty_member_select_member.currentText().split(" ")[1].strip() fname = self.edit_faculty_member_new_surname.text() if self.edit_faculty_member_new_surname.text() != "" else self.edit_faculty_member_select_member.currentText().split(" ")[1].strip()
lname = self.user_faculty_member_new_name.text() if self.user_faculty_member_new_name.text() != "" else self.edit_faculty_member_select_member.currentText().split(" ")[0].strip() lname = self.user_faculty_member_new_name.text() if self.user_faculty_member_new_name.text() != "" else self.edit_faculty_member_select_member.currentText().split(" ")[0].strip()
@@ -456,18 +452,18 @@ class Ui(Ui_Semesterapparat):
self.user_faculty_member_new_name.clear() self.user_faculty_member_new_name.clear()
self.user_faculty_member_new_telnr.clear() self.user_faculty_member_new_telnr.clear()
self.user_faculty_member_new_mail.clear() self.user_faculty_member_new_mail.clear()
def hide_all(self): def hide_all(self):
self.user_create_frame.hide() self.user_create_frame.hide()
self.user_edit_frame.hide() self.user_edit_frame.hide()
self.user_delete_frame.hide() self.user_delete_frame.hide()
self.edit_faculty_member.hide() self.edit_faculty_member.hide()
def admin_action_changed(self): def admin_action_changed(self):
action = self.select_action_box.currentText() action = self.select_action_box.currentText()
roles = self.db.getRoles() roles = self.db.getRoles()
roles = [role[0] for role in roles] roles = [role[0] for role in roles]
#remove duplicates # remove duplicates
roles = list(dict.fromkeys(roles)) roles = list(dict.fromkeys(roles))
users = self.db.getUsers() users = self.db.getUsers()
users = [user[2] for user in users] users = [user[2] for user in users]
@@ -489,18 +485,17 @@ class Ui(Ui_Semesterapparat):
self.user_delete_frame_user_select.addItems(users) self.user_delete_frame_user_select.addItems(users)
self.user_delete_frame_user_select.setCurrentText("") self.user_delete_frame_user_select.setCurrentText("")
self.user_delete_frame_user_select.addItems(users) self.user_delete_frame_user_select.addItems(users)
elif action == "Lehrperson bearbeiten": elif action == "Lehrperson bearbeiten":
self.hide_all() self.hide_all()
self.edit_faculty_member.show() self.edit_faculty_member.show()
self.add_faculty_member_data() self.add_faculty_member_data()
self.edit_faculty_member_new_title.addItems(PROF_TITLES) self.edit_faculty_member_new_title.addItems(PROF_TITLES)
else: else:
self.hide_all() self.hide_all()
return return
def add_faculty_member_data(self): def add_faculty_member_data(self):
faculty_members = self.db.getFacultyMembers() faculty_members = self.db.getFacultyMembers()
names = [f"{member[5]}" for member in faculty_members] names = [f"{member[5]}" for member in faculty_members]
@@ -508,7 +503,7 @@ class Ui(Ui_Semesterapparat):
self.edit_faculty_member_select_member.addItems(names) self.edit_faculty_member_select_member.addItems(names)
self.edit_faculty_member_select_member.addItem("") self.edit_faculty_member_select_member.addItem("")
self.edit_faculty_member_select_member.setCurrentText("") self.edit_faculty_member_select_member.setCurrentText("")
def tabW2_changed(self): def tabW2_changed(self):
if self.tabWidget_2.currentIndex() == 0: if self.tabWidget_2.currentIndex() == 0:
@@ -567,22 +562,22 @@ class Ui(Ui_Semesterapparat):
self.gridLayout_4.addWidget(deleted_status, 1, 1) self.gridLayout_4.addWidget(deleted_status, 1, 1)
created_status.person_double_clicked.connect(self.open_apparat) created_status.person_double_clicked.connect(self.open_apparat)
deleted_status.person_double_clicked.connect(self.open_apparat) deleted_status.person_double_clicked.connect(self.open_apparat)
def open_apparat(self, header:str, apparat:str, parent_depth:int): def open_apparat(self, header:str, apparat:str, parent_depth:int):
print(header) print(header)
if header == "deleted" and parent_depth == 2: if header == "deleted" and parent_depth == 2:
#TODO: warn message here # TODO: warn message here
print("warning") print("warning")
if parent_depth == 1: if parent_depth == 1:
print(apparat) print(apparat)
#person selected case - open all apparats from this person in the tableWidget # person selected case - open all apparats from this person in the tableWidget
self.tableWidget.setRowCount(0) self.tableWidget.setRowCount(0)
prof_id = self.db.getProfId(apparat.split("(")[0].strip()) prof_id = self.db.getProfId(apparat.split("(")[0].strip())
apparats = self.db.getApparatsByProf(prof_id) apparats = self.db.getApparatsByProf(prof_id)
for app in apparats: for app in apparats:
print(app) print(app)
#set the items 0 = clickable checkbox, 1 = appname, 2 = profname, 3 = fach # set the items 0 = clickable checkbox, 1 = appname, 2 = profname, 3 = fach
#insert new row # insert new row
self.tableWidget.insertRow(0) self.tableWidget.insertRow(0)
self.tableWidget.setItem(0,0, QtWidgets.QTableWidgetItem("")) self.tableWidget.setItem(0,0, QtWidgets.QTableWidgetItem(""))
self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem(app[1])) self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem(app[1]))
@@ -606,9 +601,9 @@ class Ui(Ui_Semesterapparat):
"Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde" "Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde"
) )
elif parent_depth == 2: elif parent_depth == 2:
#apparat selected case - open the apparat in the frame # apparat selected case - open the apparat in the frame
self.load_app_data(apparat) self.load_app_data(apparat)
#change tab focus to tab 0 # change tab focus to tab 0
self.tabWidget.setCurrentIndex(0) self.tabWidget.setCurrentIndex(0)
return return
@@ -636,7 +631,7 @@ class Ui(Ui_Semesterapparat):
self.tab_changed() self.tab_changed()
def populate_tab(self): def populate_tab(self):
#add default values to the dropdowns # add default values to the dropdowns
self.box_appnrs.clear() self.box_appnrs.clear()
self.box_appnrs.addItem("") self.box_appnrs.addItem("")
self.box_appnrs.setCurrentText("") self.box_appnrs.setCurrentText("")
@@ -655,7 +650,7 @@ class Ui(Ui_Semesterapparat):
self.box_dauerapp.clear() self.box_dauerapp.clear()
self.box_dauerapp.addItems(["Ja", "Nein", ""]) self.box_dauerapp.addItems(["Ja", "Nein", ""])
self.box_dauerapp.setCurrentText("") self.box_dauerapp.setCurrentText("")
#add custom vaules # add custom vaules
appnrs = self.db.getUnavailableApparatNumbers() appnrs = self.db.getUnavailableApparatNumbers()
apparats = natsorted(appnrs) apparats = natsorted(appnrs)
apparats = [str(apparat) for apparat in apparats] apparats = [str(apparat) for apparat in apparats]
@@ -668,8 +663,8 @@ class Ui(Ui_Semesterapparat):
semester = self.db.getSemersters() semester = self.db.getSemersters()
self.box_erstellsemester.addItems(semester) self.box_erstellsemester.addItems(semester)
self.statistics_table.setRowCount(0) self.statistics_table.setRowCount(0)
#set data for table and graph in tab 2 tableWidget_3 # set data for table and graph in tab 2 tableWidget_3
data = self.db.getApparatCountBySemester() data = self.db.getApparatCountBySemester()
data = c_sort.custom_sort(data) data = c_sort.custom_sort(data)
# self.tabWidget_3.clear() # self.tabWidget_3.clear()
@@ -708,16 +703,16 @@ class Ui(Ui_Semesterapparat):
self.populate_tab() self.populate_tab()
elif curr_tab == 2: #admin tab elif curr_tab == 2: #admin tab
self.populate_admin_tab() self.populate_admin_tab()
def populate_admin_tab(self): def populate_admin_tab(self):
pass pass
def populate_dropdown(self, box, data): def populate_dropdown(self, box, data):
box.clear() box.clear()
box.addItem("") box.addItem("")
box.setCurrentText("") box.setCurrentText("")
box.addItems(data) box.addItems(data)
def delete_selected_apparats(self): def delete_selected_apparats(self):
# get all selected apparats # get all selected apparats
selected_apparats = [] selected_apparats = []
@@ -794,8 +789,6 @@ class Ui(Ui_Semesterapparat):
self.tableWidget.cellWidget(i, 0).setToolTip( self.tableWidget.cellWidget(i, 0).setToolTip(
"Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde" "Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde"
) )
def populate_frame(self, appdata: ApparatData): def populate_frame(self, appdata: ApparatData):
# populate the frame with the data from the database # populate the frame with the data from the database
@@ -837,7 +830,7 @@ class Ui(Ui_Semesterapparat):
self.apparat_id_adis.setText(str(appdata.apparat_adis_id)) self.apparat_id_adis.setText(str(appdata.apparat_adis_id))
self.frame.setEnabled(True) self.frame.setEnabled(True)
self.validateLoadedData() self.validateLoadedData()
def validateLoadedData(self): def validateLoadedData(self):
self.validate_prof_mail() self.validate_prof_mail()
self.validate_prof_name() self.validate_prof_name()
@@ -870,8 +863,6 @@ class Ui(Ui_Semesterapparat):
self.update_app_media_list() self.update_app_media_list()
self.cancel_active_selection.click() self.cancel_active_selection.click()
def confirm_popup(self, message: str): def confirm_popup(self, message: str):
dial = QtWidgets.QDialog() dial = QtWidgets.QDialog()
popup = popus_confirm() popup = popus_confirm()
@@ -1029,9 +1020,9 @@ class Ui(Ui_Semesterapparat):
def load_app_data(self,app_id=None): def load_app_data(self,app_id=None):
print(type(app_id)) print(type(app_id))
if isinstance(app_id, str): if isinstance(app_id, str):
#double click the tableWidget_apparate row with the given app_id # double click the tableWidget_apparate row with the given app_id
row,column = self.get_index_of_value(self.tableWidget_apparate,app_id) row,column = self.get_index_of_value(self.tableWidget_apparate,app_id)
#set the current index to the row # set the current index to the row
self.tableWidget_apparate.setCurrentCell(row,0) self.tableWidget_apparate.setCurrentCell(row,0)
app_pos = self.tableWidget_apparate.currentIndex() app_pos = self.tableWidget_apparate.currentIndex()
appnr = self.tableWidget_apparate.item(app_pos.row(), 0).text() appnr = self.tableWidget_apparate.item(app_pos.row(), 0).text()
@@ -1077,7 +1068,7 @@ class Ui(Ui_Semesterapparat):
# clear dokumemt_list # clear dokumemt_list
self.dokument_list.setRowCount(0) self.dokument_list.setRowCount(0)
self.frame.setEnabled(True) self.frame.setEnabled(True)
self.sem_year.setEnabled(True) self.sem_year.setEnabled(True)
self.sem_sommer.setEnabled(True) self.sem_sommer.setEnabled(True)
self.sem_winter.setEnabled(True) self.sem_winter.setEnabled(True)
@@ -1109,12 +1100,14 @@ class Ui(Ui_Semesterapparat):
text = f"Medium {curr}/{total}" text = f"Medium {curr}/{total}"
self.logger.log_info(text) self.logger.log_info(text)
self.progress_label.setText(text) self.progress_label.setText(text)
self.MainWindow.setStatusTip(f"Medien werden hinzugefügt, bitte warten... {curr}/{total}")
# update tableWidget_apparat_media # update tableWidget_apparat_media
self.update_app_media_list() self.update_app_media_list()
def hide_progress_label(self): def hide_progress_label(self):
self.logger.log_info("Finished adding media, hiding progress label") self.logger.log_info("Finished adding media, hiding progress label")
self.progress_label.hide() self.progress_label.hide()
self.progress_label.setText("Bitte warten...")
self.line_2.hide() self.line_2.hide()
self.label_info.hide() self.label_info.hide()
@@ -1148,9 +1141,12 @@ class Ui(Ui_Semesterapparat):
# create apparat # create apparat
self.btn_save_apparat() self.btn_save_apparat()
# create a thread that updates the progress label after each medium # create a thread that updates the progress label after each medium
count = len(data)
thread = QThread() thread = QThread()
grabber = BookGrabber(mode, data, app_id, prof_id) 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.moveToThread(thread)
grabber.finished.connect(thread.quit) grabber.finished.connect(thread.quit)
grabber.finished.connect(grabber.deleteLater) grabber.finished.connect(grabber.deleteLater)
@@ -1313,7 +1309,7 @@ class Ui(Ui_Semesterapparat):
return return
if "http" not in link: if "http" not in link:
link = "https://" + link link = "https://" + link
webbrowser.open(link) webbrowser.open(link)
# get the name of the column # get the name of the column
columnname = self.tableWidget_apparat_media.horizontalHeaderItem( columnname = self.tableWidget_apparat_media.horizontalHeaderItem(
@@ -1354,7 +1350,7 @@ class Ui(Ui_Semesterapparat):
# set tooltip of row 3 to the file path for each row # set tooltip of row 3 to the file path for each row
self.dokument_list.item(0, 3).setToolTip(file) self.dokument_list.item(0, 3).setToolTip(file)
# self.db.insert_file(files, self.active_apparat(), self.db.get_prof_id(self.drpdwn_prof_name.currentText())) # self.db.insert_file(files, self.active_apparat(), self.db.get_prof_id(self.drpdwn_prof_name.currentText()))
def open_document(self): def open_document(self):
_selected_doc_name = "" _selected_doc_name = ""
@@ -1387,7 +1383,6 @@ class Ui(Ui_Semesterapparat):
# if "~" in path: # if "~" in path:
# path = path.replace("~", str(Path.home())) # path = path.replace("~", str(Path.home()))
# path = Path(path) # path = Path(path)
def add_media_from_file(self): def add_media_from_file(self):
def __open_dialog(signatures): def __open_dialog(signatures):
@@ -1491,8 +1486,8 @@ class Ui(Ui_Semesterapparat):
app_id = self.active_apparat() app_id = self.active_apparat()
prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText()) prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
# check if apparat in database # check if apparat in database
#if app_id not in database, create apparat # if app_id not in database, create apparat
if not self.db.checkApparatExistsById(app_id): if not self.db.checkApparatExistsById(app_id):
# create apparat # create apparat
print("Creating apparat") print("Creating apparat")
@@ -1503,10 +1498,10 @@ class Ui(Ui_Semesterapparat):
self.tableWidget_apparate.setToolTip("") self.tableWidget_apparate.setToolTip("")
return return
else: else:
# if file is selected, check for books in the file # if file is selected, check for books in the file
print("File selected") print("File selected")
file = self.dokument_list.item(self.dokument_list.currentRow(), 3).text() file = self.dokument_list.item(self.dokument_list.currentRow(), 3).text()
file_type = self.dokument_list.item( file_type = self.dokument_list.item(
self.dokument_list.currentRow(), 1 self.dokument_list.currentRow(), 1
).text() ).text()
@@ -1539,7 +1534,11 @@ class Ui(Ui_Semesterapparat):
ic(signatures) ic(signatures)
print("starting thread") print("starting thread")
thread = QThread() thread = QThread()
grabber = BookGrabber("ARRAY", signatures, app_id, prof_id) 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.label_info.show()
self.progress_label.show() self.progress_label.show()
@@ -1685,7 +1684,7 @@ class Ui(Ui_Semesterapparat):
self.logger.log_info(f"Inserted apparat {apparat[4]}") self.logger.log_info(f"Inserted apparat {apparat[4]}")
def calendar_context_menu(self): def calendar_context_menu(self):
#create a context menu for the calendar # create a context menu for the calendar
menu = QtWidgets.QMenu() menu = QtWidgets.QMenu()
create_reminder = menu.addAction("Erinnerung erstellen") create_reminder = menu.addAction("Erinnerung erstellen")
create_reminder.triggered.connect(self.reminder(date=self.calendarWidget.selectedDate().toString("yyyy-MM-dd"))) create_reminder.triggered.connect(self.reminder(date=self.calendarWidget.selectedDate().toString("yyyy-MM-dd")))
@@ -1786,13 +1785,13 @@ class Ui(Ui_Semesterapparat):
data = settings.return_data() data = settings.return_data()
print(data) print(data)
OmegaConf.save(data, "config.yaml") OmegaConf.save(data, "config.yaml")
#re-load the config # re-load the config
config = OmegaConf.load("config.yaml") config = OmegaConf.load("config.yaml")
self.logger.log_info("Saved settings to config.yaml") self.logger.log_info("Saved settings to config.yaml")
self.reload() self.reload()
def reload(self): def reload(self):
#create a new connection to the database, refresh table data and replace the old connection # create a new connection to the database, refresh table data and replace the old connection
self.db = Database() self.db = Database()
self.apparats = self.db.getAllAparats(deleted=0) self.apparats = self.db.getAllAparats(deleted=0)
self.apparats = natsorted(self.apparats, key=lambda x: x[4], reverse=True) self.apparats = natsorted(self.apparats, key=lambda x: x[4], reverse=True)
@@ -1819,7 +1818,7 @@ class Ui(Ui_Semesterapparat):
signature=book, signature=book,
prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()), prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
) )
widget = QtWidgets.QDialog() widget = QtWidgets.QDialog()
bookedit = edit_bookdata_ui() bookedit = edit_bookdata_ui()
bookedit.setupUi(widget) bookedit.setupUi(widget)
@@ -1985,7 +1984,7 @@ def launch_gui():
# console = "" # console = ""
print("admin") print("admin")
atexit.register(delete_temp_contents) atexit.register(delete_temp_contents)
if __name__ == "__main__": if __name__ == "__main__":
print("This is the main window") print("This is the main window")