rework logging, add more dataclasses, reworked config
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user