update code, switch to loguru

This commit is contained in:
2025-01-10 09:35:18 +01:00
parent e915b47dda
commit 0d7dc28876
17 changed files with 127 additions and 162 deletions

View File

@@ -1,8 +1,9 @@
from src import log
from .sources.Ui_dialog_createUser import Ui_Dialog
from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6.QtGui import QRegularExpressionValidator
from src.logic import Database
from src.utils import Icon, Log
from src.utils import Icon
class CreateUser(QtWidgets.QDialog, Ui_Dialog):
def __init__(self, fieldname, data):
@@ -38,6 +39,7 @@ class CreateUser(QtWidgets.QDialog, Ui_Dialog):
self.userno.textChanged.connect(
lambda: self.validateInputUserno(self.userno.text(), "int")
)
log.info("User creation dialog opened")
def checkFields(self):
if (
self.username.hasAcceptableInput()
@@ -58,7 +60,11 @@ class CreateUser(QtWidgets.QDialog, Ui_Dialog):
usermail = self.user_mail.text()
if self.db.insertUser(username, userno, usermail):
self.userid = userno
log.info(f"User {username} created")
else:
log.error(
f"User {username} could not be created, input was: {username}, {userno}, {usermail}"
)
self.setStatusTipMessage(
"Benutzer konnte nicht erstellt werden, bitte überprüfen Sie die Eingaben"
)

View File

@@ -1,9 +1,9 @@
from .sources.Ui_main_Loans import Ui_MainWindow
from PyQt6 import QtCore, QtGui, QtWidgets
from src import log
from .user import UserUI
from src.logic import Database
from src.utils import stringToDate, Icon
from src.utils import debugMessage as dbg
from icecream import ic
TABLETOFIELDTRANSLATE = {
@@ -23,8 +23,7 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
QtWidgets.QHeaderView.ResizeMode.Stretch
)
self.db = Database()
self.loans = []
self.loadLoans()
self.loans = self.loadLoans()
# lineedits
self.searchbar.textChanged.connect(self.limitResults)
@@ -37,6 +36,7 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
# table
self.loanTable.doubleClicked.connect(self.showUser)
log.info("Loan history window opened")
self.show()
def selfpass(self):
@@ -44,7 +44,7 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def insertRow(self, data):
dbg(contents=data)
log.debug(f"Inserting row: {data}")
retdate = ""
if data.returned_date != "":
@@ -77,9 +77,10 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def loadLoans(self):
loans = self.db.getAllLoans()
loanlist = []
for loan in loans:
self.insertRow(loan)
self.loans = loans
return loanlist
def filterResults(self):
mode = (
@@ -112,7 +113,7 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
limiter = str(limiter)
searchfield = self.searchFields.currentText()
searchfield = TABLETOFIELDTRANSLATE[searchfield]
dbg(limiter=limiter, search=searchfield)
log.debug(f"Searching for: {limiter} in {searchfield}")
self.loanTable.setRowCount(0)
for loan in self.loans:
fielddata = eval(f"loan.{searchfield}")

View File

@@ -2,10 +2,9 @@ import sys
import atexit
import datetime
import webbrowser
from src import config, __email__, docport
from src import config, __email__, docport, log
from src.logic import Database, Catalogue, Backup
from src.utils import stringToDate, Icon, Log
from src.utils import debugMessage as dbg
from src.utils import stringToDate, Icon
from src.utils.createReport import generate_report
from src.schemas import Book
from .sources.Ui_main_UserInterface import Ui_MainWindow
@@ -22,8 +21,6 @@ from omegaconf import OmegaConf
from src.logic.documentation_thread import DocumentationThread
backup = Backup()
cat = Catalogue()
log = Log("main")
dbg(backup=config.database.do_backup, catalogue=config.catalogue)
def getShortcut(shortcuts, name):
shortcut = [cut for cut in shortcuts if cut["name"] == name][0]
@@ -183,7 +180,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
def restart(self):
#log restart
dbg("Restarting Program")
log.info("Restarting Program")
import os
python_executable = sys.executable
args = sys.argv[:]
@@ -192,8 +189,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
def changeMode(self):
log.info("Changing Mode")
dbg(f"Current mode: {self.activeState}")
log.info("Changing Mode, current mode is {}", self.activeState)
self.input_username.clear()
stayReturn = False
if config.advanced_refresh and self.userdata.toPlainText() != "":
@@ -216,7 +212,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.activateReturnMode()
def activateLoanMode(self):
dbg("Activating Loan Mode")
log.info("Activating Loan Mode")
self.input_username.setEnabled(True)
self.input_userno.setEnabled(True)
self.duedate.setEnabled(True)
@@ -234,7 +230,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.input_file_ident.setEnabled(True)
def activateReturnMode(self):
dbg("Activating Return Mode")
log.info("Activating Return Mode")
self.input_username.setEnabled(False)
self.input_userno.setEnabled(False)
# set mode background color to orange
@@ -326,7 +322,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.mode.setText("Ausleihe")
#print(self.activeUser.__dict__)
loans = self.db.getActiveLoans(self.activeUser.id)
dbg(loans=loans)
log.debug("Active Loans", loans)
self.btn_show_lentmedia.setText(loans)
retdate = self.db.selectClosestReturnDate(self.activeUser.id)
if retdate:
@@ -375,16 +371,16 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.mediaAdd(value)
self.input_file_ident.setFocus()
def mediaAdd(self, identifier):
dbg("Adding Media", identifier = identifier)
log.info("Adding Media", identifier=identifier)
self.input_file_ident.clear()
self.input_file_ident.setEnabled(False)
user_id = self.activeUser.id
media = Book(signature=identifier)
book_id = self.db.checkMediaExists(media)
dbg(f"Book ID: {book_id}, User ID: {user_id}", media=media)
log.debug(f"Book ID: {book_id}, User ID: {user_id}", media=media)
if not book_id:
dbg("Book not found, searching catalogue")
log.info("Book not found, searching catalogue")
if config.catalogue == True:
media = cat.get_book(identifier)
if not media:
@@ -441,7 +437,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
for entry in newentries:
book = self.db.getMedia(entry)
self.loanMedia(user_id, [entry], book)
dbg("inserted duplicated book into database")
log.info("inserted duplicated book into database")
return
else:
#print("Book not loaned, loaning now")
@@ -506,7 +502,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.setStatusTipMessage("Buch nicht entliehen")
self.input_file_ident.clear()
else:
dbg("Book not found")
log.error("Book not found, identifier", identifier)
#print("Book not found")
#self.input_file_ident.setPlaceholderText(f"Buch {identifier} nicht gefunden")
@@ -520,13 +516,13 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
dialog.setText(message)
dialog.exec()
def exit_handler():
dbg("Exiting, creating backup")
log.info("Exiting, creating backup")
app = QtWidgets.QApplication(sys.argv)
#print(backup.backup)
# generate report if monday
if datetime.datetime.now().weekday() == config.report.report_day:
generate_report()
dbg("Generated Report")
log.info("Generated Report")
Database().renameInactiveUsers()
if config.database.do_backup:
state = backup.createBackup()
@@ -541,7 +537,7 @@ def exit_handler():
dialog.setText("Backup konnte nicht erstellt werden")
dialog.exec()
dbg("Exiting", backupstate=state)
log.info("Exiting, backup:", state)
else:
dialog = QtWidgets.QMessageBox()
# set icon

View File

@@ -1,8 +1,7 @@
from .sources.Ui_dialog_settings import Ui_Dialog
from PyQt6 import QtWidgets, QtCore
from src import config, log
from src.utils import Icon
from src import config
from src.utils import debugMessage as dbg
from omegaconf import OmegaConf
import os
@@ -192,7 +191,7 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
if changed == original:
self.settingschanged = False
self.restart_required = False
dbg("Settings not changed")
log.info("Settings not changed")
else:
self.settingschanged = True
#compare if database or shortcuts were changed
@@ -200,7 +199,11 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
shortcuts = self.shortcuts == self.sortShortcuts(changed.shortcuts)
if not database or not shortcuts:
self.restart_required = True
dbg(f"Settings changed, restart required: {self.restart_required}",database=database,shortcuts=shortcuts)
log.info(
f"Settings changed, restart required: {self.restart_required}",
database=database,
shortcuts=shortcuts,
)
# save the new settings
if self.settingschanged:

View File

@@ -1,10 +1,10 @@
from .sources.Ui_main_userData import Ui_MainWindow
from PyQt6 import QtCore, QtGui, QtWidgets
from src import log
from src.logic import Database
from src.schemas import User
from .extendLoan import ExtendLoan
from src.utils import stringToDate, Icon
from src.utils import debugMessage as dbg
TABLETOFIELDTRANSLATE = {
"Titel": "title",
@@ -95,7 +95,6 @@ class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
limiter = self.searchbox.text().lower()
searchfield = self.searchfilter.currentText()
searchfield = TABLETOFIELDTRANSLATE[searchfield]
# dbg(limiter=limiter, search=searchfield)
self.UserMediaTable.setRowCount(0)
for loan in self.userMedia:
@@ -166,7 +165,7 @@ class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
continue
elif mode == "overdue":
# book not returned and todays date is greater than todate
dbg(book=book)
log.debug("Book: {}".format(book))
if book.returned_date is not None:
continue
# if todate is greater than current date, continue