update main ui, add new feature to generate ilias data

This commit is contained in:
WorldTeacher
2024-06-27 13:19:30 +02:00
parent 616843c906
commit 1b14d09bf0
3 changed files with 281 additions and 210 deletions

View File

@@ -271,7 +271,7 @@ class Ui(Ui_Semesterapparat):
self.btn_add_document_elsa.clicked.connect(self.addDokumentElsa)
self.check_file_elsa.clicked.connect(self.parseDokumentElsa)
self.btn_open_document_elsa.clicked.connect(self.openDocumentElsa)
self.add_entry.clicked.connect(self.elsa_table_entry)
self.quote_entry.clicked.connect(self.elsa_table_entry)
# admin buttons
self.user_frame_addUser.clicked.connect(self.add_user)
@@ -306,54 +306,21 @@ class Ui(Ui_Semesterapparat):
dtt = DictToTable()
zot = ZoteroController()
data = ElsaAddEntry()
selected_row = self.elsa_table.currentRow()
# print all rows in the table
for i in range(self.elsa_table.rowCount()):
print(self.elsa_table.item(i, 0).text())
mediatype = self.table_elsa_list.item(selected_row, 11).text()
signature = self.table_elsa_list.item(selected_row, 10).text()
data.searchIdent.setText(signature)
if mediatype == "Zeitschriftenaufsätze":
data.btn_zs.click()
elif mediatype == "Herausgeberwerke":
data.btn_hg.click()
elif mediatype == "Monographie":
data.btn_mono.click()
data.exec()
data = data.data
table = dtt.transform(data)
if data is None:
return
res_key = None
if table["type"] == "zs":
res_key = zot.createJournalArticle(
zot.createBook(table["signature"]), table
)
elif table["type"] == "book":
res_key = zot.createBookSection(zot.createBook(table["signature"]), table)
elif table["type"] == "hg":
res_key = zot.createHGSection(zot.createBook(table["signature"]), table)
if res_key:
citation = zot.get_citation(res_key)
zot.deleteItem(res_key)
print(citation)
print(table)
self.table_elsa_list.insertRow(0)
self.table_elsa_list.setItem(
0, 0, QtWidgets.QTableWidgetItem(table["work_author"])
)
self.table_elsa_list.setItem(
0, 1, QtWidgets.QTableWidgetItem(table["chapter_title"])
)
self.table_elsa_list.setItem(0, 2, QtWidgets.QTableWidgetItem(table["year"]))
self.table_elsa_list.setItem(0, 3, QtWidgets.QTableWidgetItem(table["issue"]))
self.table_elsa_list.setItem(0, 4, QtWidgets.QTableWidgetItem(table["edition"]))
self.table_elsa_list.setItem(
0, 5, QtWidgets.QTableWidgetItem(table["work_title"])
)
self.table_elsa_list.setItem(
0, 6, QtWidgets.QTableWidgetItem(table["chapter_title"])
)
self.table_elsa_list.setItem(0, 7, QtWidgets.QTableWidgetItem(table["pages"]))
self.table_elsa_list.setItem(
0, 8, QtWidgets.QTableWidgetItem(table["location"])
)
self.table_elsa_list.setItem(
0, 9, QtWidgets.QTableWidgetItem(table["publisher"])
)
self.table_elsa_list.setItem(
0, 10, QtWidgets.QTableWidgetItem(table["signature"])
)
self.table_elsa_list.setItem(0, 11, QtWidgets.QTableWidgetItem(table["type"]))
def add_new_elsa(self):
self.create_frame_elsa.setEnabled(True)
@@ -465,29 +432,48 @@ class Ui(Ui_Semesterapparat):
0, 3, QtWidgets.QTableWidgetItem("Database")
)
scans = self.db.getElsaMedia(elsa_id)
ic(scans)
if scans == []:
self.create_frame_elsa.setEnabled(True)
else:
pass
for scan in scans:
chapter = scan[1]
title = scan[2]
signature = scan[3]
pages = scan[4]
text_author = scan[5]
book_author = scan[6]
art_type = scan[7]
self.table_elsa_list.insertRow(0)
self.table_elsa_list.setItem(0, 0, QtWidgets.QTableWidgetItem(chapter))
self.table_elsa_list.setItem(
0, 1, QtWidgets.QTableWidgetItem(text_author)
0, 0, QtWidgets.QTableWidgetItem(scan["work_author"])
)
self.table_elsa_list.setItem(0, 2, QtWidgets.QTableWidgetItem(title))
self.table_elsa_list.setItem(
0, 3, QtWidgets.QTableWidgetItem(signature)
0, 1, QtWidgets.QTableWidgetItem(scan["section_author"])
)
self.table_elsa_list.setItem(0, 4, QtWidgets.QTableWidgetItem(pages))
self.table_elsa_list.setItem(
0, 5, QtWidgets.QTableWidgetItem(book_author)
0, 2, QtWidgets.QTableWidgetItem(scan["year"])
)
self.table_elsa_list.setItem(
0, 3, QtWidgets.QTableWidgetItem(scan["issue"])
)
self.table_elsa_list.setItem(
0, 4, QtWidgets.QTableWidgetItem(scan["edition"])
)
self.table_elsa_list.setItem(
0, 5, QtWidgets.QTableWidgetItem(scan["work_title"])
)
self.table_elsa_list.setItem(
0, 6, QtWidgets.QTableWidgetItem(scan["chapter_title"])
)
self.table_elsa_list.setItem(
0, 7, QtWidgets.QTableWidgetItem(scan["pages"])
)
self.table_elsa_list.setItem(
0, 8, QtWidgets.QTableWidgetItem(scan["location"])
)
self.table_elsa_list.setItem(
0, 9, QtWidgets.QTableWidgetItem(scan["publisher"])
)
self.table_elsa_list.setItem(
0, 10, QtWidgets.QTableWidgetItem(scan["signature"])
)
self.table_elsa_list.setItem(
0, 11, QtWidgets.QTableWidgetItem(scan["type"])
)
self.create_frame_elsa.setEnabled(True)
def addDokumentElsa(self):
@@ -518,11 +504,20 @@ class Ui(Ui_Semesterapparat):
)
print(elsa_id)
if elsa_id is None:
# get length of elsa table
rows = self.elsa_table.rowCount()
elsa_id = rows + 1
# create elsa
self.db.createElsaApparat(
self.elsa_date.text(),
self.elsa_prof.currentText(),
self.elsa_semester.text(),
)
elsa_id = self.db.getElsaId(
self.elsa_prof.currentText(),
self.elsa_semester.text(),
self.elsa_date.text(),
)
self.db.insertElsaFile(datalist, elsa_id)
# self.elsa_save.click()
self.elsa_save.setEnabled(False)
self.refresh_elsa_table()
def parseDokumentElsa(self):
if self.dokument_list_elsa.rowCount() == 0:
@@ -541,47 +536,52 @@ class Ui(Ui_Semesterapparat):
)
print(file)
data, doctype = elsa_word_to_csv(file)
elsa_id = self.db.getElsaId(
self.elsa_prof.currentText(),
self.elsa_semester.text(),
self.elsa_date.text(),
)
for row in data:
self.table_elsa_list.insertRow(0)
ic(row)
chapter_title = row[2]
author = row[0]
book_author = row[3]
book_title = row[4]
signature = row[7]
pages = row[6]
data = {
"chapter": chapter_title,
"book_author": book_author,
"text_author": author,
"title": book_title,
"signature": signature,
"pages": pages,
"type": doctype,
}
self.table_elsa_list.setItem(
0, 0, QtWidgets.QTableWidgetItem(chapter_title)
)
self.table_elsa_list.setItem(0, 1, QtWidgets.QTableWidgetItem(author))
self.table_elsa_list.setItem(
0, 2, QtWidgets.QTableWidgetItem(book_title)
0, 0, QtWidgets.QTableWidgetItem(row["work_author"])
)
self.table_elsa_list.setItem(
0, 3, QtWidgets.QTableWidgetItem(signature)
0, 1, QtWidgets.QTableWidgetItem(row["section_author"])
)
self.table_elsa_list.setItem(0, 4, QtWidgets.QTableWidgetItem(pages))
self.table_elsa_list.setItem(
0, 5, QtWidgets.QTableWidgetItem(book_author)
0, 2, QtWidgets.QTableWidgetItem(row["year"])
)
self.table_elsa_list.setItem(0, 6, QtWidgets.QTableWidgetItem(doctype))
self.db.addElsaMedia(
data,
self.db.getElsaId(
self.elsa_prof.currentText(),
self.elsa_semester.text(),
self.elsa_date.text(),
),
self.table_elsa_list.setItem(
0, 3, QtWidgets.QTableWidgetItem(row["issue"])
)
self.table_elsa_list.setItem(
0, 4, QtWidgets.QTableWidgetItem(row["edition"])
)
self.table_elsa_list.setItem(
0, 5, QtWidgets.QTableWidgetItem(row["chapter_title"])
)
self.table_elsa_list.setItem(
0, 6, QtWidgets.QTableWidgetItem(row["work_title"])
)
self.table_elsa_list.setItem(
0, 7, QtWidgets.QTableWidgetItem(row["pages"])
)
self.table_elsa_list.setItem(
0, 8, QtWidgets.QTableWidgetItem(row["location"])
)
self.table_elsa_list.setItem(
0, 9, QtWidgets.QTableWidgetItem(row["publisher"])
)
self.table_elsa_list.setItem(
0, 10, QtWidgets.QTableWidgetItem(row["signature"])
)
self.table_elsa_list.setItem(
0, 11, QtWidgets.QTableWidgetItem(row["type"])
)
self.db.addElsaMedia(row, elsa_id)
def openDocumentElsa(self):
# open the selected document