update logging, update docuprint add new ui for generating documents

This commit is contained in:
2025-05-09 11:57:18 +02:00
parent f7ea6f5d34
commit 468e8674ab
16 changed files with 843 additions and 187 deletions

View File

@@ -1,5 +1,4 @@
import os
from natsort import natsorted
from .widget_sources.Ui_elsa_maindialog import Ui_Dialog
from PyQt6 import QtCore, QtWidgets, QtGui
from PyQt6.QtGui import QRegularExpressionValidator
@@ -9,9 +8,11 @@ from src.backend import Semester, Database
from src.logic import elsa_word_to_csv, Prof
from src.ui.dialogs import ElsaAddEntry, popus_confirm
from src.ui.widgets import FilePicker, DataGraph
from src.backend import recreateElsaFile
import sys
from loguru import logger as log
logger = log
logger.remove()
logger.add("logs/application.log", rotation="1 week", enqueue=True)
@@ -232,11 +233,11 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
lastname=prof.split(", ")[0],
mail=self.newProf_mail.text(),
telnr=self.newProf_telnr.text(),
title=self.newProf_title.text(),
_title=self.newProf_title.text(),
fullname=f"{prof.split(', ')[0]} {prof.split(', ')[1]}",
)
prof_id = self.db.getProfId(profdata)
logger.debug(profdata, prof_id)
logger.debug(f"ProfData: {profdata}, id:{prof_id}")
if prof_id is None:
self.db.createProf(profdata)
@@ -411,10 +412,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.elsa_date.text(),
)
logger.debug(
elsa_id,
self.elsa_prof.currentText(),
self.elsa_semester.text(),
self.elsa_date.text(),
f"elsa_id: {elsa_id}, prof: {self.elsa_prof.currentText()}, semester: {self.elsa_semester.text()}, date: {self.elsa_date.text()}"
)
for row in data:
if self.seperateEntries.isChecked():
@@ -450,7 +448,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
logger.debug("No tab to remove")
self.elsa_table.setRowCount(0)
elsa_apparats = self.db.getElsaApparats()
elsa_apparats = natsorted(elsa_apparats, key=lambda x: x[2], reverse=True)
# elsa_apparats = natsorted(elsa_apparats, key=lambda x: x[2], reverse=True)
# x = semester, y = number of apparats
for apparat in elsa_apparats:
@@ -463,13 +461,13 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
else:
index = self.graph_data["x"].index(semester)
self.graph_data["y"][index] += number
generateMissing = True if len(self.graph_data["x"]) > 1 else False
self.graph_data["x"].pop(0)
self.graph_data["y"].pop(0)
# generateMissing = True if len(self.graph_data["x"]) > 2 else False
graph = DataGraph(
"ELSA Apparate pro Semester",
self.graph_data,
generateMissing,
"Anzahl der Apparate",
title="ELSA Apparate pro Semester",
data=self.graph_data,
label="Anzahl der Apparate",
)
logger.debug(self.graph_data)
self.elsa_statistics_table.setRowCount(0)

View File

@@ -3,6 +3,18 @@ from typing import Union
import pyqtgraph as pg
from PyQt6 import QtWidgets
import sys
from loguru import logger as log
logger = log
logger.remove()
logger.add("logs/application.log", rotation="1 week", enqueue=True)
log.add(
"logs/graph.log",
)
# logger.add(sys.stderr, format="{time} {level} {message}", level="INFO")
logger.add(sys.stdout)
def mergedicts(d1, d2):
@@ -31,7 +43,11 @@ class DataGraph(QtWidgets.QWidget):
label=None,
):
super().__init__()
logger.debug(
"Initialized with options: {}, {}, {}, {}".format(
title, data, generateMissing, label
)
)
lst = []
if generateMissing:
x_data = data["x"]
@@ -142,20 +158,10 @@ if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
data_1 = {
"x": ["SoSe 10", "WiSe 10/11", "SoSe 11", "SoSe 14"],
"y": {
"Added": [1, 2, 3, 4],
"Deleted": [4, 3, 2, 1],
},
}
data_2 = {
"x": ["SoSe 10"],
"y": [2],
}
graph_data = {"x": ["SoSe 24"], "y": [1]}
graph_data = {"x": ["WiSe 25/26", "WiSe 24/25", "SoSe 25"], "y": [1, 2, 1]}
widget = DataGraph(
"ELSA Apparate pro Semester", data_2, True, "Anzahl der Apparate"
"ELSA Apparate pro Semester", graph_data, True, "Anzahl der Apparate"
)
widget.show()
sys.exit(app.exec())

View File

@@ -493,7 +493,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
checkbox.setChecked(False)
self.tableWidget.setCellWidget(0, 0, checkbox)
# if i[9] is 1, set the background of the row to red
if int(app[9]) == 1:
if int(app.deleted) == 1:
for j in range(5):
self.tableWidget.item(0, j).setBackground(
QtGui.QColor(235, 74, 71)