new settings class

This commit is contained in:
WorldTeacher
2024-09-11 15:39:06 +02:00
parent a72d76b94e
commit 95d3de6490
4 changed files with 110 additions and 44 deletions

View File

@@ -48,7 +48,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
# LineEdits
self.input_userno.returnPressed.connect(
lambda: self.checkUser("id", self.input_userno.text())
lambda: self.checkUser("user_id", self.input_userno.text())
)
self.input_username.returnPressed.connect(
lambda: self.checkUser("username", self.input_username.text())
@@ -72,7 +72,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
# variables
self.db = Database()
self.currentDate = QtCore.QDate.currentDate()
loanDate = self.currentDate.addDays(config.default_loan_duration)
loanDate = self.currentDate.addDays(config.loan_duration)
self.activeUser = None
self.activeState = "Rückgabe"
@@ -107,6 +107,9 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
log.info("Showing Settings")
settings = Settings()
settings.exec()
if settings.settingschanged:
# reload settings
print(config)
def changeMode(self):
log.info("Changing Mode")
@@ -119,8 +122,10 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.label_7.hide()
self.nextReturnDate.hide()
self.mediaOverview.setRowCount(0)
self.activeUser = None #! remove if last user should be kept
if self.activeState == "Rückgabe":
self.activateLoanMode()
else:
self.activateReturnMode()
@@ -135,6 +140,11 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.mode.setStyleSheet("background-color: #1E90FF")
self.mode.setText("Ausleihe")
self.activeState = "Ausleihe"
if self.input_userno.text() == "" or self.input_username.text() == "":
self.input_file_ident.setEnabled(False)
self.input_file_ident.setPlaceholderText("Bitte zuerst Nutzerdaten eingeben")
else:
self.input_file_ident.setEnabled(True)
def activateReturnMode(self):
dbg("Activating Return Mode")
@@ -145,6 +155,8 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.duedate.setEnabled(False)
self.activeState = "Rückgabe"
self.mode.setText("Rückgabe")
self.input_file_ident.setEnabled(True)
self.input_file_ident.setPlaceholderText("Buchidentifikation eingeben")
def showUser(self):
log.info(f"Showing User {self.activeUser}")
@@ -160,18 +172,18 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
return
self.user_ui = UserUI(
self.activeUser.username, self.activeUser.id, self.activeUser.email
self.activeUser
)
# self.user_ui.setFields("John Doe", "123456789", "test@mail.com")
self.user_ui.show()
def setUserData(self):
log.info("Setting User Data")
self.input_username.setText(self.activeUser.username)
self.input_userno.setText(str(self.activeUser.id))
self.input_username.setText(str(self.activeUser.username))
self.input_userno.setText(str(self.activeUser.userid))
self.userdata.setText(self.activeUser.__repr__())
today = QtCore.QDate.currentDate().toString("yyyy-MM-dd")
self.db.setUserActiveDate(self.activeUser.id, today)
self.db.setUserActiveDate(self.activeUser.userid, today)
# self.mode.setText("Ausleihe")
def createUser(self):
@@ -222,14 +234,19 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.setUserData()
self.input_file_ident.setFocus()
self.mode.setText("Ausleihe")
self.btn_show_lentmedia.setText(self.db.getActiveLoans(self.activeUser.id))
print(self.activeUser.__dict__)
loans = self.db.getActiveLoans(self.activeUser.id)
dbg(loans=loans)
self.btn_show_lentmedia.setText(loans)
retdate = self.db.selectClosestReturnDate(self.activeUser.id)
if retdate:
date = stringToDate(retdate).toString("dd.MM.yyyy")
self.nextReturnDate.setText(date)
self.nextReturnDate.show()
self.label_7.show()
self.input_file_ident.setEnabled(True)
self.input_file_ident.setPlaceholderText("Buchidentifikation eingeben")
self.input_file_ident.setFocus()
def moveToLine(self, line):
log.debug("Moving to Line", line)
line.setFocus()
@@ -253,9 +270,9 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
dialog.exec()
return
self.mediaAdd(value)
self.input_file_ident.setFocus()
def mediaAdd(self, identifier):
# print("Adding Media", identifier)
dbg("Adding Media", identifier = identifier)
self.input_file_ident.clear()
self.input_file_ident.setEnabled(False)
@@ -282,7 +299,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
elif book_id:
if isinstance(book_id, list) and len(book_id) > 1:
# print("Multiple Books found")
print("Multiple Books found")
# TODO: implement book selection dialog
return
else:
@@ -324,15 +341,17 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
return
else:
# print("Book not loaned, loaning now")
self.loanMedia(user_id, book_id, media)
self.loanMedia(user_id, book_id)
def loanMedia(self, user_id, book_id, media):
def loanMedia(self, user_id, book_id):
self.db.insertLoan(
user_id,
book_id[0],
self.currentDate.toString("yyyy-MM-dd"),
self.duedate.date().toString("yyyy-MM-dd"),
)
media = self.db.getMedia(book_id[0])
print(media)
self.mediaOverview.insertRow(0)
self.mediaOverview.setItem(0, 0, QtWidgets.QTableWidgetItem(media.signature))
self.mediaOverview.setItem(0, 1, QtWidgets.QTableWidgetItem(media.title))
@@ -369,7 +388,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
book_id[0], self.currentDate.toString("yyyy-MM-dd")
)
self.mediaOverview.insertRow(0)
self.mediaOverview.setItem(0, 0, QtWidgets.QTableWidgetItem(book.isbn))
self.mediaOverview.setItem(0, 0, QtWidgets.QTableWidgetItem(book.signature))
self.mediaOverview.setItem(0, 1, QtWidgets.QTableWidgetItem(book.title))
self.mediaOverview.setItem(
0, 2, QtWidgets.QTableWidgetItem("Zurückgegeben")
@@ -384,6 +403,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.input_file_ident.clear()
else:
print("Book not found")
#self.input_file_ident.setPlaceholderText(f"Buch {identifier} nicht gefunden")
def setStatusTipMessage(self, message):
dialog = QtWidgets.QMessageBox()
@@ -397,7 +417,7 @@ def exit_handler():
app = QtWidgets.QApplication(sys.argv)
print(backup.backup)
# generate report if monday
if datetime.datetime.now().weekday() == 0:
if datetime.datetime.now().weekday() == config.report.report_day:
generate_report()
dbg("Generated Report")
Database().renameInactiveUsers()
@@ -427,8 +447,8 @@ def exit_handler():
dialog.setWindowTitle("Backup nicht möglich")
dialog.setText("Backup konnte nicht erstellt werden\nGrund: {}".format(reason))
dialog.exec()
def launch():
app = QtWidgets.QApplication(sys.argv)
def launch(options = None):
app = QtWidgets.QApplication(sys.argv if options is None else [options])
main_ui = MainUI()
atexit.register(exit_handler)
sys.exit(app.exec())