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