add elsa bibliography
This commit is contained in:
@@ -13,6 +13,7 @@ from omegaconf import OmegaConf
|
||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
from PyQt6.QtCore import QDate, QThread
|
||||
from PyQt6.QtGui import QRegularExpressionValidator
|
||||
from src.transformers.transformers import DictToTable
|
||||
|
||||
from src import Icon
|
||||
from src.backend import (
|
||||
@@ -34,6 +35,7 @@ from src.logic import (
|
||||
csv_to_list,
|
||||
elsa_word_to_csv,
|
||||
word_docx_to_csv,
|
||||
ZoteroController,
|
||||
)
|
||||
from src.ui import (
|
||||
About,
|
||||
@@ -53,7 +55,7 @@ from src.ui import (
|
||||
reminder_ui,
|
||||
SearchStatisticPage,
|
||||
)
|
||||
from src.ui.extensions import ValidatorButton
|
||||
from src.ui.dialogs.elsa_add_entry import ElsaAddEntry
|
||||
config = OmegaConf.load("config.yaml")
|
||||
|
||||
|
||||
@@ -256,21 +258,24 @@ class Ui(Ui_Semesterapparat):
|
||||
|
||||
self.table_elsa_list.customContextMenuRequested.connect(self.elsa_context_menu)
|
||||
# elsa buttons
|
||||
Icon("semester", self.active_semester)
|
||||
Icon("today", self.elsa_date_today)
|
||||
self.create_frame_elsa.setEnabled(False)
|
||||
self.elsa_add_new.clicked.connect(self.add_new_elsa)
|
||||
self.elsa_cancel_create.clicked.connect(self.cancel_elsa_creation)
|
||||
self.elsa_save.clicked.connect(self.save_elsa)
|
||||
self.elsa_date_today.clicked.connect(self.generateTodayDateElsa)
|
||||
self.active_semester.clicked.connect(self.addSemester)
|
||||
Icon("semester", self.active_semester)
|
||||
Icon("today", self.elsa_date_today)
|
||||
self.elsa_update.clicked.connect(self.update_elsa)
|
||||
self.elsa_table.doubleClicked.connect(self.open_elsa)
|
||||
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)
|
||||
|
||||
# admin buttons
|
||||
self.user_frame_addUser.clicked.connect(self.add_user)
|
||||
self.pushButton.clicked.connect(self.delete_user)
|
||||
self.btn_delete_user.clicked.connect(self.delete_user)
|
||||
self.update_user.clicked.connect(self.update_user_data)
|
||||
self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
|
||||
|
||||
@@ -297,10 +302,62 @@ class Ui(Ui_Semesterapparat):
|
||||
tempdelete()
|
||||
sys.exit()
|
||||
|
||||
def elsa_table_entry(self):
|
||||
dtt = DictToTable()
|
||||
zot = ZoteroController()
|
||||
data = ElsaAddEntry()
|
||||
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)
|
||||
self.elsa_cancel_create.setEnabled(True)
|
||||
self.active_semester.setEnabled(True)
|
||||
self.dokument_list_elsa.setRowCount(0)
|
||||
profs = self.db.getProfs()
|
||||
for prof in profs:
|
||||
@@ -324,6 +381,16 @@ class Ui(Ui_Semesterapparat):
|
||||
def addSemester(self):
|
||||
self.elsa_semester.setText(self.generateSemester(today=True))
|
||||
|
||||
def update_elsa(self):
|
||||
prof = self.elsa_prof.currentText()
|
||||
date = self.elsa_date.text()
|
||||
semester = self.elsa_semester.text()
|
||||
elsa_id = self.db.getElsaId(prof, semester, date)
|
||||
if elsa_id is None:
|
||||
return
|
||||
self.db.updateElsaApparat(elsa_id, prof, semester, date)
|
||||
self.elsa_update.setEnabled(False)
|
||||
|
||||
def save_elsa(self):
|
||||
if (
|
||||
self.elsa_prof.currentText() == ""
|
||||
@@ -362,6 +429,7 @@ class Ui(Ui_Semesterapparat):
|
||||
prof = self.elsa_table.item(self.elsa_table.currentRow(), 0).text()
|
||||
date = self.elsa_table.item(self.elsa_table.currentRow(), 1).text()
|
||||
semester = self.elsa_table.item(self.elsa_table.currentRow(), 2).text()
|
||||
self.elsa_update.setEnabled(True)
|
||||
if self.elsa_prof.currentText() == prof:
|
||||
self.logger.log_info("Same prof, stopping")
|
||||
return
|
||||
@@ -401,11 +469,26 @@ class Ui(Ui_Semesterapparat):
|
||||
self.create_frame_elsa.setEnabled(True)
|
||||
else:
|
||||
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(scan[1]))
|
||||
self.table_elsa_list.setItem(0, 1, QtWidgets.QTableWidgetItem(scan[2]))
|
||||
self.table_elsa_list.setItem(0, 2, QtWidgets.QTableWidgetItem(scan[3]))
|
||||
self.table_elsa_list.setItem(0, 3, QtWidgets.QTableWidgetItem(scan[4]))
|
||||
self.table_elsa_list.setItem(0, 0, QtWidgets.QTableWidgetItem(chapter))
|
||||
self.table_elsa_list.setItem(
|
||||
0, 1, QtWidgets.QTableWidgetItem(text_author)
|
||||
)
|
||||
self.table_elsa_list.setItem(0, 2, QtWidgets.QTableWidgetItem(title))
|
||||
self.table_elsa_list.setItem(
|
||||
0, 3, QtWidgets.QTableWidgetItem(signature)
|
||||
)
|
||||
self.table_elsa_list.setItem(0, 4, QtWidgets.QTableWidgetItem(pages))
|
||||
self.table_elsa_list.setItem(
|
||||
0, 5, QtWidgets.QTableWidgetItem(book_author)
|
||||
)
|
||||
self.create_frame_elsa.setEnabled(True)
|
||||
def addDokumentElsa(self):
|
||||
print("Add document")
|
||||
@@ -439,7 +522,7 @@ class Ui(Ui_Semesterapparat):
|
||||
rows = self.elsa_table.rowCount()
|
||||
elsa_id = rows + 1
|
||||
self.db.insertElsaFile(datalist, elsa_id)
|
||||
self.elsa_save.click()
|
||||
# self.elsa_save.click()
|
||||
|
||||
def parseDokumentElsa(self):
|
||||
if self.dokument_list_elsa.rowCount() == 0:
|
||||
@@ -457,7 +540,7 @@ class Ui(Ui_Semesterapparat):
|
||||
filename=filename, filetype=filetype, open=False
|
||||
)
|
||||
print(file)
|
||||
data = elsa_word_to_csv(file)
|
||||
data, doctype = elsa_word_to_csv(file)
|
||||
for row in data:
|
||||
self.table_elsa_list.insertRow(0)
|
||||
ic(row)
|
||||
@@ -474,6 +557,7 @@ class Ui(Ui_Semesterapparat):
|
||||
"title": book_title,
|
||||
"signature": signature,
|
||||
"pages": pages,
|
||||
"type": doctype,
|
||||
}
|
||||
self.table_elsa_list.setItem(
|
||||
0, 0, QtWidgets.QTableWidgetItem(chapter_title)
|
||||
@@ -489,6 +573,7 @@ class Ui(Ui_Semesterapparat):
|
||||
self.table_elsa_list.setItem(
|
||||
0, 5, QtWidgets.QTableWidgetItem(book_author)
|
||||
)
|
||||
self.table_elsa_list.setItem(0, 6, QtWidgets.QTableWidgetItem(doctype))
|
||||
self.db.addElsaMedia(
|
||||
data,
|
||||
self.db.getElsaId(
|
||||
|
||||
Reference in New Issue
Block a user