update logging, update docuprint add new ui for generating documents
This commit is contained in:
@@ -13,7 +13,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
from PyQt6.QtCore import QThread
|
||||
from PyQt6.QtGui import QRegularExpressionValidator
|
||||
|
||||
from src import Icon, settings
|
||||
from src import Icon
|
||||
from src.backend import Database, BookGrabber, AvailChecker, DocumentationThread
|
||||
from src.backend.semester import Semester
|
||||
from src.backend.create_file import recreateFile
|
||||
@@ -41,6 +41,8 @@ from src.ui.dialogs import (
|
||||
login_ui,
|
||||
parsed_titles_ui,
|
||||
reminder_ui,
|
||||
DocumentPrintDialog,
|
||||
launch,
|
||||
)
|
||||
from src.ui.widgets import (
|
||||
ElsaDialog,
|
||||
@@ -52,7 +54,7 @@ from src.ui.widgets import (
|
||||
EditUser,
|
||||
EditProf,
|
||||
)
|
||||
from src.utils import SemesterDocument
|
||||
|
||||
from datetime import datetime
|
||||
from loguru import logger as log
|
||||
|
||||
@@ -259,35 +261,10 @@ class Ui(Ui_Semesterapparat):
|
||||
self.valid_check_semester.clicked.connect(self.display_valid_semester) # type:ignore
|
||||
|
||||
def create_doc(self):
|
||||
result = self.confirm_popup(
|
||||
"Mit dem Klick auf Okay wird eine Übersicht aller aktiven Semesterapparate erstellt und an den FollowME Drucker gesendet. Es kann bis zu 10 Minuten dauern, bis das document im Drucker angezeigt wird",
|
||||
"document erstellen?",
|
||||
)
|
||||
logger.debug(f"Result: {result}")
|
||||
if result == 1:
|
||||
# logger.debug("Creating document")
|
||||
apparats = self.apparats
|
||||
apps = []
|
||||
for apparat in apparats:
|
||||
prof = self.db.getProf(apparat[2])
|
||||
data = (apparat[4], f"{prof.lastname} ({apparat[1]})")
|
||||
apps.append(data)
|
||||
# logger.debug(apps)
|
||||
logger.info("Using apparats: {}", apps)
|
||||
doc = SemesterDocument(
|
||||
semester=Semester().value,
|
||||
filename="Semesterapparate",
|
||||
apparats=apps,
|
||||
full=True,
|
||||
config=settings,
|
||||
)
|
||||
# doc.make_document()
|
||||
# doc.create_pdf()
|
||||
# doc.print_document()
|
||||
# doc.cleanup()
|
||||
# logger.info("Document created and sent to printer")
|
||||
|
||||
# kill thread after execution done
|
||||
logger.debug("Creating document")
|
||||
# open DocumentPrintDialog
|
||||
dialog = DocumentPrintDialog(self.MainWindow)
|
||||
dialog.show()
|
||||
|
||||
def checkValidInput(self):
|
||||
if valid_input == (1, 1, 1, 1, 1, 1):
|
||||
@@ -812,7 +789,8 @@ class Ui(Ui_Semesterapparat):
|
||||
self.tableWidget_apparat_media.currentRow(), 1
|
||||
).text()
|
||||
]
|
||||
items = len(links)
|
||||
# get the number of selected rows from the table
|
||||
items = self.tableWidget_apparat_media.rowCount()
|
||||
self.label_20.setText("Verfügbarkeit wird geprüft, bitte warten...")
|
||||
self.label_20.show()
|
||||
self.avail_status.setText(f"0/{items}")
|
||||
@@ -1109,7 +1087,7 @@ class Ui(Ui_Semesterapparat):
|
||||
self.update_app_media_list()
|
||||
# #logger.debug(len(signatures))
|
||||
|
||||
def extract_document_data(self) -> Union[None, list[str], SemapDocument]:
|
||||
def extract_document_data(self) -> Union[list[str], SemapDocument]:
|
||||
file_type = self.document_list.item(self.document_list.currentRow(), 1).text()
|
||||
file_location = self.document_list.item(
|
||||
self.document_list.currentRow(), 3
|
||||
@@ -1119,15 +1097,11 @@ class Ui(Ui_Semesterapparat):
|
||||
logger.info("File selected: {}, {}", file_name, file_location)
|
||||
if file_location == "Database":
|
||||
# create warning, then return
|
||||
self.confirm_popup(
|
||||
"Dateien aus der Datenbank werden nicht unterstützt!",
|
||||
title="Fehler",
|
||||
)
|
||||
return None
|
||||
self.db.recreateFile(file_name, self.active_apparat, filetype=file_type)
|
||||
if file_type == "pdf":
|
||||
# Todo: implement parser here
|
||||
self.confirm_popup("PDF Dateien werden nicht unterstützt!", title="Fehler")
|
||||
return
|
||||
return [""]
|
||||
if file_type == "csv":
|
||||
signatures = csv_to_list(file)
|
||||
# add the data to the database
|
||||
@@ -1151,8 +1125,14 @@ class Ui(Ui_Semesterapparat):
|
||||
self.prof_tel_nr.setText(str(data.phoneNumber))
|
||||
self.app_name.setText(data.title)
|
||||
self.app_fach.setCurrentText(data.subject)
|
||||
self.prof_title.setText(data.personTitle)
|
||||
self.drpdwn_prof_name.setCurrentText(data.personName)
|
||||
self.sem_year.setText("20" + data.semester.year)
|
||||
|
||||
def btn_check_file_threaded(self):
|
||||
for runner in self.bookGrabber:
|
||||
if not runner.isRunning():
|
||||
runner.deleteLater()
|
||||
# #logger.debug("Checking file")
|
||||
# get active app_id and prof_id
|
||||
self.tableWidget_apparate.setEnabled(False)
|
||||
@@ -1224,7 +1204,6 @@ class Ui(Ui_Semesterapparat):
|
||||
autoGrabber.start()
|
||||
self.bookGrabber.append(autoGrabber)
|
||||
# refresh book table
|
||||
logger.debug("Finished adding media")
|
||||
# end of thread
|
||||
# self.autoGrabber.exit()
|
||||
# self.__clear_fields()
|
||||
@@ -1434,7 +1413,7 @@ class Ui(Ui_Semesterapparat):
|
||||
reminder.exec()
|
||||
tableposition = self.tableWidget_apparate.currentRow()
|
||||
appnr = self.tableWidget_apparate.item(tableposition, 0).text()
|
||||
if reminder.result() == QtWidgets.QDialogger.DialogCode.Accepted:
|
||||
if reminder.result() == QtWidgets.QDialog.DialogCode.Accepted:
|
||||
data = reminder.return_message()
|
||||
# #logger.debug(data)
|
||||
self.db.addMessage(
|
||||
@@ -1473,7 +1452,7 @@ class Ui(Ui_Semesterapparat):
|
||||
settingsUI = Settings(self.active_user)
|
||||
settingsUI.exec()
|
||||
|
||||
if settingsUI.result() == QtWidgets.QDialogger.DialogCode.Accepted:
|
||||
if settingsUI.result() == QtWidgets.QDialog.DialogCode.Accepted:
|
||||
settingsUI.save()
|
||||
# logger.debug(settings.dict())
|
||||
|
||||
@@ -1563,7 +1542,7 @@ class Ui(Ui_Semesterapparat):
|
||||
self.confirm_popup("Keine weiteren Apparate vorhanden", title="Fehler")
|
||||
return (None, None)
|
||||
dialog = QtWidgets.QDialog()
|
||||
dialogger.setWindowTitle(title)
|
||||
dialog.setWindowTitle(title)
|
||||
# add a label to the dialog
|
||||
label = QtWidgets.QLabel()
|
||||
label.setText(message)
|
||||
@@ -1626,7 +1605,7 @@ class Ui(Ui_Semesterapparat):
|
||||
widget.setWindowTitle("Metadaten")
|
||||
bookedit.populate_fields(data)
|
||||
widget.exec()
|
||||
if widget.result() == QtWidgets.QDialogger.DialogCode.Accepted:
|
||||
if widget.result() == QtWidgets.QDialog.DialogCode.Accepted:
|
||||
data = bookedit.get_data()
|
||||
# #logger.debug(data)
|
||||
self.db.updateBookdata(bookdata=data, book_id=book_id)
|
||||
@@ -1685,7 +1664,7 @@ class Ui(Ui_Semesterapparat):
|
||||
framework = ApparatExtendDialog()
|
||||
framework.exec()
|
||||
# return data from dialog if ok is pressed
|
||||
if framework.result() == QtWidgets.QDialogger.DialogCode.Accepted:
|
||||
if framework.result() == QtWidgets.QDialog.DialogCode.Accepted:
|
||||
data = framework.get_data()
|
||||
# #logger.debug(data)
|
||||
# return data
|
||||
|
||||
Reference in New Issue
Block a user