diff --git a/src/ui/newentry.py b/src/ui/newentry.py new file mode 100644 index 0000000..155f0b3 --- /dev/null +++ b/src/ui/newentry.py @@ -0,0 +1,64 @@ +from .sources.Ui_dialog_addNewTitleEntry import Ui_Dialog +from PyQt6 import QtWidgets, QtCore, QtGui +from src.logic import Database +from src.schemas import Book + + +class NewEntry(QtWidgets.QDialog, Ui_Dialog): + def __init__(self, title): + super(NewEntry, self).__init__() + self.setupUi(self) + self.setWindowTitle("Neues Exemplar hinzufügen") + self.tableWidget.horizontalHeader().setSectionResizeMode( + QtWidgets.QHeaderView.ResizeMode.Stretch + ) + self.db = Database() + self.titles = title + self.populateTable() + self.btn_addNewBook.clicked.connect(self.addEntry) + self.buttonBox.accepted.connect(self.insertEntry) + + def addEntry(self): + # clone last row and its data + row = self.tableWidget.rowCount() + self.tableWidget.insertRow(row) + for i in range(4): + self.tableWidget.setItem( + row, i, QtWidgets.QTableWidgetItem(self.tableWidget.item(row - 1, i)) + ) + + def populateTable(self): + for title in self.titles: + print(title) + entry = self.db.getMedia(title) + self.tableWidget.insertRow(0) + self.tableWidget.setItem(0, 0, QtWidgets.QTableWidgetItem(entry.isbn)) + self.tableWidget.setItem(0, 1, QtWidgets.QTableWidgetItem(entry.title)) + self.tableWidget.setItem(0, 2, QtWidgets.QTableWidgetItem(entry.signature)) + self.tableWidget.setItem(0, 3, QtWidgets.QTableWidgetItem(entry.ppn)) + + def insertEntry(self): + # get all rows, convert them to Book and insert into database + for row in range(self.tableWidget.rowCount()): + isbn = self.tableWidget.item(row, 0).text() + title = self.tableWidget.item(row, 1).text() + signature = self.tableWidget.item(row, 2).text() + ppn = self.tableWidget.item(row, 3).text() + book = Book( + isbn=eval(isbn), + title=title, + signature=signature, + ppn=eval(ppn), + ) + print(book) + if not self.db.checkMediaExists(book): + self.db.insertMedia(book) + + +def launch(): + import sys + + app = QtWidgets.QApplication(sys.argv) + window = NewEntry([1]) + window.show() + sys.exit(app.exec())