current state
This commit is contained in:
@@ -1,31 +1,38 @@
|
|||||||
import ast
|
import sys
|
||||||
|
import atexit
|
||||||
|
from src import config
|
||||||
|
from src.logic import Database, Catalogue, Backup
|
||||||
|
from src.utils import stringToDate, Icon, Log
|
||||||
|
from src.utils import debugMessage as dbg
|
||||||
|
from src.schemas import Book
|
||||||
from .sources.Ui_main_UserInterface import Ui_MainWindow
|
from .sources.Ui_main_UserInterface import Ui_MainWindow
|
||||||
from .user import UserUI
|
from .user import UserUI
|
||||||
from .createUser import CreateUser
|
from .createUser import CreateUser
|
||||||
from .multiUserInfo import MultiUserFound
|
from .multiUserInfo import MultiUserFound
|
||||||
from .newentry import NewEntry
|
from .newentry import NewEntry
|
||||||
from .settings import Settings
|
from .settings import Settings
|
||||||
from src import config
|
from .newBook import NewBook
|
||||||
from src.logic import Database, Catalogue, Backup
|
from .loans import LoanWindow
|
||||||
from src.utils import stringToDate, Icon
|
from .reportUi import ReportUi
|
||||||
from src.schemas import User, Book
|
|
||||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
from PyQt6 import QtCore, QtWidgets
|
||||||
import sys
|
|
||||||
import atexit
|
|
||||||
|
|
||||||
backup = Backup()
|
backup = Backup()
|
||||||
|
cat = Catalogue()
|
||||||
|
log = Log("main")
|
||||||
|
dbg(backup=config.database.do_backup, catalogue=config.catalogue)
|
||||||
|
|
||||||
|
|
||||||
class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(MainUI, self).__init__()
|
super(MainUI, self).__init__()
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.setWindowTitle("Handbibliotheksleihsystem")
|
self.setWindowTitle(f"Handbibliotheksleihsystem {config.institution_name}")
|
||||||
self.setWindowIcon(Icon("main").icon)
|
self.setWindowIcon(Icon("main").icon)
|
||||||
self.db = Database()
|
self.db = Database()
|
||||||
self.currentDate = QtCore.QDate.currentDate()
|
self.currentDate = QtCore.QDate.currentDate()
|
||||||
self.label_7.hide()
|
self.label_7.hide()
|
||||||
self.nextReturnDate.hide()
|
self.nextReturnDate.hide()
|
||||||
self.activeUser = None
|
|
||||||
# add default loan duration to current date
|
# add default loan duration to current date
|
||||||
loanDate = self.currentDate.addDays(config.default_loan_duration)
|
loanDate = self.currentDate.addDays(config.default_loan_duration)
|
||||||
self.duedate.setDate(loanDate)
|
self.duedate.setDate(loanDate)
|
||||||
@@ -33,8 +40,13 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.actionRueckgabemodus.triggered.connect(self.changeMode)
|
self.actionRueckgabemodus.triggered.connect(self.changeMode)
|
||||||
self.actionNutzer.triggered.connect(self.showUser)
|
self.actionNutzer.triggered.connect(self.showUser)
|
||||||
self.actionEinstellungen.triggered.connect(self.showSettings)
|
self.actionEinstellungen.triggered.connect(self.showSettings)
|
||||||
#Buttons
|
self.actionAusleihistorie.triggered.connect(self.showLoanHistory)
|
||||||
|
self.actionBericht_erstellen.triggered.connect(self.generateReport)
|
||||||
|
# Buttons
|
||||||
self.btn_show_lentmedia.clicked.connect(self.showUser)
|
self.btn_show_lentmedia.clicked.connect(self.showUser)
|
||||||
|
self.btn_createNewUser.clicked.connect(self.createUser)
|
||||||
|
self.btn_createNewUser.setText("")
|
||||||
|
self.btn_createNewUser.setIcon(Icon("add_user").overwriteColor("#1E90FF"))
|
||||||
|
|
||||||
# LineEdits
|
# LineEdits
|
||||||
self.input_userno.returnPressed.connect(
|
self.input_userno.returnPressed.connect(
|
||||||
@@ -44,22 +56,54 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
lambda: self.checkUser("username", self.input_username.text())
|
lambda: self.checkUser("username", self.input_username.text())
|
||||||
)
|
)
|
||||||
self.input_file_ident.returnPressed.connect(self.handleLineInput)
|
self.input_file_ident.returnPressed.connect(self.handleLineInput)
|
||||||
self.input_userno.setValidator(QtGui.QIntValidator())
|
self.input_userno.setMaxLength(40)
|
||||||
|
self.input_userno.textChanged.connect(
|
||||||
|
lambda: self.validateInput(self.input_userno.text(), "int")
|
||||||
|
)
|
||||||
# TableWidget
|
# TableWidget
|
||||||
# set header size to be width/number of columns
|
# set header size to be width/number of columns
|
||||||
self.mediaOverview.horizontalHeader().setSectionResizeMode(
|
self.mediaOverview.horizontalHeader().setSectionResizeMode(
|
||||||
QtWidgets.QHeaderView.ResizeMode.Stretch
|
QtWidgets.QHeaderView.ResizeMode.Stretch
|
||||||
)
|
)
|
||||||
|
self.input_file_ident.setFocus()
|
||||||
|
# self.userdata.textChanged.connect(lambda: self.mode.setText("Ausleihe"))
|
||||||
# self.input_userno.
|
# self.input_userno.
|
||||||
|
# variables
|
||||||
|
self.activeUser = None
|
||||||
|
self.activeState = "Rückgabe"
|
||||||
|
|
||||||
|
if backup.backup:
|
||||||
|
log.info("Backup enabled")
|
||||||
|
else:
|
||||||
|
log.warning("Backup disabled")
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
|
def generateReport(self):
|
||||||
|
log.info("Generating Report")
|
||||||
|
report = ReportUi()
|
||||||
|
report.exec()
|
||||||
|
|
||||||
|
def showLoanHistory(self):
|
||||||
|
log.info("Showing Loan History")
|
||||||
|
self.loan = LoanWindow()
|
||||||
|
self.loan.show()
|
||||||
|
|
||||||
|
def validateInput(self, value, type):
|
||||||
|
lastchar = value[-1] if value else ""
|
||||||
|
# if lastchar is not of the type, remove it
|
||||||
|
if type == "int":
|
||||||
|
if not lastchar.isdigit():
|
||||||
|
self.input_userno.setText(value[:-1])
|
||||||
|
|
||||||
def showSettings(self):
|
def showSettings(self):
|
||||||
|
log.info("Showing Settings")
|
||||||
settings = Settings()
|
settings = Settings()
|
||||||
settings.exec()
|
settings.exec()
|
||||||
|
|
||||||
def changeMode(self):
|
def changeMode(self):
|
||||||
|
log.info("Changing Mode")
|
||||||
|
dbg(f"Current mode: {self.mode.text()}")
|
||||||
|
|
||||||
self.mode.setText("Rückgabe")
|
self.mode.setText("Rückgabe")
|
||||||
self.input_username.clear()
|
self.input_username.clear()
|
||||||
self.input_userno.clear()
|
self.input_userno.clear()
|
||||||
@@ -68,10 +112,13 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.input_file_ident.clear()
|
self.input_file_ident.clear()
|
||||||
self.label_7.hide()
|
self.label_7.hide()
|
||||||
self.nextReturnDate.hide()
|
self.nextReturnDate.hide()
|
||||||
|
self.mediaOverview.setRowCount(0)
|
||||||
|
|
||||||
def showUser(self):
|
def showUser(self):
|
||||||
|
log.info(f"Showing User {self.activeUser}")
|
||||||
if self.activeUser is None:
|
if self.activeUser is None:
|
||||||
# create warning dialog
|
# create warning dialog
|
||||||
|
log.info("Showing no user selected warning")
|
||||||
dialog = QtWidgets.QMessageBox()
|
dialog = QtWidgets.QMessageBox()
|
||||||
dialog.setWindowTitle("Kein Nutzer ausgewählt")
|
dialog.setWindowTitle("Kein Nutzer ausgewählt")
|
||||||
dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning)
|
dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning)
|
||||||
@@ -87,81 +134,156 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.user_ui.show()
|
self.user_ui.show()
|
||||||
|
|
||||||
def setUserData(self):
|
def setUserData(self):
|
||||||
|
log.info("Setting User Data")
|
||||||
self.input_username.setText(self.activeUser.username)
|
self.input_username.setText(self.activeUser.username)
|
||||||
self.input_userno.setText(str(self.activeUser.id))
|
self.input_userno.setText(str(self.activeUser.id))
|
||||||
self.userdata.setText(self.activeUser.__repr__())
|
self.userdata.setText(self.activeUser.__repr__())
|
||||||
|
self.mode.setText("Ausleihe")
|
||||||
|
|
||||||
def checkUser(self, fieldname, data):
|
def createUser(self):
|
||||||
print("Checking User", fieldname, data)
|
log.info("Creating User")
|
||||||
# set fieldname as key and data as variable
|
user = CreateUser(fieldname="id", data="")
|
||||||
user = self.db.checkUserExists(fieldname, data)
|
|
||||||
if not user:
|
|
||||||
user = CreateUser(fieldname, data)
|
|
||||||
user.exec()
|
user.exec()
|
||||||
userid = user.userid
|
userid = user.userid
|
||||||
if userid:
|
if userid:
|
||||||
|
log.info(f"User created {userid}")
|
||||||
data = self.db.getUser(userid)
|
data = self.db.getUser(userid)
|
||||||
self.activeUser = data
|
self.activeUser = data
|
||||||
|
# set user to active user
|
||||||
|
self.setUserData()
|
||||||
|
|
||||||
|
self.input_file_ident.setFocus()
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def checkUser(self, fieldname, data):
|
||||||
|
log.info(f"Checking User {fieldname}, {data}")
|
||||||
|
# print("Checking User", fieldname, data)
|
||||||
|
# set fieldname as key and data as variable
|
||||||
|
user = self.db.checkUserExists(fieldname, data)
|
||||||
|
if not user:
|
||||||
|
warning = QtWidgets.QMessageBox()
|
||||||
|
warning.setWindowTitle("Nutzer nicht gefunden")
|
||||||
|
warning.setIcon(QtWidgets.QMessageBox.Icon.Warning)
|
||||||
|
warning.setWindowIcon(Icon("warning").overwriteColor("#EA3323"))
|
||||||
|
warning.setText("Nutzer nicht gefunden, bitte erst anlegen")
|
||||||
|
warning.exec()
|
||||||
|
self.input_username.clear()
|
||||||
|
self.input_userno.clear()
|
||||||
|
return
|
||||||
else:
|
else:
|
||||||
if len(user) > 1:
|
if len(user) > 1:
|
||||||
|
log.info("Multiple Users found")
|
||||||
multi = MultiUserFound(user)
|
multi = MultiUserFound(user)
|
||||||
multi.exec()
|
multi.exec()
|
||||||
self.activeUser = multi.userdata
|
self.activeUser = multi.userdata
|
||||||
else:
|
else:
|
||||||
|
# print("User found", user[0])
|
||||||
self.activeUser = user[0]
|
self.activeUser = user[0]
|
||||||
|
|
||||||
if self.activeUser is not None:
|
if self.activeUser is not None:
|
||||||
print("User found", self.activeUser)
|
log.info(f"User found {self.activeUser}")
|
||||||
|
# print("User found", self.activeUser)
|
||||||
self.setUserData()
|
self.setUserData()
|
||||||
self.input_file_ident.setFocus()
|
self.input_file_ident.setFocus()
|
||||||
self.mode.setText("Ausleihe")
|
self.mode.setText("Ausleihe")
|
||||||
self.btn_show_lentmedia.setText(self.db.getActiveLoans(self.activeUser.id))
|
self.btn_show_lentmedia.setText(self.db.getActiveLoans(self.activeUser.id))
|
||||||
retdate = self.db.selectClosestReturnDate(self.activeUser.id)
|
retdate = self.db.selectClosestReturnDate(self.activeUser.id)
|
||||||
if retdate:
|
if retdate:
|
||||||
date = stringToDate(retdate)
|
date = stringToDate(retdate).toString("dd.MM.yyyy")
|
||||||
self.nextReturnDate.setText(date)
|
self.nextReturnDate.setText(date)
|
||||||
self.nextReturnDate.show()
|
self.nextReturnDate.show()
|
||||||
self.label_7.show()
|
self.label_7.show()
|
||||||
|
|
||||||
def moveToLine(self, line):
|
def moveToLine(self, line):
|
||||||
|
log.debug("Moving to Line", line)
|
||||||
line.setFocus()
|
line.setFocus()
|
||||||
|
|
||||||
def handleLineInput(self):
|
def handleLineInput(self):
|
||||||
value = self.input_file_ident.text().strip()
|
value = self.input_file_ident.text().strip()
|
||||||
if len(value) <= 2:
|
log.debug(f"Handling Line Input {value}")
|
||||||
self.callShortcut(value)
|
|
||||||
else:
|
|
||||||
if self.mode.text() == "Rückgabe":
|
if self.mode.text() == "Rückgabe":
|
||||||
self.returnMedia(value)
|
self.returnMedia(value)
|
||||||
else:
|
else:
|
||||||
|
if not " " in value:
|
||||||
|
# create warning dialog
|
||||||
|
log.info("Invalid Input")
|
||||||
|
dialog = QtWidgets.QMessageBox()
|
||||||
|
dialog.setWindowTitle("Ungültige Eingabe")
|
||||||
|
dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning)
|
||||||
|
dialog.setWindowIcon(Icon("warning").overwriteColor("#EA3323"))
|
||||||
|
dialog.setText(
|
||||||
|
"Die Eingabe enthält kein Leerzeichen\nBitte prüfen und erneut eingeben"
|
||||||
|
)
|
||||||
|
dialog.exec()
|
||||||
|
return
|
||||||
self.mediaAdd(value)
|
self.mediaAdd(value)
|
||||||
|
|
||||||
def mediaAdd(self, identifier):
|
def mediaAdd(self, identifier):
|
||||||
self.clearStatusTip
|
self.clearStatusTip
|
||||||
print("Adding Media", identifier)
|
# print("Adding Media", identifier)
|
||||||
self.setStatusTip("")
|
self.setStatusTip("")
|
||||||
self.input_file_ident.clear()
|
self.input_file_ident.clear()
|
||||||
self.input_file_ident.setEnabled(False)
|
self.input_file_ident.setEnabled(False)
|
||||||
|
|
||||||
user_id = self.activeUser.id
|
user_id = self.activeUser.id
|
||||||
cat = Catalogue()
|
media = Book(signature=identifier)
|
||||||
media = cat.get_book(identifier)
|
|
||||||
print(media)
|
|
||||||
book_id = self.db.checkMediaExists(media)
|
book_id = self.db.checkMediaExists(media)
|
||||||
print(book_id)
|
dbg(f"Book ID: {book_id}, User ID: {user_id}", media=media)
|
||||||
|
if not book_id:
|
||||||
|
dbg("Book not found, searching catalogue")
|
||||||
|
if config.catalogue == True:
|
||||||
|
media = cat.get_book(identifier)
|
||||||
|
if not media:
|
||||||
|
self.setStatusTipMessage("Buch nicht gefunden")
|
||||||
|
self.input_file_ident.setEnabled(True)
|
||||||
|
return
|
||||||
|
book_id = self.db.insertMedia(media)
|
||||||
|
# self.db.insertLoan(
|
||||||
|
# userid=user_id,
|
||||||
|
# mediaid=book_id,
|
||||||
|
# loandate=self.currentDate.toString("yyyy-MM-dd"),
|
||||||
|
# duedate=self.duedate.date().toString("yyyy-MM-dd"),
|
||||||
|
# )
|
||||||
|
# self.mediaOverview.insertRow(0)
|
||||||
|
# self.mediaOverview.setItem(0, 0, QtWidgets.QTableWidgetItem(media.isbn))
|
||||||
|
# self.mediaOverview.setItem(
|
||||||
|
# 0, 1, QtWidgets.QTableWidgetItem(media.title)
|
||||||
|
# )
|
||||||
|
# self.mediaOverview.setItem(
|
||||||
|
# 0, 2, QtWidgets.QTableWidgetItem("Entliehen")
|
||||||
|
# )
|
||||||
|
# return
|
||||||
|
else:
|
||||||
|
newbook = NewBook()
|
||||||
|
newbook.exec()
|
||||||
|
if newbook.result() == 1:
|
||||||
|
media = newbook.book
|
||||||
|
book_id = self.db.insertMedia(media)
|
||||||
|
# self.db.insertLoan(
|
||||||
|
# userid=user_id,
|
||||||
|
# mediaid=book_id,
|
||||||
|
# loandate=self.currentDate.toString(),
|
||||||
|
# duedate=self.duedate.date().toString(),
|
||||||
|
# )
|
||||||
|
|
||||||
if book_id:
|
if book_id:
|
||||||
if len(book_id) > 1:
|
if isinstance(book_id, list) and len(book_id) > 1:
|
||||||
print("Multiple Books found")
|
# print("Multiple Books found")
|
||||||
# TODO: implement book selection dialog
|
# TODO: implement book selection dialog
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
|
if isinstance(book_id, int):
|
||||||
|
book_id = [book_id]
|
||||||
# check if book is already loaned
|
# check if book is already loaned
|
||||||
loaned = self.db.checkLoanState(book_id[0])
|
loaned = self.db.checkLoanState(book_id[0])
|
||||||
if loaned:
|
if loaned:
|
||||||
print("Book already loaned")
|
# print("Book already loaned")
|
||||||
self.setStatusTipMessage("Buch bereits entliehen")
|
self.setStatusTipMessage("Buch bereits entliehen")
|
||||||
# dialog with yes no to create new entry
|
# dialog with yes no to create new entry
|
||||||
dialog = QtWidgets.QMessageBox()
|
dialog = QtWidgets.QMessageBox()
|
||||||
|
dialog.setWindowTitle("Buch bereits entliehen")
|
||||||
|
dialog.setWindowIcon(Icon("duplicate").icon)
|
||||||
dialog.setText(
|
dialog.setText(
|
||||||
"Buch bereits entliehen, soll ein neues hinzugefügt werden?"
|
"Buch bereits entliehen, soll ein neues hinzugefügt werden?"
|
||||||
)
|
)
|
||||||
@@ -173,22 +295,22 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
dialog.exec()
|
dialog.exec()
|
||||||
result = dialog.result()
|
result = dialog.result()
|
||||||
if result == QtWidgets.QMessageBox.StandardButton.No:
|
if result == QtWidgets.QMessageBox.StandardButton.No:
|
||||||
|
self.input_file_ident.setEnabled(True)
|
||||||
return
|
return
|
||||||
newentry = NewEntry([book_id[0]])
|
newentry = NewEntry([book_id[0]])
|
||||||
newentry.exec()
|
newentry.exec()
|
||||||
self.setStatusTipMessage("Neues Exemplar hinzugefügt")
|
self.setStatusTipMessage("Neues Exemplar hinzugefügt")
|
||||||
created_ids = newentry.newIds
|
# print(created_ids)
|
||||||
print(created_ids)
|
|
||||||
self.input_file_ident.setEnabled(True)
|
self.input_file_ident.setEnabled(True)
|
||||||
|
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
print("Book not loaned, loaning now")
|
# print("Book not loaned, loaning now")
|
||||||
self.db.insertLoan(
|
self.db.insertLoan(
|
||||||
user_id,
|
user_id,
|
||||||
book_id[0],
|
book_id[0],
|
||||||
self.currentDate.toString(),
|
self.currentDate.toString("yyyy-MM-dd"),
|
||||||
self.duedate.date().toString(),
|
self.duedate.date().toString("yyyy-MM-dd"),
|
||||||
)
|
)
|
||||||
self.mediaOverview.insertRow(0)
|
self.mediaOverview.insertRow(0)
|
||||||
self.mediaOverview.setItem(
|
self.mediaOverview.setItem(
|
||||||
@@ -200,48 +322,39 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.mediaOverview.setItem(
|
self.mediaOverview.setItem(
|
||||||
0, 2, QtWidgets.QTableWidgetItem("Entliehen")
|
0, 2, QtWidgets.QTableWidgetItem("Entliehen")
|
||||||
)
|
)
|
||||||
else:
|
# else:
|
||||||
book_id = self.db.insertMedia(media)
|
|
||||||
self.db.insertLoan(
|
|
||||||
userid=user_id,
|
|
||||||
mediaid=book_id,
|
|
||||||
loandate=self.currentDate.toString(),
|
|
||||||
duedate=self.duedate.date().toString(),
|
|
||||||
)
|
|
||||||
|
|
||||||
self.btn_show_lentmedia.setText(self.db.getActiveLoans(self.activeUser.id))
|
self.btn_show_lentmedia.setText(self.db.getActiveLoans(self.activeUser.id))
|
||||||
self.nextReturnDate.setText(
|
self.nextReturnDate.setText(
|
||||||
stringToDate(self.db.selectClosestReturnDate(self.activeUser.id))
|
stringToDate(self.db.selectClosestReturnDate(self.activeUser.id)).toString(
|
||||||
|
"dd.MM.yyyy"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.nextReturnDate.show()
|
self.nextReturnDate.show()
|
||||||
self.label_7.show()
|
self.label_7.show()
|
||||||
self.input_file_ident.setEnabled(True)
|
self.input_file_ident.setEnabled(True)
|
||||||
|
|
||||||
def callShortcut(self, shortcut):
|
|
||||||
print("Calling Shortcut", shortcut)
|
|
||||||
# check if actions have shortcut key and call them
|
|
||||||
sysem_shortcuts = None
|
|
||||||
print(sysem_shortcuts)
|
|
||||||
|
|
||||||
|
|
||||||
def returnMedia(self, identifier):
|
def returnMedia(self, identifier):
|
||||||
print("Returning Media", identifier)
|
# print("Returning Media", identifier)
|
||||||
# get book id from database
|
# get book id from database
|
||||||
|
# self.
|
||||||
identifier = Book(
|
identifier = Book(
|
||||||
isbn=identifier, title=identifier, signature=identifier, ppn=identifier
|
isbn=identifier, title=identifier, signature=identifier, ppn=identifier
|
||||||
)
|
)
|
||||||
book_id = self.db.checkMediaExists(identifier)
|
book_id = self.db.checkMediaExists(identifier)
|
||||||
print(book_id)
|
# print(book_id)
|
||||||
if book_id:
|
if book_id:
|
||||||
# check if book is already loaned
|
# check if book is already loaned
|
||||||
loaned = self.db.checkLoanState(book_id[0])
|
loaned = self.db.checkLoanState(book_id[0])
|
||||||
if loaned:
|
if loaned:
|
||||||
print("Book already loaned, returning now")
|
# print("Book already loaned, returning now")
|
||||||
user = self.db.getUserByLoan(book_id[0])
|
user = self.db.getUserByLoan(book_id[0])
|
||||||
# set userdata in lineedits
|
# set userdata in lineedits
|
||||||
self.activeUser = user
|
self.activeUser = user
|
||||||
self.setUserData()
|
self.setUserData()
|
||||||
book = self.db.returnMedia(book_id[0], self.currentDate.toString())
|
book = self.db.returnMedia(
|
||||||
|
book_id[0], self.currentDate.toString("yyyy-MM-dd")
|
||||||
|
)
|
||||||
self.mediaOverview.insertRow(0)
|
self.mediaOverview.insertRow(0)
|
||||||
self.mediaOverview.setItem(0, 0, QtWidgets.QTableWidgetItem(book.isbn))
|
self.mediaOverview.setItem(0, 0, QtWidgets.QTableWidgetItem(book.isbn))
|
||||||
self.mediaOverview.setItem(0, 1, QtWidgets.QTableWidgetItem(book.title))
|
self.mediaOverview.setItem(0, 1, QtWidgets.QTableWidgetItem(book.title))
|
||||||
@@ -254,7 +367,9 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
)
|
)
|
||||||
#
|
#
|
||||||
else:
|
else:
|
||||||
print("Book not loaned")
|
# print("Book not loaned")
|
||||||
|
self.setStatusTipMessage("Buch nicht entliehen")
|
||||||
|
self.input_file_ident.clear()
|
||||||
else:
|
else:
|
||||||
print("Book not found")
|
print("Book not found")
|
||||||
|
|
||||||
@@ -265,19 +380,38 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
def clearStatusTip(self):
|
def clearStatusTip(self):
|
||||||
self.setStatusTip("")
|
self.setStatusTip("")
|
||||||
|
|
||||||
|
|
||||||
def exit_handler():
|
def exit_handler():
|
||||||
print("Exiting")
|
dbg("Exiting, creating backup")
|
||||||
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
|
if config.database.do_backup:
|
||||||
state = backup.createBackup()
|
state = backup.createBackup()
|
||||||
# create dialog to show state
|
# create dialog to show state
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
|
||||||
dialog = QtWidgets.QMessageBox()
|
|
||||||
if state == True:
|
if state == True:
|
||||||
dialog.setText("Backup created successfully")
|
return
|
||||||
else:
|
else:
|
||||||
dialog.setText("Backup creation failed")
|
dialog = QtWidgets.QMessageBox()
|
||||||
|
# set icon
|
||||||
|
dialog.setWindowIcon(Icon("backup").icon)
|
||||||
|
dialog.setWindowTitle("Backup")
|
||||||
|
dialog.setText("Backup konnte nicht erstellt werden")
|
||||||
|
|
||||||
|
dialog.exec()
|
||||||
|
dbg("Exiting", backupstate=state)
|
||||||
|
else:
|
||||||
|
dialog = QtWidgets.QMessageBox()
|
||||||
|
# set icon
|
||||||
|
reason = (
|
||||||
|
"Backup deaktiviert"
|
||||||
|
if config.database.do_backup is False
|
||||||
|
else "Backuppfad nicht gefunden"
|
||||||
|
if not backup.backup
|
||||||
|
else "Unbekannter Fehler"
|
||||||
|
)
|
||||||
|
dialog.setWindowIcon(Icon("backup").icon)
|
||||||
|
dialog.setWindowTitle("Backup nicht möglich")
|
||||||
|
dialog.setText("Backup konnte nicht erstellt werden\nGrund: {}".format(reason))
|
||||||
dialog.exec()
|
dialog.exec()
|
||||||
|
|
||||||
|
|
||||||
def launch():
|
def launch():
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
main_ui = MainUI()
|
main_ui = MainUI()
|
||||||
|
|||||||
Reference in New Issue
Block a user