more AI optimizations, reworked logger

This commit is contained in:
2025-10-09 12:35:15 +02:00
parent 7e07bdea0c
commit 3cc6e793d2
22 changed files with 186 additions and 320 deletions

View File

@@ -3,20 +3,15 @@ import re
import smtplib
import sys
import loguru
from PySide6 import QtWidgets
from src import LOG_DIR, Icon
from src import Icon
from src import settings as config
from src.shared.logging import log
from .dialog_sources.mail_preview_ui import Ui_eMailPreview as MailPreviewDialog
from .mailTemplate import MailTemplateDialog
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
CSS_RESET = "<style>html,body{margin:0;padding:0}p{margin:0}</style>"
empty_signature = """"""

View File

@@ -1,20 +1,11 @@
import sys
import loguru
from PySide6 import QtCore, QtWidgets
from src import LOG_DIR
from src.backend.catalogue import Catalogue
from src.backend.database import Database
from src.ui.dialogs.mail import Mail_Dialog
from .dialog_sources.order_neweditions_ui import Ui_Dialog
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
class NewEditionDialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self, app_id, mail_data):
@@ -31,10 +22,7 @@ class NewEditionDialog(QtWidgets.QDialog, Ui_Dialog):
def populateTable(self):
for book in self.books:
signature = book.signature
# if signature is None or signature == "None" and book.ppn is not None:
# signature = self.catalogue.get_signature(f"kid:{book.ppn}")
# book.signature = signature
# signature not required here; using book.signature directly when needed
link_label = QtWidgets.QLabel()
link = (
book.link

View File

@@ -1,20 +1,12 @@
import sys
from typing import Any
import darkdetect
import loguru
from PySide6 import QtCore, QtWidgets
from PySide6.QtCore import QDate
from PySide6.QtGui import QColor, QPen
from src import LOG_DIR
from src.backend import Database
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
from src.shared.logging import log
color = "#ddfb00" if darkdetect.isDark() else "#2204ff"
pen = QPen(QColor(color))

View File

@@ -1,25 +1,19 @@
import os
import sys
import loguru
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtCore import QDate
from PySide6.QtGui import QRegularExpressionValidator
from src import LOG_DIR, Icon
from src import Icon
from src.backend import Database, recreateElsaFile
from src.logic import Prof, Semester, elsa_word_to_csv
from src.shared.logging import log
from src.ui.dialogs import ElsaAddEntry, popus_confirm
from src.ui.widgets.filepicker import FilePicker
from src.ui.widgets.graph import DataQtGraph
from .widget_sources.elsa_maindialog_ui import Ui_Dialog
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
@@ -399,6 +393,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
# get the file path of the selected file based on it's row
row = self.dokument_list_elsa.currentRow()
file = self.dokument_list_elsa.item(row, 3).text()
file_location = file
if file == "Database":
filename = self.dokument_list_elsa.item(row, 0).text()
filetype = self.dokument_list_elsa.item(row, 1).text()
@@ -415,16 +410,17 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
log.debug(
f"elsa_id: {elsa_id}, prof: {self.elsa_prof.currentText()}, semester: {self.elsa_semester.text()}, date: {self.elsa_date.text()}"
)
self.db.insertElsaFile(
[
{
"name": file.split("/")[-1],
"path": file,
"type": file.split(".")[-1],
}
],
elsa_id,
)
if file_location != "Database":
self.db.insertElsaFile(
[
{
"name": file.split("/")[-1],
"path": file,
"type": file.split(".")[-1],
}
],
elsa_id,
)
for row in data:
if self.seperateEntries.isChecked():
if ";" in row["pages"]:

View File

@@ -1,20 +1,12 @@
import random
import sys
from typing import Any, Union
import loguru
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtCharts import QCategoryAxis, QChart, QChartView, QLineSeries, QValueAxis
from PySide6.QtGui import QColor, QPainter, QPen
from src import LOG_DIR
from src.logic.semester import Semester
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
def mergedicts(d1: dict[str, Any], d2: dict[str, Any]):
res: dict[str, Any] = {}
@@ -182,16 +174,3 @@ class DataQtGraph(QtWidgets.QWidget):
# split the data back into x and y
data = {"x": list(data.keys()), "y": list(data.values())}
return data
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
graph_data = {"x": ["WiSe 25/26", "WiSe 24/25", "SoSe 25"], "y": [1, 2, 1]}
widget = DataGraph(
"ELSA Apparate pro Semester", graph_data, True, "Anzahl der Apparate"
)
widget.show()
sys.exit(app.exec())

View File

@@ -1,26 +1,19 @@
import sys
from typing import List
import loguru
from natsort import natsorted
from PySide6 import QtCore, QtGui, QtWidgets
from PySide6.QtCore import Signal
from src import LOG_DIR
from src.backend import Database
from src.logic import BookData, Prof, Semester, custom_sort, sort_semesters_list
from src.logic.dataclass import Apparat
from src.shared.logging import log
from src.ui.dialogs import ApparatExtendDialog, Mail_Dialog, ReminderDialog
from src.ui.widgets import DataQtGraph, StatusWidget
from src.ui.widgets.signature_update import UpdaterThread
from .widget_sources.search_statistic_page_ui import Ui_Dialog
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
class MyComboBox(QtWidgets.QComboBox):
def __init__(self, parent=None):
@@ -477,15 +470,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
data = []
for entry in result:
if "deletable" in params.keys():
sem = Semester().from_string(
entry[8] if entry[8] is not None else entry[5]
)
log.info(f"Semester: {sem}")
if sem.isPastSemester(Semester()):
data.append(entry)
else:
data.append(entry)
data.append(entry)
self.tableWidget.setRowCount(len(data))
if len(data) > 0:
self.btn_del_select_apparats.setEnabled(True)

View File

@@ -1,28 +1,13 @@
import sys
from datetime import datetime
import loguru
from PySide6 import QtCore, QtWidgets
from PySide6.QtMultimedia import QAudioOutput, QMediaPlayer
from src import LOG_DIR
from src.backend.catalogue import Catalogue
from src.backend.database import Database
from src.logic.SRU import SWB
from src.shared.logging import log
from .widget_sources.admin_update_signatures_ui import Ui_Dialog
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
log.add(
f"{LOG_DIR}/{datetime.now().strftime('%Y-%m-%d')}.log",
rotation="1 day",
retention="1 month",
)
class UpdaterThread(QtCore.QThread):
progress = QtCore.Signal(int)

View File

@@ -1,23 +1,17 @@
import sys
from pathlib import Path
from typing import Any
import loguru
from appdirs import AppDirs
from PySide6 import QtCore, QtWidgets
from src import LOG_DIR, settings
from src import settings
from src.backend import Database
from src.shared.logging import log
from .widget_sources.welcome_wizard_ui import Ui_Wizard
appdirs = AppDirs("SemesterApparatsManager", "SAM")
log = loguru.logger
log.remove()
log.add(sys.stdout, level="INFO")
log.add(f"{LOG_DIR}/application.log", rotation="1 MB", retention="10 days")
class WelcomeWizard(QtWidgets.QWizard, Ui_Wizard):
def __init__(self, parent=None):