update files, bring to latest code

This commit is contained in:
WorldTeacher
2024-07-18 11:57:20 +02:00
parent 891eb3e90a
commit ae2e588780
14 changed files with 686 additions and 60 deletions

View File

@@ -4,9 +4,10 @@ from .user import UserUI
from .createUser import CreateUser
from .multiUserInfo import MultiUserFound
from .newentry import NewEntry
from .settings import Settings
from src import config
from src.logic import Database, Catalogue, Backup
from src.utils import stringToDate
from src.utils import stringToDate, Icon
from src.schemas import User, Book
from PyQt6 import QtCore, QtGui, QtWidgets
import sys
@@ -18,6 +19,8 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainUI, self).__init__()
self.setupUi(self)
self.setWindowTitle("Handbibliotheksleihsystem")
self.setWindowIcon(Icon("main").icon)
self.db = Database()
self.currentDate = QtCore.QDate.currentDate()
self.label_7.hide()
@@ -29,7 +32,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
# hotkeys
self.actionRueckgabemodus.triggered.connect(self.changeMode)
self.actionNutzer.triggered.connect(self.showUser)
self.actionEinstellungen.triggered.connect(self.showSettings)
#Buttons
self.btn_show_lentmedia.clicked.connect(self.showUser)
@@ -40,7 +43,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.input_username.returnPressed.connect(
lambda: self.checkUser("username", self.input_username.text())
)
self.input_file_ident.returnPressed.connect(self.addMedia)
self.input_file_ident.returnPressed.connect(self.handleLineInput)
self.input_userno.setValidator(QtGui.QIntValidator())
# TableWidget
@@ -52,29 +55,29 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
self.show()
def showSettings(self):
settings = Settings()
settings.exec()
def changeMode(self):
current = self.mode.text()
if current == "Ausleihe":
self.mode.setText("Rückgabe")
self.input_username.clear()
self.input_userno.clear()
self.userdata.clear()
self.btn_show_lentmedia.setText("")
self.label_7.hide()
self.nextReturnDate.hide()
if current == "Rückgabe":
self.input_username.clear()
self.input_userno.clear()
self.userdata.clear()
self.mediaOverview.setRowCount(0)
self.btn_show_lentmedia.setText("")
self.input_file_ident.clear()
self.nextReturnDate.hide()
self.label_7.hide()
self.mode.setText("Rückgabe")
self.input_username.clear()
self.input_userno.clear()
self.userdata.clear()
self.btn_show_lentmedia.setText("")
self.input_file_ident.clear()
self.label_7.hide()
self.nextReturnDate.hide()
def showUser(self):
if self.activeUser is None:
# create warning dialog
dialog = QtWidgets.QMessageBox()
dialog.setWindowTitle("Kein Nutzer ausgewählt")
dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning)
dialog.setWindowIcon(Icon("warning").overwriteColor("#EA3323"))
dialog.setText("Kein Nutzer ausgewählt")
dialog.exec()
return
self.user_ui = UserUI(
@@ -123,7 +126,18 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
def moveToLine(self, line):
line.setFocus()
def handleLineInput(self):
value = self.input_file_ident.text().strip()
if len(value) <= 2:
self.callShortcut(value)
else:
if self.mode.text() == "Rückgabe":
self.returnMedia(value)
else:
self.mediaAdd(value)
def mediaAdd(self, identifier):
self.clearStatusTip
print("Adding Media", identifier)
self.setStatusTip("")
self.input_file_ident.clear()
@@ -138,13 +152,33 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
if book_id:
if len(book_id) > 1:
print("Multiple Books found")
# TODO: implement book selection dialog
return
else:
# check if book is already loaned
loaned = self.db.checkLoanState(book_id[0])
if loaned:
print("Book already loaned")
self.setStatusTip("Book already loaned")
self.setStatusTipMessage("Buch bereits entliehen")
# dialog with yes no to create new entry
dialog = QtWidgets.QMessageBox()
dialog.setText(
"Buch bereits entliehen, soll ein neues hinzugefügt werden?"
)
dialog.setStandardButtons(
QtWidgets.QMessageBox.StandardButton.Yes
| QtWidgets.QMessageBox.StandardButton.No
)
dialog.setDefaultButton(QtWidgets.QMessageBox.StandardButton.No)
dialog.exec()
result = dialog.result()
if result == QtWidgets.QMessageBox.StandardButton.No:
return
newentry = NewEntry([book_id[0]])
newentry.exec()
self.setStatusTipMessage("Neues Exemplar hinzugefügt")
created_ids = newentry.newIds
print(created_ids)
self.input_file_ident.setEnabled(True)
return
@@ -189,14 +223,6 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
sysem_shortcuts = None
print(sysem_shortcuts)
def addMedia(self):
mode = self.mode.text()
value = self.input_file_ident.text()
# if vaule is string, call shortcut, else mediaAdd
if mode == "Rückgabe":
self.returnMedia(value)
else:
self.lendMedia(value)
def returnMedia(self, identifier):
print("Returning Media", identifier)
@@ -232,15 +258,12 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
else:
print("Book not found")
def lendMedia(self, value):
value = value.strip()
if value.isnumeric():
self.mediaAdd(value)
else:
if len(value) <= 2:
self.callShortcut(value)
else:
self.mediaAdd(value)
def setStatusTipMessage(self, message):
self.setStatusTip(message)
@property
def clearStatusTip(self):
self.setStatusTip("")
def exit_handler():
print("Exiting")
@@ -258,6 +281,6 @@ def exit_handler():
def launch():
app = QtWidgets.QApplication(sys.argv)
main_ui = MainUI()
atexit.register(exit_handler)
# atexit.register(exit_handler)
sys.exit(app.exec())
# sys.exit(app.exec())