diff --git a/icons/dark/calendar_today.svg b/icons/calendar_today.svg
similarity index 100%
rename from icons/dark/calendar_today.svg
rename to icons/calendar_today.svg
diff --git a/icons/dark/check_fail.svg b/icons/check_fail.svg
similarity index 100%
rename from icons/dark/check_fail.svg
rename to icons/check_fail.svg
diff --git a/icons/dark/check_success.svg b/icons/check_success.svg
similarity index 100%
rename from icons/dark/check_success.svg
rename to icons/check_success.svg
diff --git a/icons/dark/close.svg b/icons/close.svg
similarity index 100%
rename from icons/dark/close.svg
rename to icons/close.svg
diff --git a/icons/dark/edit.svg b/icons/edit.svg
similarity index 100%
rename from icons/dark/edit.svg
rename to icons/edit.svg
diff --git a/icons/dark/edit_note.svg b/icons/edit_note.svg
similarity index 100%
rename from icons/dark/edit_note.svg
rename to icons/edit_note.svg
diff --git a/icons/dark/error.svg b/icons/error.svg
similarity index 100%
rename from icons/dark/error.svg
rename to icons/error.svg
diff --git a/icons/dark/help.svg b/icons/help.svg
similarity index 100%
rename from icons/dark/help.svg
rename to icons/help.svg
diff --git a/icons/icons.yaml b/icons/icons.yaml
index b39bf30..cdb3a5e 100644
--- a/icons/icons.yaml
+++ b/icons/icons.yaml
@@ -1,24 +1,27 @@
icon_path: icons/
-locked: locked.svg
-logo: logo.ico
-show_password: visibility_off.svg
-hide_password: visibility_on.svg
-settings: settings.svg
-today: calendar_today.svg
-save: save.svg
-edit_note: edit_note.svg
-warning: warning.svg
-error: error.svg
-mail: mail.svg
-semester: semester.svg
-template_fail: test_fail.svg
-offAction: shutdown.svg
-info: info.svg
-help: help.svg
-close: close.svg
-notification: notification.svg
-valid_true: check_success.svg
-valid_false: check_fail.svg
-edit: edit.svg
-important_warn : red_warn.svg
\ No newline at end of file
+dark_color: '#75FB4C'
+light_color: '#EA3323'
+icons:
+ locked: locked.svg
+ logo: logo.ico
+ show_password: visibility_off.svg
+ hide_password: visibility_on.svg
+ settings: settings.svg
+ today: calendar_today.svg
+ save: save.svg
+ edit_note: edit_note.svg
+ warning: warning.svg
+ error: error.svg
+ mail: mail.svg
+ semester: semester.svg
+ template_fail: test_fail.svg
+ offAction: shutdown.svg
+ info: info.svg
+ help: help.svg
+ close: close.svg
+ notification: notification.svg
+ valid_true: check_success.svg
+ valid_false: check_fail.svg
+ edit: edit.svg
+ important_warn : red_warn.svg
\ No newline at end of file
diff --git a/icons/dark/info.svg b/icons/info.svg
similarity index 100%
rename from icons/dark/info.svg
rename to icons/info.svg
diff --git a/icons/light/calendar_today.svg b/icons/light/calendar_today.svg
deleted file mode 100644
index d29e276..0000000
--- a/icons/light/calendar_today.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/check_fail.svg b/icons/light/check_fail.svg
deleted file mode 100644
index 3ffdb62..0000000
--- a/icons/light/check_fail.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/check_success.svg b/icons/light/check_success.svg
deleted file mode 100644
index 65006cd..0000000
--- a/icons/light/check_success.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/close.svg b/icons/light/close.svg
deleted file mode 100644
index d40303e..0000000
--- a/icons/light/close.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/edit.svg b/icons/light/edit.svg
deleted file mode 100644
index b5a4dea..0000000
--- a/icons/light/edit.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/edit_note.svg b/icons/light/edit_note.svg
deleted file mode 100644
index fcfb7ff..0000000
--- a/icons/light/edit_note.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/error.svg b/icons/light/error.svg
deleted file mode 100644
index 672c008..0000000
--- a/icons/light/error.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/help.svg b/icons/light/help.svg
deleted file mode 100644
index b7fc2fb..0000000
--- a/icons/light/help.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/info.svg b/icons/light/info.svg
deleted file mode 100644
index 35404f2..0000000
--- a/icons/light/info.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/locked.svg b/icons/light/locked.svg
deleted file mode 100644
index 014079e..0000000
--- a/icons/light/locked.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/logo.ico b/icons/light/logo.ico
deleted file mode 100644
index 4dfec92..0000000
Binary files a/icons/light/logo.ico and /dev/null differ
diff --git a/icons/light/mail.svg b/icons/light/mail.svg
deleted file mode 100644
index 2fc4f1e..0000000
--- a/icons/light/mail.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/notification.svg b/icons/light/notification.svg
deleted file mode 100644
index 4a3fcea..0000000
--- a/icons/light/notification.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/quote.svg b/icons/light/quote.svg
deleted file mode 100644
index 0019abd..0000000
--- a/icons/light/quote.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/red_warn.svg b/icons/light/red_warn.svg
deleted file mode 100644
index 0656ecd..0000000
--- a/icons/light/red_warn.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/save.svg b/icons/light/save.svg
deleted file mode 100644
index f765241..0000000
--- a/icons/light/save.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/icons/light/semester.svg b/icons/light/semester.svg
deleted file mode 100644
index bf3a8ad..0000000
--- a/icons/light/semester.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/settings.svg b/icons/light/settings.svg
deleted file mode 100644
index a44d103..0000000
--- a/icons/light/settings.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/shutdown.svg b/icons/light/shutdown.svg
deleted file mode 100644
index 8199544..0000000
--- a/icons/light/shutdown.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/test_fail.svg b/icons/light/test_fail.svg
deleted file mode 100644
index 52e4bcb..0000000
--- a/icons/light/test_fail.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/visibility_off.svg b/icons/light/visibility_off.svg
deleted file mode 100644
index a6d6785..0000000
--- a/icons/light/visibility_off.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/visibility_on.svg b/icons/light/visibility_on.svg
deleted file mode 100644
index 248fca5..0000000
--- a/icons/light/visibility_on.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/icons/light/warning.svg b/icons/light/warning.svg
deleted file mode 100644
index e69de29..0000000
diff --git a/icons/dark/locked.svg b/icons/locked.svg
similarity index 100%
rename from icons/dark/locked.svg
rename to icons/locked.svg
diff --git a/icons/dark/logo.ico b/icons/logo.ico
similarity index 100%
rename from icons/dark/logo.ico
rename to icons/logo.ico
diff --git a/icons/dark/mail.svg b/icons/mail.svg
similarity index 100%
rename from icons/dark/mail.svg
rename to icons/mail.svg
diff --git a/icons/dark/notification.svg b/icons/notification.svg
similarity index 100%
rename from icons/dark/notification.svg
rename to icons/notification.svg
diff --git a/icons/dark/quote.svg b/icons/quote.svg
similarity index 100%
rename from icons/dark/quote.svg
rename to icons/quote.svg
diff --git a/icons/dark/red_warn.svg b/icons/red_warn.svg
similarity index 100%
rename from icons/dark/red_warn.svg
rename to icons/red_warn.svg
diff --git a/icons/dark/save.svg b/icons/save.svg
similarity index 100%
rename from icons/dark/save.svg
rename to icons/save.svg
diff --git a/icons/dark/semester.svg b/icons/semester.svg
similarity index 100%
rename from icons/dark/semester.svg
rename to icons/semester.svg
diff --git a/icons/dark/settings.svg b/icons/settings.svg
similarity index 100%
rename from icons/dark/settings.svg
rename to icons/settings.svg
diff --git a/icons/dark/shutdown.svg b/icons/shutdown.svg
similarity index 100%
rename from icons/dark/shutdown.svg
rename to icons/shutdown.svg
diff --git a/icons/dark/test_fail.svg b/icons/test_fail.svg
similarity index 100%
rename from icons/dark/test_fail.svg
rename to icons/test_fail.svg
diff --git a/icons/dark/visibility_off.svg b/icons/visibility_off.svg
similarity index 100%
rename from icons/dark/visibility_off.svg
rename to icons/visibility_off.svg
diff --git a/icons/dark/visibility_on.svg b/icons/visibility_on.svg
similarity index 100%
rename from icons/dark/visibility_on.svg
rename to icons/visibility_on.svg
diff --git a/icons/dark/warning.svg b/icons/warning.svg
similarity index 100%
rename from icons/dark/warning.svg
rename to icons/warning.svg
diff --git a/src/backend/database.py b/src/backend/database.py
index 29c0853..65adab8 100644
--- a/src/backend/database.py
+++ b/src/backend/database.py
@@ -188,7 +188,16 @@ class Database:
"""
conn = self.connect()
cursor = conn.cursor()
- log_message = f"{self.get_caller_line()} Querying database with query {query}, args: {args}"
+ logs_query = query
+ logs_args = args
+ if "fileblob" in query:
+ #set fileblob arg in logger to "too long"
+ logs_query = query
+ fileblob_location = query.find("fileblob")
+ #remove fileblob from query
+ logs_query = query[:fileblob_location] + "fileblob = too long"
+
+ log_message = f"{self.get_caller_line()} Querying database with query {logs_query}, args: {logs_args}"
# if "INSERT" in query:
# log_message = f"Querying database with query {query}"
diff --git a/src/logic/c_sort.py b/src/logic/c_sort.py
index 3a27726..eeb9dae 100644
--- a/src/logic/c_sort.py
+++ b/src/logic/c_sort.py
@@ -56,4 +56,4 @@ if __name__ == "__main__":
("SoSe 15", 1, 0),
]
- print(custom_sort(unsorted))
+ # print(custom_sort(unsorted))
diff --git a/src/logic/threads.py b/src/logic/threads.py
index 5176d4c..61e9c2f 100644
--- a/src/logic/threads.py
+++ b/src/logic/threads.py
@@ -109,7 +109,7 @@ class Mailer(Ui_eMailPreview):
self.buttonBox.accepted.connect(self.createAndSendMail)
def load_mail_templates(self):
- print("loading mail templates")
+ # print("loading mail templates")
mail_templates = os.listdir("mail_vorlagen")
for template in mail_templates:
self.comboBox.addItem(template)
@@ -169,12 +169,12 @@ class Mailer(Ui_eMailPreview):
# server.starttls()
# server.auth(mechanism="PLAIN")
if config["mail"]["use_user_name"] == 1:
- print(config["mail"]["user_name"])
+ # print(config["mail"]["user_name"])
server.login(config["mail"]["user_name"], password)
else:
server.login(sender_email, password)
server.sendmail(sender_email, self.prof_mail, mail)
- print("Mail sent")
+ # print("Mail sent")
# end active process
server.quit()
diff --git a/src/logic/wordparser.py b/src/logic/wordparser.py
index 4300a46..01be787 100644
--- a/src/logic/wordparser.py
+++ b/src/logic/wordparser.py
@@ -46,7 +46,7 @@ def tuple_to_dict(tlist: tuple, type: str) -> dict:
ret = []
for line in tlist:
data = makeDict()
- if type == "Monographie":
+ if type == "Monografien":
data["type"] = type
data["work_author"] = line[0]
data["year"] = line[1]
@@ -84,10 +84,10 @@ def tuple_to_dict(tlist: tuple, type: str) -> dict:
def elsa_word_to_csv(path):
doc = Document(path)
- # print all lines in doc
+ # # print all lines in doc
doctype = [para.text for para in doc.paragraphs if para.text != ""][-1]
tuples = {
- "Monographie": ("", "", "", "", "", "", "", "", ""),
+ "Monografien": ("", "", "", "", "", "", "", "", ""),
"Herausgeberwerke": ("", "", "", "", "", "", "", "", "", "", ""),
"Zeitschriftenaufsätze": ("", "", "", "", "", "", "", "", "", ""),
}
@@ -113,10 +113,10 @@ def elsa_word_to_csv(path):
data = [
row for row in df.itertuples(index=False, name=None) if row != tuples[doctype]
]
- print(data)
+ # print(data)
return tuple_to_dict(data, doctype), doctype
if __name__ == "__main__":
- else_df = elsa_word_to_csv("c:/Users/aky547/Desktop/hrsgw_test.docx")
- print(else_df)
\ No newline at end of file
+ else_df = elsa_word_to_csv("C:/Users/aky547/Desktop/Antrag ELSA Schweitzer.docx")
+ # print(else_df)
\ No newline at end of file
diff --git a/src/logic/zotero.py b/src/logic/zotero.py
index 0835866..3ad9679 100644
--- a/src/logic/zotero.py
+++ b/src/logic/zotero.py
@@ -178,7 +178,7 @@ class ZoteroController:
def __get_data(self, isbn):
web = WebRequest()
web.get_ppn(isbn)
- data = web.get_data()
+ data = web.get_data_elsa()
bib = BibTextTransformer("ARRAY")
bib.get_data(data)
book = bib.return_data()
diff --git a/src/ui/__init__.py b/src/ui/__init__.py
index 518c912..b3aa330 100644
--- a/src/ui/__init__.py
+++ b/src/ui/__init__.py
@@ -1,5 +1,7 @@
import pathlib
+from .Ui_semesterapparat_ui import Ui_MainWindow as Ui_Semesterapparat
+
from .dialogs import (
ApparatExtendDialog,
Mail_Dialog,
@@ -13,16 +15,18 @@ from .dialogs import (
About,
ElsaAddEntry,
)
-from .Ui_semesterapparat_ui import Ui_MainWindow as Ui_Semesterapparat
from .widgets import (
- DataGraph,
FilePicker,
StatusWidget,
CalendarEntry,
MessageCalendar,
SearchStatisticPage, #
+ DataGraph,
+ ElsaDialog,
+ UserCreate,
+ EditUser,
+ EditProf,
)
-
path = pathlib.Path(__file__).parent.absolute()
# from .mainwindow import Ui_MainWindow as Ui_MainWindow
# from .sap import Ui_MainWindow as MainWindow_SAP
diff --git a/src/ui/semesterapparat_ui.ui b/src/ui/semesterapparat_ui.ui
index 010b468..5fce33f 100644
--- a/src/ui/semesterapparat_ui.ui
+++ b/src/ui/semesterapparat_ui.ui
@@ -74,7 +74,7 @@
Qt::NoFocus
- 0
+ 2
diff --git a/src/ui/widgets/elsa_main.py b/src/ui/widgets/elsa_main.py
index 0732a2e..c293485 100644
--- a/src/ui/widgets/elsa_main.py
+++ b/src/ui/widgets/elsa_main.py
@@ -59,7 +59,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
data.btn_zs.click()
elif mediatype == "Herausgeberwerke":
data.btn_hg.click()
- elif mediatype == "Monographie":
+ elif mediatype == "Monograpfien":
data.btn_mono.click()
data.exec()
@@ -70,7 +70,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
self.dokument_list_elsa.setRowCount(0)
profs = self.db.getProfs()
for prof in profs:
- self.elsa_prof.addItem(f"{prof[3]}, {prof[2]}")
+ self.elsa_prof.addItem(f"{prof.lastname}, {prof.firstname}")
self.elsa_prof.setCurrentText("")
self.elsa_date.setText("")
self.elsa_semester.setText("")
@@ -155,6 +155,7 @@ class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
def open_elsa(self):
prof = self.elsa_table.item(self.elsa_table.currentRow(), 0).text()
+ print(prof)
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)
diff --git a/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
index 4979139..f4cf38e 100644
--- a/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
+++ b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
@@ -84,6 +84,7 @@ class Ui_Dialog(object):
self.label_2.setObjectName("label_2")
self.gridLayout_2.addWidget(self.label_2, 1, 0, 1, 1)
self.elsa_prof = QtWidgets.QComboBox(parent=self.create_frame_elsa)
+ self.elsa_prof.setEditable(True)
self.elsa_prof.setObjectName("elsa_prof")
self.gridLayout_2.addWidget(self.elsa_prof, 0, 1, 1, 1)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
@@ -101,7 +102,7 @@ class Ui_Dialog(object):
self.dokument_list_elsa = QtWidgets.QTableWidget(parent=self.create_frame_elsa)
self.dokument_list_elsa.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
self.dokument_list_elsa.setObjectName("dokument_list_elsa")
- self.dokument_list_elsa.setColumnCount(3)
+ self.dokument_list_elsa.setColumnCount(4)
self.dokument_list_elsa.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.dokument_list_elsa.setHorizontalHeaderItem(0, item)
@@ -109,6 +110,8 @@ class Ui_Dialog(object):
self.dokument_list_elsa.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.dokument_list_elsa.setHorizontalHeaderItem(2, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.dokument_list_elsa.setHorizontalHeaderItem(3, item)
self.dokument_list_elsa.horizontalHeader().setDefaultSectionSize(116)
self.dokument_list_elsa.horizontalHeader().setMinimumSectionSize(43)
self.dokument_list_elsa.verticalHeader().setMinimumSectionSize(25)
@@ -223,6 +226,8 @@ class Ui_Dialog(object):
item.setText(_translate("Dialog", "Dateityp"))
item = self.dokument_list_elsa.horizontalHeaderItem(2)
item.setText(_translate("Dialog", "Neu?"))
+ item = self.dokument_list_elsa.horizontalHeaderItem(3)
+ item.setText(_translate("Dialog", "File"))
self.btn_add_document_elsa.setText(_translate("Dialog", "Dokument hinzufügen"))
self.btn_open_document_elsa.setText(_translate("Dialog", "Dokument öffnen"))
self.check_file_elsa.setText(_translate("Dialog", "Medien aus Dokument\n"
diff --git a/src/ui/widgets/widget_sources/elsa_maindialog.ui b/src/ui/widgets/widget_sources/elsa_maindialog.ui
index 1a41bf6..ce355a1 100644
--- a/src/ui/widgets/widget_sources/elsa_maindialog.ui
+++ b/src/ui/widgets/widget_sources/elsa_maindialog.ui
@@ -174,7 +174,11 @@
-
-
+
+
+ true
+
+
-
@@ -238,6 +242,11 @@
Neu?
+
+
+ File
+
+
-
diff --git a/src/utils/icon.py b/src/utils/icon.py
index c33cf51..6f13e4a 100644
--- a/src/utils/icon.py
+++ b/src/utils/icon.py
@@ -1,31 +1,89 @@
import darkdetect
from omegaconf import OmegaConf
from PyQt6 import QtGui
-
+import re
config = OmegaConf.load("config.yaml")
config = OmegaConf.load(f"{config.icon_path}/icons.yaml")
path = config.icon_path
-dark = darkdetect.isDark()
-mode = "dark" if dark else "light"
-path = f"{path}/{mode}"
-class Icon:
- def __init__(self, icon_type, widget=None):
+
+class Icon:
+ def __init__(self, icon_type, widget=None,recolor=False):
+ dark = darkdetect.isDark()
+ if dark:
+ self.color = config.dark_color
+ else:
+ self.color = config.light_color
self.icon = QtGui.QIcon()
- self.add_icon(icon_type)
+ self.icon_path = path + config["icons"][icon_type]
+ self.add_icon(self.icon_path,recolor)
if widget is not None:
widget.setIcon(self.icon)
- def add_icon(self, icon_type):
- icon = config[icon_type]
- icon = f"{path}/{icon}"
+ def add_icon(self, icon_path,recolor=False):
+ icon = self.changeColor(icon_path,recolor)
+
+ # use icon bytes to create a pixmap
+ pixmap = QtGui.QPixmap()
+ pixmap.loadFromData(icon)
+
self.icon.addPixmap(
- QtGui.QPixmap(icon),
+ pixmap,
QtGui.QIcon.Mode.Normal,
QtGui.QIcon.State.Off,
)
+ def overwriteColor(self, color):
+ # take the icon, read it as bytes and change the color in fill
+ icon = self.changeColor(self.icon_path)
+ cicon = str(icon)
+ fill = re.search(r"fill=\"(.*?)\"", cicon).group(1)
+ stroke = re.search(r"stroke=\"(.*?)\"", cicon)
+ if stroke:
+ stroke = stroke.group(1)
+
+ if fill and stroke:
+ # replace stroke
+ newicon = icon.replace(stroke.encode(), color.encode())
+ else:
+ newicon = icon.replace(fill.encode(), color.encode())
+
+ pixmap = QtGui.QPixmap()
+ pixmap.loadFromData(newicon)
+
+ self.icon.addPixmap(
+ pixmap,
+ QtGui.QIcon.Mode.Normal,
+ QtGui.QIcon.State.Off,
+ )
+ return self.icon
+
+
+ def changeColor(self,icon_path,recolor) -> bytes:
+ """change the color of the svg icon to the color set in the config file
+
+ Args:
+ icon_path (str): the path to the icon, usually icons/[name].svg
+
+ Returns:
+ icon: a byte representation of the icon with the new color
+ """
+ color = self.color
+ with open(icon_path, "rb") as file:
+ icon = file.read()
+ if recolor:
+ cicon = str(icon)
+
+ try:
+ fill = re.search(r"fill=\"(.*?)\"", cicon).group(1)
+ except AttributeError:
+ fill = None
+ if fill:
+ icon = icon.replace(fill.encode(), color.encode())
+ return icon
+
+
if __name__ == "__main__":
print("This is a module and can not be executed directly.")