update files, bring to latest code
This commit is contained in:
109
src/ui/user.py
109
src/ui/user.py
@@ -2,6 +2,8 @@ from .sources.Ui_main_userData import Ui_MainWindow
|
||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
from src.logic import Database
|
||||
from src.schemas import User
|
||||
from .extendLoan import ExtendLoan
|
||||
from src.utils.stringtodate import stringToDate
|
||||
class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
def __init__(self, u_name, u_no, u_mail):
|
||||
super(UserUI, self).__init__()
|
||||
@@ -11,12 +13,27 @@ class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self.userno = u_no
|
||||
self.usermail = u_mail
|
||||
self.setFields()
|
||||
self.userMedia = []
|
||||
self.loadMedia()
|
||||
# Buttons
|
||||
self.btn_userChange_save.clicked.connect(self.saveChanges)
|
||||
self.btn_userchange_cancel.clicked.connect(self.discardChanges)
|
||||
self.btn_extendSelectedMedia.clicked.connect(self.extendLoan)
|
||||
|
||||
# radioButtons
|
||||
self.radio_allLoanedMedia.clicked.connect(self.loadMedia)
|
||||
self.radio_currentlyLoaned.clicked.connect(self.loadMedia)
|
||||
self.radio_overdueLoans.clicked.connect(self.loadMedia)
|
||||
|
||||
# frames
|
||||
self.frame.hide()
|
||||
|
||||
# table
|
||||
self.UserMediaTable.horizontalHeader().setSectionResizeMode(
|
||||
QtWidgets.QHeaderView.ResizeMode.Stretch
|
||||
)
|
||||
# if one or more rows is selected, enable btn
|
||||
self.UserMediaTable.itemSelectionChanged.connect(self.userTableAction)
|
||||
# LineEdits
|
||||
# self.frame.hide()
|
||||
|
||||
@@ -26,6 +43,32 @@ class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
|
||||
self.show()
|
||||
|
||||
def extendLoan(self):
|
||||
extend = ExtendLoan(self.username, self.userMedia)
|
||||
extend.exec()
|
||||
extendDate = extend.extendDate.toString()
|
||||
# print columns of selected rows
|
||||
for item in self.UserMediaTable.selectedItems():
|
||||
if item.column() == 1:
|
||||
signature = item.text()
|
||||
print(signature)
|
||||
self.db.extendLoanDuration(signature, extendDate)
|
||||
self.userMedia = []
|
||||
break
|
||||
self.UserMediaTable.setRowCount(0)
|
||||
self.loadMedia()
|
||||
|
||||
def userTableAction(self):
|
||||
if self.UserMediaTable.selectedItems():
|
||||
# if any selected item has a value in column 5, disable btn
|
||||
for item in self.UserMediaTable.selectedItems():
|
||||
if item.column() == 5 and item.text() != "":
|
||||
self.btn_extendSelectedMedia.setEnabled(False)
|
||||
return
|
||||
self.btn_extendSelectedMedia.setEnabled(True)
|
||||
else:
|
||||
self.btn_extendSelectedMedia.setEnabled(False)
|
||||
|
||||
def showFrame(self):
|
||||
self.frame.show()
|
||||
|
||||
@@ -39,4 +82,68 @@ class UserUI(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
|
||||
def discardChanges(self):
|
||||
self.setFields()
|
||||
self.frame.hide()
|
||||
self.frame.hide()
|
||||
|
||||
def loadMedia(self):
|
||||
mode = (
|
||||
"all"
|
||||
if self.radio_allLoanedMedia.isChecked()
|
||||
else "current"
|
||||
if self.radio_currentlyLoaned.isChecked()
|
||||
else "overdue"
|
||||
)
|
||||
print(mode)
|
||||
if self.userMedia == []:
|
||||
books = self.db.getAllMedia(self.userno)
|
||||
for book in books:
|
||||
self.userMedia.append(book)
|
||||
print(self.userMedia)
|
||||
self.UserMediaTable.setRowCount(0)
|
||||
|
||||
for book in self.userMedia:
|
||||
# fromdate = stringToDate(book.loan_from)
|
||||
todate = stringToDate(book.loan_to)
|
||||
if mode == "current":
|
||||
# book not returned
|
||||
if book.returned == 0:
|
||||
self.addBookToTable(book)
|
||||
elif mode == "overdue":
|
||||
# book not returned and todays date is greater than todate
|
||||
if (
|
||||
book.returned == 0
|
||||
and QtCore.QDate.fromString(todate) > QtCore.QDate.currentDate()
|
||||
):
|
||||
self.addBookToTable(book)
|
||||
else:
|
||||
self.addBookToTable(book)
|
||||
|
||||
def addBookToTable(self, book):
|
||||
self.UserMediaTable.insertRow(0)
|
||||
# item0 = isbn
|
||||
# item1 = signature
|
||||
# item2 = title
|
||||
# item3 = loan date
|
||||
# item4 = return date
|
||||
# item5 = returned_date
|
||||
self.UserMediaTable.setItem(
|
||||
0,
|
||||
0,
|
||||
QtWidgets.QTableWidgetItem(book.isbn if book.isbn != "None" else ""),
|
||||
)
|
||||
self.UserMediaTable.setItem(0, 1, QtWidgets.QTableWidgetItem(book.signature))
|
||||
self.UserMediaTable.setItem(0, 2, QtWidgets.QTableWidgetItem(book.title))
|
||||
self.UserMediaTable.setItem(0, 3, QtWidgets.QTableWidgetItem(book.loan_from))
|
||||
self.UserMediaTable.setItem(0, 4, QtWidgets.QTableWidgetItem(book.loan_to))
|
||||
self.UserMediaTable.setItem(
|
||||
0, 5, QtWidgets.QTableWidgetItem(book.returned_date)
|
||||
)
|
||||
|
||||
|
||||
def launch():
|
||||
import sys
|
||||
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
|
||||
window = UserUI("Test", "132", "sdf@f.de")
|
||||
window.show()
|
||||
sys.exit(app.exec())
|
||||
Reference in New Issue
Block a user