bugfixes
This commit is contained in:
@@ -12,3 +12,4 @@ class Loan:
|
|||||||
returned: int
|
returned: int
|
||||||
returned_date: str
|
returned_date: str
|
||||||
book: Book
|
book: Book
|
||||||
|
user_name: str
|
||||||
@@ -3,8 +3,6 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
|||||||
from PyQt6.QtGui import QRegularExpressionValidator
|
from PyQt6.QtGui import QRegularExpressionValidator
|
||||||
from src.logic import Database
|
from src.logic import Database
|
||||||
from src.utils import Icon, Log
|
from src.utils import Icon, Log
|
||||||
from src.schemas import User
|
|
||||||
import re
|
|
||||||
|
|
||||||
class CreateUser(QtWidgets.QDialog, Ui_Dialog):
|
class CreateUser(QtWidgets.QDialog, Ui_Dialog):
|
||||||
def __init__(self, fieldname, data):
|
def __init__(self, fieldname, data):
|
||||||
@@ -58,8 +56,20 @@ class CreateUser(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
username = self.username.text()
|
username = self.username.text()
|
||||||
userno = int(self.userno.text())
|
userno = int(self.userno.text())
|
||||||
usermail = self.user_mail.text()
|
usermail = self.user_mail.text()
|
||||||
self.db.insertUser(username, userno, usermail)
|
if self.db.insertUser(username, userno, usermail):
|
||||||
self.userid = userno
|
self.userid = userno
|
||||||
|
else:
|
||||||
|
self.setStatusTipMessage(
|
||||||
|
"Benutzer konnte nicht erstellt werden, bitte überprüfen Sie die Eingaben"
|
||||||
|
)
|
||||||
|
|
||||||
|
def setStatusTipMessage(self, message):
|
||||||
|
dialog = QtWidgets.QMessageBox()
|
||||||
|
dialog.setWindowTitle("Information")
|
||||||
|
dialog.setIcon(QtWidgets.QMessageBox.Icon.Information)
|
||||||
|
dialog.setWindowIcon(Icon("error").overwriteColor("#EA3323"))
|
||||||
|
dialog.setText(message)
|
||||||
|
dialog.exec()
|
||||||
|
|
||||||
def validateInputUserno(self, value, type):
|
def validateInputUserno(self, value, type):
|
||||||
lastchar = value[-1] if value else ""
|
lastchar = value[-1] if value else ""
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from icecream import ic
|
|||||||
TABLETOFIELDTRANSLATE = {
|
TABLETOFIELDTRANSLATE = {
|
||||||
"Titel": "book.title",
|
"Titel": "book.title",
|
||||||
"Signatur": "book.signature",
|
"Signatur": "book.signature",
|
||||||
"Nutzer": "user_id",
|
"Nutzer": "user_name",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -28,6 +28,7 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
# lineedits
|
# lineedits
|
||||||
self.searchbar.textChanged.connect(self.limitResults)
|
self.searchbar.textChanged.connect(self.limitResults)
|
||||||
|
self.searchbar.returnPressed.connect(self.passThis)
|
||||||
|
|
||||||
# radio buttons
|
# radio buttons
|
||||||
self.radio_all.clicked.connect(self.filterResults)
|
self.radio_all.clicked.connect(self.filterResults)
|
||||||
@@ -38,16 +39,40 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.loanTable.doubleClicked.connect(self.showUser)
|
self.loanTable.doubleClicked.connect(self.showUser)
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
|
def passThis(self):
|
||||||
|
pass
|
||||||
|
|
||||||
def insertRow(self, data):
|
def insertRow(self, data):
|
||||||
dbg(contents=data)
|
dbg(contents=data)
|
||||||
|
retdate = (
|
||||||
|
stringToDate(data.return_date).toString("dd.MM.yyyy")
|
||||||
|
if data.return_date != ""
|
||||||
|
else ""
|
||||||
|
)
|
||||||
self.loanTable.insertRow(0)
|
self.loanTable.insertRow(0)
|
||||||
self.loanTable.setItem(0, 0, QtWidgets.QTableWidgetItem(data.book.isbn))
|
self.loanTable.setItem(0, 0, QtWidgets.QTableWidgetItem(data.book.isbn))
|
||||||
self.loanTable.setItem(0, 1, QtWidgets.QTableWidgetItem(data.book.signature))
|
self.loanTable.setItem(0, 1, QtWidgets.QTableWidgetItem(data.book.signature))
|
||||||
self.loanTable.setItem(0, 2, QtWidgets.QTableWidgetItem(data.book.title))
|
self.loanTable.setItem(0, 2, QtWidgets.QTableWidgetItem(data.book.title))
|
||||||
self.loanTable.setItem(0, 3, QtWidgets.QTableWidgetItem(str(data.user_id)))
|
self.loanTable.setItem(
|
||||||
self.loanTable.setItem(0, 4, QtWidgets.QTableWidgetItem(data.loan_date))
|
0,
|
||||||
self.loanTable.setItem(0, 5, QtWidgets.QTableWidgetItem(data.return_date))
|
3,
|
||||||
self.loanTable.setItem(0, 6, QtWidgets.QTableWidgetItem(data.returned_date))
|
QtWidgets.QTableWidgetItem(str(self.db.getUser(data.user_id).username)),
|
||||||
|
)
|
||||||
|
self.loanTable.setItem(
|
||||||
|
0,
|
||||||
|
4,
|
||||||
|
QtWidgets.QTableWidgetItem(
|
||||||
|
stringToDate(data.loan_date).toString("dd.MM.yyyy")
|
||||||
|
),
|
||||||
|
)
|
||||||
|
self.loanTable.setItem(
|
||||||
|
0,
|
||||||
|
5,
|
||||||
|
QtWidgets.QTableWidgetItem(
|
||||||
|
stringToDate(data.return_date).toString("dd.MM.yyyy")
|
||||||
|
),
|
||||||
|
)
|
||||||
|
self.loanTable.setItem(0, 6, QtWidgets.QTableWidgetItem(retdate))
|
||||||
|
|
||||||
def loadLoans(self):
|
def loadLoans(self):
|
||||||
loans = self.db.getAllLoans()
|
loans = self.db.getAllLoans()
|
||||||
@@ -83,9 +108,10 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def limitResults(self):
|
def limitResults(self):
|
||||||
limiter = self.searchbar.text().lower()
|
limiter = self.searchbar.text().lower()
|
||||||
|
limiter = str(limiter)
|
||||||
searchfield = self.searchFields.currentText()
|
searchfield = self.searchFields.currentText()
|
||||||
searchfield = TABLETOFIELDTRANSLATE[searchfield]
|
searchfield = TABLETOFIELDTRANSLATE[searchfield]
|
||||||
# dbg(limiter=limiter, search=searchfield)
|
dbg(limiter=limiter, search=searchfield)
|
||||||
self.loanTable.setRowCount(0)
|
self.loanTable.setRowCount(0)
|
||||||
for loan in self.loans:
|
for loan in self.loans:
|
||||||
fielddata = eval(f"loan.{searchfield}")
|
fielddata = eval(f"loan.{searchfield}")
|
||||||
@@ -96,9 +122,8 @@ class LoanWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def showUser(self):
|
def showUser(self):
|
||||||
row = self.loanTable.currentRow()
|
row = self.loanTable.currentRow()
|
||||||
user_id = self.loanTable.item(row, 3).text()
|
user_name = self.loanTable.item(row, 3).text()
|
||||||
user_id = int(user_id)
|
user = self.db.getUserId(user_name)
|
||||||
user = self.db.getUser(user_id)
|
|
||||||
self.user = UserUI(user.username, user.id, user.email)
|
self.user = UserUI(user.username, user.id, user.email)
|
||||||
self.user.show()
|
self.user.show()
|
||||||
|
|
||||||
|
|||||||
@@ -384,7 +384,7 @@ class MainUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def setStatusTipMessage(self, message):
|
def setStatusTipMessage(self, message):
|
||||||
dialog = QtWidgets.QMessageBox()
|
dialog = QtWidgets.QMessageBox()
|
||||||
dialog.setWindowTitle("Fehler")
|
dialog.setWindowTitle("Information")
|
||||||
dialog.setIcon(QtWidgets.QMessageBox.Icon.Information)
|
dialog.setIcon(QtWidgets.QMessageBox.Icon.Information)
|
||||||
dialog.setWindowIcon(Icon("error").overwriteColor("#EA3323"))
|
dialog.setWindowIcon(Icon("error").overwriteColor("#EA3323"))
|
||||||
dialog.setText(message)
|
dialog.setText(message)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
self.radio_month.clicked.connect(self.set_days_by_radio)
|
self.radio_month.clicked.connect(self.set_days_by_radio)
|
||||||
self.radio_week.clicked.connect(self.set_days_by_radio)
|
self.radio_week.clicked.connect(self.set_days_by_radio)
|
||||||
self.format_txt.clicked.connect(lambda: self.rthread.setFormat("txt"))
|
self.format_txt.clicked.connect(lambda: self.rthread.setFormat("txt"))
|
||||||
self.format_csv.clicked.connect(lambda: self.rthread.setFormat("csv"))
|
self.format_csv.clicked.connect(lambda: self.rthread.setFormat("tsv"))
|
||||||
self.format_csv.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
self.format_csv.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
||||||
self.format_txt.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
self.format_txt.clicked.connect(lambda: self.generateReport.setEnabled(True))
|
||||||
# sliders
|
# sliders
|
||||||
@@ -59,7 +59,6 @@ class ReportUi(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
self.dayValue.setText(str(value))
|
self.dayValue.setText(str(value))
|
||||||
|
|
||||||
def generate_report(self):
|
def generate_report(self):
|
||||||
print(self.days)
|
|
||||||
self.rthread.setDays(self.days)
|
self.rthread.setDays(self.days)
|
||||||
self.rthread.report_signal.connect(self.report_generated)
|
self.rthread.report_signal.connect(self.report_generated)
|
||||||
self.rthread.report_nums_signal.connect(self.show_progress)
|
self.rthread.report_nums_signal.connect(self.show_progress)
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
extend = ExtendLoan(self.username, self.userMedia)
|
extend = ExtendLoan(self.username, self.userMedia)
|
||||||
extend.exec()
|
extend.exec()
|
||||||
if extend.result() == 1:
|
if extend.result() == 1:
|
||||||
extendDate = extend.extendDate.toString()
|
extendDate = extend.extendDate.toString("yyyy-MM-dd")
|
||||||
# # print columns of selected rows
|
# # print columns of selected rows
|
||||||
for item in self.UserMediaTable.selectedItems():
|
for item in self.UserMediaTable.selectedItems():
|
||||||
if item.column() == 1:
|
if item.column() == 1:
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ class ReportThread(QThread):
|
|||||||
path = db.db_path
|
path = db.db_path
|
||||||
day = QDate.currentDate().addDays(-self.days).toString("yyyy-MM-dd")
|
day = QDate.currentDate().addDays(-self.days).toString("yyyy-MM-dd")
|
||||||
query = f"""SELECT * FROM loans WHERE loan_date >= '{day}';"""
|
query = f"""SELECT * FROM loans WHERE loan_date >= '{day}';"""
|
||||||
print(query)
|
|
||||||
colnames = ["UserId", "Title", "Action", "Datum"]
|
colnames = ["UserId", "Title", "Action", "Datum"]
|
||||||
table = PrettyTable(colnames)
|
table = PrettyTable(colnames)
|
||||||
table.align[colnames[0]] = "l"
|
table.align[colnames[0]] = "l"
|
||||||
@@ -57,9 +56,12 @@ class ReportThread(QThread):
|
|||||||
)
|
)
|
||||||
# # print(table)
|
# # print(table)
|
||||||
# # wruitng the table to a file
|
# # wruitng the table to a file
|
||||||
if self.format == "csv":
|
if self.format == "tsv":
|
||||||
with open("report.csv", "w", encoding="utf-8") as f:
|
table = table.get_csv_string()
|
||||||
f.write(table.get_csv_string())
|
tsv_table = table.replace(",", "\t")
|
||||||
|
# write the file
|
||||||
|
with open("report.tsv", "w", encoding="utf-8") as f:
|
||||||
|
f.write(tsv_table)
|
||||||
else:
|
else:
|
||||||
with open("report.txt", "w", encoding="utf-8") as f:
|
with open("report.txt", "w", encoding="utf-8") as f:
|
||||||
f.write(str(table))
|
f.write(str(table))
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ def stringToDate(date: str) -> QtCore.QDate:
|
|||||||
if not date:
|
if not date:
|
||||||
return ""
|
return ""
|
||||||
if isinstance(date, QtCore.QDate):
|
if isinstance(date, QtCore.QDate):
|
||||||
return date.toString("yyyy-MM-dd")
|
return date
|
||||||
else:
|
else:
|
||||||
datedata = date.split("-")
|
datedata = date.split("-")
|
||||||
day = datedata[2]
|
day = datedata[2]
|
||||||
|
|||||||
Reference in New Issue
Block a user