rework logging, add more dataclasses, reworked config

This commit is contained in:
2024-12-17 10:02:56 +01:00
parent ccb4df10bb
commit eda556b5ea
41 changed files with 1624 additions and 865 deletions

View File

@@ -8,6 +8,7 @@ from PyQt6.QtCore import QDate
from src import Icon
from src.backend import recreateElsaFile, generateSemesterByDate, Database
from src.logic import elsa_word_to_csv, MyLogger, Prof
from src.logic.log import log
from src.ui import popus_confirm
from src.ui.dialogs import ElsaAddEntry
from src.ui.widgets import FilePicker
@@ -69,6 +70,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.newProf_title.textChanged.connect(self.checkProfData)
self.loadFrame()
log.info("Elsa Dialog loaded")
# self.show()
def checkProfData(self):
@@ -118,32 +120,26 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
selected_row = self.table_elsa_list.currentRow()
signature = self.table_elsa_list.item(selected_row, 10).text()
mediatype = self.table_elsa_list.item(selected_row, 11).text()
pages = self.table_elsa_list.item(selected_row, 7).text().strip()
data.searchIdent.setText(signature)
if mediatype == "Zeitschriftenaufsätze":
data.btn_zs.click()
elif mediatype == "Herausgeberwerke":
data.btn_hg.click()
elif mediatype == "Monografien":
data.btn_mono.click()
data.search()
match mediatype:
case "Monografien":
data.btn_mono.click()
case "Herausgeberwerke":
data.btn_hg.click()
case "Zeitschriftenaufsätze":
data.btn_zs.click()
if ";" in pages:
data.search()
else:
data.search(pages=pages)
data.exec()
def add_new_elsa(self):
self.create_frame_elsa.setEnabled(True)
self.elsa_cancel_create.setEnabled(True)
self.dokument_list_elsa.setRowCount(0)
profs = self.db.getProfs()
profs = [f"{prof.lastname}, {prof.firstname}" for prof in profs]
elsa_profs = self.db.getElsaProfs()
profs.extend(elsa_profs)
profs = list(set(profs))
profs.sort()
for prof in profs:
self.elsa_prof.addItem(prof)
self.elsa_prof.setCurrentText("")
self.elsa_date.setText("")
self.elsa_semester.setText("")
self.elsa_save.setEnabled(True)
self.elsa_update.setEnabled(False)
self.elsa_prof.setFocus()
@@ -159,6 +155,8 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.quote_entry.setEnabled(False)
self.elsa_save.setEnabled(False)
self.elsa_update.setEnabled(False)
self.seperateEntries.setChecked(False)
def generateTodayDateElsa(self):
self.elsa_date.setText(QDate.currentDate().toString("dd.MM.yyyy"))
@@ -230,13 +228,12 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
files,
elsa_id,
)
log.info("Stored {} files in the database", len(files))
self.cancel_elsa_creation()
self.refresh_elsa_table()
self.elsa_prof.clear()
self.elsa_prof.addItems(self.getProfs())
self.elsa_prof.addItem("")
self.elsa_prof.setCurrentText("")
self.quote_entry.setEnabled(False)
log.info("Saved apparat to database, id {}", elsa_id)
def refresh_elsa_table(self):
self.elsa_table.setRowCount(0)
@@ -272,7 +269,12 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
elsa_apparats = self.db.getElsaApparats()
elsa_id = None
for apparat in elsa_apparats:
if apparat[1] == date and apparat[2] == semester and apparat[3] == prof:
print(apparat)
if (
apparat[1] == date
and apparat[2] == semester
and apparat[3] == self.db.getProfId({"profname": prof})
):
elsa_id = apparat[0]
# print(elsa_id)
break
@@ -281,7 +283,6 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.elsa_prof.setCurrentText(prof)
ic(elsa_id)
if elsa_id is None:
log.
return
documents = self.db.getElsaFiles(elsa_id)
for document in documents:
@@ -397,24 +398,31 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
filename=filename, filetype=filetype, open=False
)
# print(file)
data, doctype = elsa_word_to_csv(file)
data, _ = elsa_word_to_csv(file)
elsa_id = self.db.getElsaId(
self.db.getProfId(Prof(fullname=self.elsa_prof.currentText())),
self.elsa_semester.text(),
self.elsa_date.text(),
)
ic(
elsa_id,
self.elsa_prof.currentText(),
self.elsa_semester.text(),
self.elsa_date.text(),
)
for row in data:
if ";" in row["pages"]:
count = row["pages"].split(";")
for i in range(len(count)):
row["pages"] = count[i]
self.setElsaRow(
row,
)
if self.seperateEntries.isChecked():
if ";" in row["pages"]:
count = row["pages"].split(";")
for i in range(len(count)):
row["pages"] = count[i]
self.setElsaRow(
row,
)
self.db.addElsaMedia(row, elsa_id)
else:
self.setElsaRow(row)
self.db.addElsaMedia(row, elsa_id)
self.db.addElsaMedia(row, elsa_id)
self.quote_entry.setEnabled(True)
def openDocumentElsa(self):
@@ -471,6 +479,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.elsa_statistics.addTab(graph, "Graph")
def launch():
log.debug("Launching Elsa Dialog")
app = QtWidgets.QApplication([])
window = ElsaDialog()
window.show()