From fba35cdf2575af5e34398b3c0c38bede4e46063c Mon Sep 17 00:00:00 2001
From: WorldTeacher <41587052+WorldTeacher@users.noreply.github.com>
Date: Thu, 8 Aug 2024 14:40:38 +0200
Subject: [PATCH] various updates and changes, move admin widgets into
different seperate dialogs
---
src/logic/csvparser.py | 3 +-
src/logic/dataclass.py | 4 +-
src/logic/thread_bookgrabber.py | 25 +-
src/logic/threads_autoadder.py | 8 +-
src/logic/threads_availchecker.py | 4 +-
src/logic/zotero.py | 22 +-
src/transformers/transformers.py | 22 +-
src/ui/Ui_semesterapparat_ui.py | 683 +--------
src/ui/dialogs/dialog_sources/Ui_login.py | 3 +
.../dialogs/dialog_sources/Ui_mail_preview.py | 31 +-
.../dialogs/dialog_sources/Ui_medianadder.py | 3 +
src/ui/dialogs/mailTemplate.py | 6 +-
src/ui/semesterapparat_ui.ui | 1264 +----------------
src/ui/userInterface.py | 794 +++--------
src/ui/widgets/MessageCalendar.py | 2 +-
src/ui/widgets/__init__.py | 4 +
src/ui/widgets/admin_create_user.py | 38 +
src/ui/widgets/admin_edit_prof.py | 118 ++
src/ui/widgets/admin_edit_user.py | 53 +
src/ui/widgets/calendar_entry.py | 4 +-
src/ui/widgets/elsa_main.py | 357 +++++
src/ui/widgets/filepicker.py | 2 +-
src/ui/widgets/searchPage.py | 10 +-
.../widget_sources/Ui_admin_create_user.py | 55 +
.../widget_sources/Ui_admin_create_user.ui.py | 8 +
.../widget_sources/Ui_admin_edit_prof.py | 139 ++
.../widget_sources/Ui_admin_edit_user.py | 60 +
.../widget_sources/Ui_elsa_maindialog.py | 259 ++++
.../widget_sources/admin_create_user.ui | 74 +
.../widgets/widget_sources/admin_edit_prof.ui | 211 +++
.../widgets/widget_sources/admin_edit_user.ui | 76 +
.../widgets/widget_sources/elsa_maindialog.ui | 427 ++++++
32 files changed, 2175 insertions(+), 2594 deletions(-)
create mode 100644 src/ui/widgets/admin_create_user.py
create mode 100644 src/ui/widgets/admin_edit_prof.py
create mode 100644 src/ui/widgets/admin_edit_user.py
create mode 100644 src/ui/widgets/elsa_main.py
create mode 100644 src/ui/widgets/widget_sources/Ui_admin_create_user.py
create mode 100644 src/ui/widgets/widget_sources/Ui_admin_create_user.ui.py
create mode 100644 src/ui/widgets/widget_sources/Ui_admin_edit_prof.py
create mode 100644 src/ui/widgets/widget_sources/Ui_admin_edit_user.py
create mode 100644 src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
create mode 100644 src/ui/widgets/widget_sources/admin_create_user.ui
create mode 100644 src/ui/widgets/widget_sources/admin_edit_prof.ui
create mode 100644 src/ui/widgets/widget_sources/admin_edit_user.ui
create mode 100644 src/ui/widgets/widget_sources/elsa_maindialog.ui
diff --git a/src/logic/csvparser.py b/src/logic/csvparser.py
index 3734bb3..c9be28f 100644
--- a/src/logic/csvparser.py
+++ b/src/logic/csvparser.py
@@ -12,7 +12,6 @@ def csv_to_list(path: str) -> list[str]:
reader = csv.reader(csvfile, delimiter=";", quotechar="|")
ret = []
for row in reader:
- print(row)
ret.append(row[0].replace('"', ""))
return ret
@@ -20,4 +19,4 @@ def csv_to_list(path: str) -> list[str]:
if __name__ == "__main__":
text = csv_to_list("C:/Users/aky547/Desktop/semap/71.csv")
# remove linebreaks
- print(text)
+ # print(text)
diff --git a/src/logic/dataclass.py b/src/logic/dataclass.py
index f219706..65801e7 100644
--- a/src/logic/dataclass.py
+++ b/src/logic/dataclass.py
@@ -21,7 +21,7 @@ class ApparatData:
def get_prof_details(self) -> dict:
return {
- "prof_title": self.prof_title,
+ "title": self.prof_title,
"profname": self.profname,
"prof_mail": self.prof_mail,
"prof_tel": self.prof_tel,
@@ -62,7 +62,7 @@ class BookData:
else:
pattern = r"(\w+)='([^']*)'"
data_dict = dict(re.findall(pattern, data))
- print(data_dict)
+ # print(data_dict)
for key, value in data_dict.items():
setattr(self, key, value)
return self
diff --git a/src/logic/thread_bookgrabber.py b/src/logic/thread_bookgrabber.py
index 2c13874..451b853 100644
--- a/src/logic/thread_bookgrabber.py
+++ b/src/logic/thread_bookgrabber.py
@@ -35,26 +35,31 @@ class BookGrabber(QThread):
self.logger.log_info(f"Working on {len(self.data)} entries")
self.tstate = (self.app_id, self.prof_id, self.mode, self.data)
self.logger.log_debug("State: " + str(self.tstate))
- print(self.tstate)
+ # print(self.tstate)
def run(self):
self.db = Database()
item = 0
iterdata = self.data
- print(iterdata)
+ # print(iterdata)
+ if self.prof_id is None:
+ self.prof_id = self.db.getProfNameByApparat(self.app_id)
for entry in iterdata:
- print(entry)
+ # print(entry)
signature = str(entry)
self.logger.log_info("Processing entry: " + signature)
webdata = WebRequest(self.appnr).get_ppn(entry).get_data()
if webdata == "error":
continue
+
bd = BibTextTransformer(self.mode).get_data(webdata).return_data()
bd.signature = entry
transformer = (
BibTextTransformer("RDS").get_data(webdata).return_data("rds_data")
)
+ if bd is None:
+ continue
# confirm lock is acquired
self.db.addBookToDatabase(bd, self.app_id, self.prof_id)
# get latest book id
@@ -62,13 +67,13 @@ class BookGrabber(QThread):
self.logger.log_info("Added book to database")
state = 0
for result in transformer.RDS_DATA:
- print(result.RDS_LOCATION)
+ # print(result.RDS_LOCATION)
if str(self.app_id) in result.RDS_LOCATION:
state = 1
break
self.logger.log_info(f"State of {signature}: {state}")
- print("updating availability of " + str(self.book_id) + " to " + str(state))
+ # print("updating availability of " + str(self.book_id) + " to " + str(state))
try:
self.db.setAvailability(self.book_id, state)
except sqlite3.OperationalError as e:
@@ -100,7 +105,7 @@ class BookGrabber(QThread):
# self.mode = mode
# self.book_id = None
# self.state = (self.app_id, self.prof_id, self.mode, self.data)
-# print(self.state)
+# # print(self.state)
# self.logger.log_info("state: " + str(self.state))
# # time.sleep(2)
@@ -116,9 +121,9 @@ class BookGrabber(QThread):
# self.db = Database()
# item = 0
# iterdata = self.data
-# print(iterdata)
+# # print(iterdata)
# for entry in iterdata:
-# print(entry)
+# # print(entry)
# signature = str(entry)
# self.logger.log_info("Processing entry: " + signature)
@@ -135,7 +140,7 @@ class BookGrabber(QThread):
# self.book_id = self.db.getLastBookId()
# self.logger.log_info("Added book to database")
# state = 0
-# print(len(rds.items))
+# # print(len(rds.items))
# for rds_item in rds.items:
# sign = rds_item.superlocation
# loc = rds_item.location
@@ -146,7 +151,7 @@ class BookGrabber(QThread):
# break
# self.logger.log_info(f"State of {signature}: {state}")
-# print(
+# # print(
# "updating availability of "
# + str(self.book_id)
# + " to "
diff --git a/src/logic/threads_autoadder.py b/src/logic/threads_autoadder.py
index 3354013..4ba2fb1 100644
--- a/src/logic/threads_autoadder.py
+++ b/src/logic/threads_autoadder.py
@@ -23,8 +23,8 @@ class AutoAdder(QThread):
self.app_id = app_id
self.prof_id = prof_id
- print("Launched AutoAdder")
- print(self.data, self.app_id, self.prof_id)
+ # print("Launched AutoAdder")
+ # print(self.data, self.app_id, self.prof_id)
def run(self):
self.db = Database()
@@ -41,11 +41,11 @@ class AutoAdder(QThread):
# qsleep
item += 1
self.progress.emit(item)
- print(item, len(self.data))
+ # print(item, len(self.data))
time.sleep(1)
except Exception as e:
- print(e)
+ # print(e)
self.logger.log_exception(
f"The query failed with message {e} for signature {entry}"
)
diff --git a/src/logic/threads_availchecker.py b/src/logic/threads_availchecker.py
index 431e3dd..def135d 100644
--- a/src/logic/threads_availchecker.py
+++ b/src/logic/threads_availchecker.py
@@ -52,7 +52,7 @@ class AvailChecker(QThread):
for item in rds.items:
sign = item.superlocation
loc = item.location
- # print(item.location)
+ # # print(item.location)
if self.appnumber in sign or self.appnumber in loc:
state = 1
break
@@ -61,7 +61,7 @@ class AvailChecker(QThread):
book_id = book["id"]
break
self.logger.log_info(f"State of {link}: " + str(state))
- print("Updating availability of " + str(book_id) + " to " + str(state))
+ # print("Updating availability of " + str(book_id) + " to " + str(state))
self.db.setAvailability(book_id, state)
count += 1
self.updateProgress.emit(count, len(self.links))
diff --git a/src/logic/zotero.py b/src/logic/zotero.py
index c97477c..0835866 100644
--- a/src/logic/zotero.py
+++ b/src/logic/zotero.py
@@ -184,7 +184,7 @@ class ZoteroController:
book = bib.return_data()
return book
- # print(zot.item_template("bookSection"))
+ # # print(zot.item_template("bookSection"))
def createBook(self, isbn):
book = self.__get_data(isbn)
@@ -207,7 +207,7 @@ class ZoteroController:
def createItem(self, item):
resp = self.zot.create_items([item])
if "successful" in resp.keys():
- print(resp["successful"]["0"]["key"])
+ # print(resp["successful"]["0"]["key"])
return resp["successful"]["0"]["key"]
else:
return None
@@ -217,7 +217,7 @@ class ZoteroController:
for item in items:
if item["key"] == key:
self.zot.delete_item(item)
- print(item)
+ # print(item)
break
def createHGSection(self, book: Book, data: dict):
@@ -238,7 +238,7 @@ class ZoteroController:
]
chapter.creators += authors
- print(chapter.to_dict())
+ # print(chapter.to_dict())
return self.createItem(chapter.to_dict())
pass
@@ -254,7 +254,7 @@ class ZoteroController:
# chapter.creators
def createJournalArticle(self, journal, article):
- print(type(article))
+ # print(type(article))
journalarticle = JournalArticle()
journalarticle.assign(journal)
journalarticle.itemType = "journalArticle"
@@ -270,7 +270,7 @@ class ZoteroController:
journalarticle.issue = article["issue"]
journalarticle.url = article["isbn"]
- print(journalarticle.to_dict())
+ # print(journalarticle.to_dict())
return self.createItem(journalarticle.to_dict())
@@ -316,16 +316,16 @@ if __name__ == "__main__":
# if isinstance(publishers, str):
# publishers = [publishers]
# for publisher in publishers:
- # print(publisher)
+ # # print(publisher)
# creator = Creator().from_string(publisher)
# creator.creatorType = "editor"
# authors.append(creator.__dict__)
# chapter.creators = authors
# chapter.publisher = book.publisher
- # print(chapter.to_dict())
+ # # print(chapter.to_dict())
# createBookSection(chapter.to_dict())
# get_citation("9ZXH8DDE")
- # # print()
- # print(get_books())
- # print(zot.item_creator_types("bookSection"))
+ # # # print()
+ # # print(get_books())
+ # # print(zot.item_creator_types("bookSection"))
diff --git a/src/transformers/transformers.py b/src/transformers/transformers.py
index 7c481e5..1b4da57 100644
--- a/src/transformers/transformers.py
+++ b/src/transformers/transformers.py
@@ -133,10 +133,8 @@ class ARRAYData:
return data
except Exception:
- # print(f"ARRAYData.transform failed, {source}, {search}")
- logger.log_exception(
- f"ARRAYData.transform failed, no string {search}, {source}, {search}"
- )
+ # # print(f"ARRAYData.transform failed, {source}, {search}")
+ logger.log_exception(f"ARRAYData.transform failed, no string {search}")
return ""
def _get_list_entry(source: str, search: str, entry: str) -> str:
@@ -218,9 +216,20 @@ class ARRAYData:
else:
pass
return ";".join(authors)
+
+ def _get_title(data):
+ titledata = None
+ title = ""
+ if "[ti_long]" in data:
+ titledata = data.split("[ti_long]")[1].split(")\n")[0].strip()
+ title = titledata.split("=>")[1].strip().split("/")[0].strip()
+ if "[ti_long_f]" in data:
+ titledata = data.split("[ti_long_f]")[1].split(")\n")[0].strip()
+ title = titledata.split("=>")[1].strip().split("/")[0].strip()
+ return title
return BookData(
ppn=_get_line(data, "[kid]"),
- title=_get_line(data, "[ti_long]").split("/")[0].strip(),
+ title=_get_title(data).strip(),
author=_get_author(data),
edition=_get_list_entry(data, "[ausgabe]", "[0]").replace(",", ""),
link=f"https://rds.ibs-bw.de/phfreiburg/link?kid={_get_line(data,'[kid]')}",
@@ -403,7 +412,6 @@ class DictToTable:
setattr(self, key, None)
def transform(self, data: dict):
- print(data)
mode = data["mode"]
self.reset()
if mode == "book":
@@ -465,4 +473,4 @@ if __name__ == "__main__":
ret = RDSData().transform(data)
data = ret.return_data("rds_availability")
- print(data)
+ # print(data)
diff --git a/src/ui/Ui_semesterapparat_ui.py b/src/ui/Ui_semesterapparat_ui.py
index 1912057..8add521 100644
--- a/src/ui/Ui_semesterapparat_ui.py
+++ b/src/ui/Ui_semesterapparat_ui.py
@@ -230,7 +230,7 @@ class Ui_MainWindow(object):
self.dokument_list.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
self.dokument_list.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
self.dokument_list.setDragEnabled(True)
- self.dokument_list.setDragDropMode(QtWidgets.QAbstractItemView.DragDropMode.DropOnly)
+ self.dokument_list.setDragDropMode(QtWidgets.QAbstractItemView.DragDropMode.DragOnly)
self.dokument_list.setDefaultDropAction(QtCore.Qt.DropAction.LinkAction)
self.dokument_list.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection)
self.dokument_list.setObjectName("dokument_list")
@@ -590,535 +590,28 @@ class Ui_MainWindow(object):
self.search_statistics = QtWidgets.QWidget()
self.search_statistics.setObjectName("search_statistics")
self.tabWidget.addTab(self.search_statistics, "")
- self.elsa = QtWidgets.QWidget()
- self.elsa.setObjectName("elsa")
- self.create_frame_elsa = QtWidgets.QFrame(parent=self.elsa)
- self.create_frame_elsa.setEnabled(True)
- self.create_frame_elsa.setGeometry(QtCore.QRect(20, 200, 1231, 201))
- self.create_frame_elsa.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
- self.create_frame_elsa.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
- self.create_frame_elsa.setObjectName("create_frame_elsa")
- self.elsa_save = QtWidgets.QPushButton(parent=self.create_frame_elsa)
- self.elsa_save.setGeometry(QtCore.QRect(10, 160, 75, 24))
- self.elsa_save.setObjectName("elsa_save")
- self.dokument_list_elsa = QtWidgets.QTableWidget(parent=self.create_frame_elsa)
- self.dokument_list_elsa.setGeometry(QtCore.QRect(720, 10, 321, 181))
- font = QtGui.QFont()
- font.setPointSize(10)
- font.setBold(False)
- font.setKerning(False)
- self.dokument_list_elsa.setFont(font)
- self.dokument_list_elsa.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
- self.dokument_list_elsa.setAcceptDrops(True)
- self.dokument_list_elsa.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
- self.dokument_list_elsa.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents)
- self.dokument_list_elsa.setDragEnabled(True)
- self.dokument_list_elsa.setDragDropMode(QtWidgets.QAbstractItemView.DragDropMode.DropOnly)
- self.dokument_list_elsa.setDefaultDropAction(QtCore.Qt.DropAction.LinkAction)
- self.dokument_list_elsa.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection)
- self.dokument_list_elsa.setObjectName("dokument_list_elsa")
- self.dokument_list_elsa.setColumnCount(4)
- self.dokument_list_elsa.setRowCount(0)
- item = QtWidgets.QTableWidgetItem()
- font = QtGui.QFont()
- font.setFamily("Arial")
- font.setPointSize(8)
- item.setFont(font)
- self.dokument_list_elsa.setHorizontalHeaderItem(0, item)
- item = QtWidgets.QTableWidgetItem()
- font = QtGui.QFont()
- font.setFamily("Arial")
- font.setPointSize(8)
- item.setFont(font)
- self.dokument_list_elsa.setHorizontalHeaderItem(1, item)
- item = QtWidgets.QTableWidgetItem()
- font = QtGui.QFont()
- font.setFamily("Arial")
- font.setPointSize(8)
- item.setFont(font)
- self.dokument_list_elsa.setHorizontalHeaderItem(2, item)
- item = QtWidgets.QTableWidgetItem()
- self.dokument_list_elsa.setHorizontalHeaderItem(3, item)
- self.dokument_list_elsa.horizontalHeader().setDefaultSectionSize(107)
- self.dokument_list_elsa.horizontalHeader().setMinimumSectionSize(41)
- self.dokument_list_elsa.verticalHeader().setDefaultSectionSize(30)
- self.check_file_elsa = QtWidgets.QPushButton(parent=self.create_frame_elsa)
- self.check_file_elsa.setEnabled(True)
- self.check_file_elsa.setGeometry(QtCore.QRect(1060, 120, 131, 51))
- font = QtGui.QFont()
- font.setPointSize(9)
- font.setBold(False)
- self.check_file_elsa.setFont(font)
- self.check_file_elsa.setObjectName("check_file_elsa")
- self.btn_open_document_elsa = QtWidgets.QPushButton(parent=self.create_frame_elsa)
- self.btn_open_document_elsa.setGeometry(QtCore.QRect(1060, 80, 131, 25))
- font = QtGui.QFont()
- font.setPointSize(9)
- font.setBold(False)
- self.btn_open_document_elsa.setFont(font)
- self.btn_open_document_elsa.setObjectName("btn_open_document_elsa")
- self.btn_add_document_elsa = QtWidgets.QPushButton(parent=self.create_frame_elsa)
- self.btn_add_document_elsa.setGeometry(QtCore.QRect(1060, 40, 131, 25))
- font = QtGui.QFont()
- font.setPointSize(9)
- font.setBold(False)
- self.btn_add_document_elsa.setFont(font)
- self.btn_add_document_elsa.setObjectName("btn_add_document_elsa")
- self.gridLayoutWidget_6 = QtWidgets.QWidget(parent=self.create_frame_elsa)
- self.gridLayoutWidget_6.setGeometry(QtCore.QRect(10, 10, 411, 121))
- self.gridLayoutWidget_6.setObjectName("gridLayoutWidget_6")
- self.gridLayout_7 = QtWidgets.QGridLayout(self.gridLayoutWidget_6)
- self.gridLayout_7.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetFixedSize)
- self.gridLayout_7.setContentsMargins(0, 0, 0, 0)
- self.gridLayout_7.setObjectName("gridLayout_7")
- self.elsa_date_today = QtWidgets.QPushButton(parent=self.gridLayoutWidget_6)
- self.elsa_date_today.setText("")
- self.elsa_date_today.setFlat(True)
- self.elsa_date_today.setObjectName("elsa_date_today")
- self.gridLayout_7.addWidget(self.elsa_date_today, 1, 2, 1, 1)
- self.label_29 = QtWidgets.QLabel(parent=self.gridLayoutWidget_6)
- self.label_29.setObjectName("label_29")
- self.gridLayout_7.addWidget(self.label_29, 2, 0, 1, 1)
- spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
- self.gridLayout_7.addItem(spacerItem7, 3, 0, 1, 1)
- self.elsa_date = QtWidgets.QLineEdit(parent=self.gridLayoutWidget_6)
- self.elsa_date.setClearButtonEnabled(True)
- self.elsa_date.setObjectName("elsa_date")
- self.gridLayout_7.addWidget(self.elsa_date, 1, 1, 1, 1)
- self.active_semester = QtWidgets.QPushButton(parent=self.gridLayoutWidget_6)
- self.active_semester.setEnabled(True)
- self.active_semester.setText("")
- self.active_semester.setIconSize(QtCore.QSize(20, 16))
- self.active_semester.setFlat(True)
- self.active_semester.setObjectName("active_semester")
- self.gridLayout_7.addWidget(self.active_semester, 2, 2, 1, 1)
- self.label_27 = QtWidgets.QLabel(parent=self.gridLayoutWidget_6)
- self.label_27.setObjectName("label_27")
- self.gridLayout_7.addWidget(self.label_27, 0, 0, 1, 1)
- self.elsa_prof = QtWidgets.QComboBox(parent=self.gridLayoutWidget_6)
- self.elsa_prof.setEditable(True)
- self.elsa_prof.setObjectName("elsa_prof")
- self.gridLayout_7.addWidget(self.elsa_prof, 0, 1, 1, 1)
- self.label_28 = QtWidgets.QLabel(parent=self.gridLayoutWidget_6)
- self.label_28.setObjectName("label_28")
- self.gridLayout_7.addWidget(self.label_28, 1, 0, 1, 1)
- self.elsa_semester = QtWidgets.QLineEdit(parent=self.gridLayoutWidget_6)
- self.elsa_semester.setClearButtonEnabled(True)
- self.elsa_semester.setObjectName("elsa_semester")
- self.gridLayout_7.addWidget(self.elsa_semester, 2, 1, 1, 1)
- self.elsa_update = QtWidgets.QPushButton(parent=self.create_frame_elsa)
- self.elsa_update.setGeometry(QtCore.QRect(100, 160, 75, 24))
- self.elsa_update.setObjectName("elsa_update")
- self.table_elsa_list = QtWidgets.QTableWidget(parent=self.elsa)
- self.table_elsa_list.setGeometry(QtCore.QRect(20, 430, 771, 281))
- self.table_elsa_list.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
- self.table_elsa_list.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
- self.table_elsa_list.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
- self.table_elsa_list.setObjectName("table_elsa_list")
- self.table_elsa_list.setColumnCount(12)
- self.table_elsa_list.setRowCount(0)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(0, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(1, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(2, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(3, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(4, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(5, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(6, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(7, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(8, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(9, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(10, item)
- item = QtWidgets.QTableWidgetItem()
- self.table_elsa_list.setHorizontalHeaderItem(11, item)
- self.table_elsa_list.horizontalHeader().setVisible(True)
- self.table_elsa_list.horizontalHeader().setDefaultSectionSize(64)
- self.table_elsa_list.horizontalHeader().setStretchLastSection(False)
- self.table_elsa_list.verticalHeader().setVisible(True)
- self.elsa_statistic_frame = QtWidgets.QFrame(parent=self.elsa)
- self.elsa_statistic_frame.setGeometry(QtCore.QRect(800, 410, 451, 321))
- self.elsa_statistic_frame.setObjectName("elsa_statistic_frame")
- self.elsa_statistics = QtWidgets.QTabWidget(parent=self.elsa_statistic_frame)
- self.elsa_statistics.setGeometry(QtCore.QRect(0, 0, 451, 301))
- self.elsa_statistics.setObjectName("elsa_statistics")
- self.tab_9 = QtWidgets.QWidget()
- self.tab_9.setObjectName("tab_9")
- self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.tab_9)
- self.horizontalLayout_3.setObjectName("horizontalLayout_3")
- self.elsa_statistics_table = QtWidgets.QTableWidget(parent=self.tab_9)
- self.elsa_statistics_table.setFocusPolicy(QtCore.Qt.FocusPolicy.WheelFocus)
- self.elsa_statistics_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
- self.elsa_statistics_table.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
- self.elsa_statistics_table.setTextElideMode(QtCore.Qt.TextElideMode.ElideRight)
- self.elsa_statistics_table.setObjectName("elsa_statistics_table")
- self.elsa_statistics_table.setColumnCount(2)
- self.elsa_statistics_table.setRowCount(0)
- item = QtWidgets.QTableWidgetItem()
- self.elsa_statistics_table.setHorizontalHeaderItem(0, item)
- item = QtWidgets.QTableWidgetItem()
- self.elsa_statistics_table.setHorizontalHeaderItem(1, item)
- self.elsa_statistics_table.horizontalHeader().setDefaultSectionSize(220)
- self.elsa_statistics_table.horizontalHeader().setSortIndicatorShown(True)
- self.horizontalLayout_3.addWidget(self.elsa_statistics_table)
- self.elsa_statistics.addTab(self.tab_9, "")
- self.elsa_cancel_create = QtWidgets.QPushButton(parent=self.elsa)
- self.elsa_cancel_create.setEnabled(False)
- self.elsa_cancel_create.setGeometry(QtCore.QRect(30, 90, 91, 24))
- self.elsa_cancel_create.setObjectName("elsa_cancel_create")
- self.elsa_add_new = QtWidgets.QPushButton(parent=self.elsa)
- self.elsa_add_new.setGeometry(QtCore.QRect(30, 50, 91, 24))
- self.elsa_add_new.setObjectName("elsa_add_new")
- self.elsa_table = QtWidgets.QTableWidget(parent=self.elsa)
- self.elsa_table.setGeometry(QtCore.QRect(140, 10, 1111, 181))
- self.elsa_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
- self.elsa_table.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
- self.elsa_table.setObjectName("elsa_table")
- self.elsa_table.setColumnCount(3)
- self.elsa_table.setRowCount(0)
- item = QtWidgets.QTableWidgetItem()
- self.elsa_table.setHorizontalHeaderItem(0, item)
- item = QtWidgets.QTableWidgetItem()
- self.elsa_table.setHorizontalHeaderItem(1, item)
- item = QtWidgets.QTableWidgetItem()
- self.elsa_table.setHorizontalHeaderItem(2, item)
- self.elsa_table.horizontalHeader().setCascadingSectionResizes(False)
- self.elsa_table.horizontalHeader().setDefaultSectionSize(370)
- self.quote_entry = QtWidgets.QPushButton(parent=self.elsa)
- self.quote_entry.setGeometry(QtCore.QRect(20, 400, 121, 24))
- self.quote_entry.setObjectName("quote_entry")
- self.tabWidget.addTab(self.elsa, "")
+ self.elsatab = QtWidgets.QWidget()
+ self.elsatab.setObjectName("elsatab")
+ self.tabWidget.addTab(self.elsatab, "")
self.admin = QtWidgets.QWidget()
self.admin.setObjectName("admin")
self.label_21 = QtWidgets.QLabel(parent=self.admin)
self.label_21.setGeometry(QtCore.QRect(10, 30, 47, 22))
self.label_21.setObjectName("label_21")
self.select_action_box = QtWidgets.QComboBox(parent=self.admin)
- self.select_action_box.setGeometry(QtCore.QRect(70, 30, 181, 22))
+ self.select_action_box.setGeometry(QtCore.QRect(60, 30, 181, 22))
self.select_action_box.setObjectName("select_action_box")
self.select_action_box.addItem("")
self.select_action_box.addItem("")
self.select_action_box.addItem("")
- self.select_action_box.addItem("")
- self.deleteUserBox = QtWidgets.QGroupBox(parent=self.admin)
- self.deleteUserBox.setGeometry(QtCore.QRect(10, 60, 370, 92))
- font = QtGui.QFont()
- font.setBold(True)
- self.deleteUserBox.setFont(font)
- self.deleteUserBox.setObjectName("deleteUserBox")
- self.gridLayout_9 = QtWidgets.QGridLayout(self.deleteUserBox)
- self.gridLayout_9.setObjectName("gridLayout_9")
- self.gridLayout_8 = QtWidgets.QGridLayout()
- self.gridLayout_8.setObjectName("gridLayout_8")
- self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
- self.horizontalLayout_8.setObjectName("horizontalLayout_8")
- spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.horizontalLayout_8.addItem(spacerItem8)
- self.btn_delete_user = QtWidgets.QPushButton(parent=self.deleteUserBox)
+ self.admin_action = QtWidgets.QGroupBox(parent=self.admin)
+ self.admin_action.setGeometry(QtCore.QRect(10, 70, 570, 291))
font = QtGui.QFont()
font.setBold(False)
- self.btn_delete_user.setFont(font)
- self.btn_delete_user.setObjectName("btn_delete_user")
- self.horizontalLayout_8.addWidget(self.btn_delete_user)
- spacerItem9 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.horizontalLayout_8.addItem(spacerItem9)
- self.gridLayout_8.addLayout(self.horizontalLayout_8, 1, 1, 1, 1)
- self.label_34 = QtWidgets.QLabel(parent=self.deleteUserBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_34.setFont(font)
- self.label_34.setObjectName("label_34")
- self.gridLayout_8.addWidget(self.label_34, 0, 0, 1, 1)
- self.user_delete_frame_user_select = QtWidgets.QComboBox(parent=self.deleteUserBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_delete_frame_user_select.setFont(font)
- self.user_delete_frame_user_select.setObjectName("user_delete_frame_user_select")
- self.gridLayout_8.addWidget(self.user_delete_frame_user_select, 0, 1, 1, 1)
- self.user_delete_confirm = QtWidgets.QRadioButton(parent=self.deleteUserBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_delete_confirm.setFont(font)
- self.user_delete_confirm.setLayoutDirection(QtCore.Qt.LayoutDirection.RightToLeft)
- self.user_delete_confirm.setObjectName("user_delete_confirm")
- self.gridLayout_8.addWidget(self.user_delete_confirm, 1, 0, 1, 1)
- spacerItem10 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.gridLayout_8.addItem(spacerItem10, 0, 2, 1, 1)
- self.user_delete_err_message = QtWidgets.QLabel(parent=self.deleteUserBox)
- self.user_delete_err_message.setText("")
- self.user_delete_err_message.setObjectName("user_delete_err_message")
- self.gridLayout_8.addWidget(self.user_delete_err_message, 1, 2, 1, 1)
- self.gridLayout_9.addLayout(self.gridLayout_8, 0, 0, 1, 1)
- self.userCreateBox = QtWidgets.QGroupBox(parent=self.admin)
- self.userCreateBox.setGeometry(QtCore.QRect(10, 60, 385, 90))
- font = QtGui.QFont()
- font.setBold(True)
- self.userCreateBox.setFont(font)
- self.userCreateBox.setObjectName("userCreateBox")
- self.gridLayout_10 = QtWidgets.QGridLayout(self.userCreateBox)
- self.gridLayout_10.setObjectName("gridLayout_10")
- self.gridLayout_5 = QtWidgets.QGridLayout()
- self.gridLayout_5.setObjectName("gridLayout_5")
- self.label_22 = QtWidgets.QLabel(parent=self.userCreateBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_22.setFont(font)
- self.label_22.setObjectName("label_22")
- self.gridLayout_5.addWidget(self.label_22, 0, 0, 1, 1)
- self.user_create_frame_username = QtWidgets.QLineEdit(parent=self.userCreateBox)
- self.user_create_frame_username.setMaximumSize(QtCore.QSize(150, 16777215))
- font = QtGui.QFont()
- font.setBold(False)
- self.user_create_frame_username.setFont(font)
- self.user_create_frame_username.setObjectName("user_create_frame_username")
- self.gridLayout_5.addWidget(self.user_create_frame_username, 0, 1, 1, 1)
- self.label_24 = QtWidgets.QLabel(parent=self.userCreateBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_24.setFont(font)
- self.label_24.setObjectName("label_24")
- self.gridLayout_5.addWidget(self.label_24, 0, 2, 1, 1)
- self.label_23 = QtWidgets.QLabel(parent=self.userCreateBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_23.setFont(font)
- self.label_23.setObjectName("label_23")
- self.gridLayout_5.addWidget(self.label_23, 1, 0, 1, 1)
- spacerItem11 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.gridLayout_5.addItem(spacerItem11, 0, 4, 1, 1)
- self.user_frame_userrole = QtWidgets.QComboBox(parent=self.userCreateBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_frame_userrole.setFont(font)
- self.user_frame_userrole.setEditable(True)
- self.user_frame_userrole.setObjectName("user_frame_userrole")
- self.gridLayout_5.addWidget(self.user_frame_userrole, 0, 3, 1, 1)
- self.user_create_frame_password = QtWidgets.QLineEdit(parent=self.userCreateBox)
- self.user_create_frame_password.setMaximumSize(QtCore.QSize(150, 16777215))
- font = QtGui.QFont()
- font.setBold(False)
- self.user_create_frame_password.setFont(font)
- self.user_create_frame_password.setObjectName("user_create_frame_password")
- self.gridLayout_5.addWidget(self.user_create_frame_password, 1, 1, 1, 1)
- self.user_frame_addUser = QtWidgets.QPushButton(parent=self.userCreateBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_frame_addUser.setFont(font)
- self.user_frame_addUser.setObjectName("user_frame_addUser")
- self.gridLayout_5.addWidget(self.user_frame_addUser, 1, 3, 1, 1)
- self.user_frame_err_message = QtWidgets.QLabel(parent=self.userCreateBox)
- self.user_frame_err_message.setText("")
- self.user_frame_err_message.setObjectName("user_frame_err_message")
- self.gridLayout_5.addWidget(self.user_frame_err_message, 1, 4, 1, 1)
- self.gridLayout_10.addLayout(self.gridLayout_5, 0, 0, 1, 1)
- self.userChangeDataBox = QtWidgets.QGroupBox(parent=self.admin)
- self.userChangeDataBox.setGeometry(QtCore.QRect(10, 60, 404, 90))
- font = QtGui.QFont()
- font.setBold(True)
- self.userChangeDataBox.setFont(font)
- self.userChangeDataBox.setObjectName("userChangeDataBox")
- self.gridLayout_13 = QtWidgets.QGridLayout(self.userChangeDataBox)
- self.gridLayout_13.setObjectName("gridLayout_13")
- self.gridLayout_11 = QtWidgets.QGridLayout()
- self.gridLayout_11.setObjectName("gridLayout_11")
- self.user_edit_frame_role_select = QtWidgets.QComboBox(parent=self.userChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_edit_frame_role_select.setFont(font)
- self.user_edit_frame_role_select.setObjectName("user_edit_frame_role_select")
- self.gridLayout_11.addWidget(self.user_edit_frame_role_select, 0, 3, 1, 1)
- self.label_38 = QtWidgets.QLabel(parent=self.userChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_38.setFont(font)
- self.label_38.setObjectName("label_38")
- self.gridLayout_11.addWidget(self.label_38, 0, 0, 1, 1)
- self.user_edit_frame_user_select = QtWidgets.QComboBox(parent=self.userChangeDataBox)
- self.user_edit_frame_user_select.setMaximumSize(QtCore.QSize(150, 16777215))
- font = QtGui.QFont()
- font.setBold(False)
- self.user_edit_frame_user_select.setFont(font)
- self.user_edit_frame_user_select.setObjectName("user_edit_frame_user_select")
- self.gridLayout_11.addWidget(self.user_edit_frame_user_select, 0, 1, 1, 1)
- self.update_user = QtWidgets.QPushButton(parent=self.userChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.update_user.setFont(font)
- self.update_user.setObjectName("update_user")
- self.gridLayout_11.addWidget(self.update_user, 1, 3, 1, 1)
- self.label_40 = QtWidgets.QLabel(parent=self.userChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_40.setFont(font)
- self.label_40.setObjectName("label_40")
- self.gridLayout_11.addWidget(self.label_40, 0, 2, 1, 1)
- self.label_39 = QtWidgets.QLabel(parent=self.userChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_39.setFont(font)
- self.label_39.setObjectName("label_39")
- self.gridLayout_11.addWidget(self.label_39, 1, 0, 1, 1)
- self.user_edit_frame_new_password = QtWidgets.QLineEdit(parent=self.userChangeDataBox)
- self.user_edit_frame_new_password.setMaximumSize(QtCore.QSize(150, 16777215))
- font = QtGui.QFont()
- font.setBold(False)
- self.user_edit_frame_new_password.setFont(font)
- self.user_edit_frame_new_password.setObjectName("user_edit_frame_new_password")
- self.gridLayout_11.addWidget(self.user_edit_frame_new_password, 1, 1, 1, 1)
- spacerItem12 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.gridLayout_11.addItem(spacerItem12, 0, 4, 1, 1)
- self.gridLayout_13.addLayout(self.gridLayout_11, 0, 0, 1, 1)
- self.profChangeDataBox = QtWidgets.QGroupBox(parent=self.admin)
- self.profChangeDataBox.setGeometry(QtCore.QRect(10, 60, 566, 234))
- font = QtGui.QFont()
- font.setBold(True)
- self.profChangeDataBox.setFont(font)
- self.profChangeDataBox.setObjectName("profChangeDataBox")
- self.gridLayout_14 = QtWidgets.QGridLayout(self.profChangeDataBox)
- self.gridLayout_14.setObjectName("gridLayout_14")
- self.gridLayout_12 = QtWidgets.QGridLayout()
- self.gridLayout_12.setObjectName("gridLayout_12")
- self.formLayout_2 = QtWidgets.QFormLayout()
- self.formLayout_2.setObjectName("formLayout_2")
- self.label_43 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_43.setFont(font)
- self.label_43.setObjectName("label_43")
- self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_43)
- self.edit_faculty_member_new_title = QtWidgets.QComboBox(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.edit_faculty_member_new_title.setFont(font)
- self.edit_faculty_member_new_title.setEditable(True)
- self.edit_faculty_member_new_title.setObjectName("edit_faculty_member_new_title")
- self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.edit_faculty_member_new_title)
- self.label_44 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_44.setFont(font)
- self.label_44.setObjectName("label_44")
- self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_44)
- self.edit_faculty_member_new_surname = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.edit_faculty_member_new_surname.setFont(font)
- self.edit_faculty_member_new_surname.setObjectName("edit_faculty_member_new_surname")
- self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.edit_faculty_member_new_surname)
- self.label_45 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_45.setFont(font)
- self.label_45.setObjectName("label_45")
- self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_45)
- self.user_faculty_member_new_name = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_faculty_member_new_name.setFont(font)
- self.user_faculty_member_new_name.setObjectName("user_faculty_member_new_name")
- self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.user_faculty_member_new_name)
- self.gridLayout_12.addLayout(self.formLayout_2, 2, 2, 1, 1)
- self.formLayout_4 = QtWidgets.QFormLayout()
- self.formLayout_4.setObjectName("formLayout_4")
- self.edit_faculty_member_title = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.edit_faculty_member_title.setFont(font)
- self.edit_faculty_member_title.setFocusPolicy(QtCore.Qt.FocusPolicy.TabFocus)
- self.edit_faculty_member_title.setReadOnly(True)
- self.edit_faculty_member_title.setObjectName("edit_faculty_member_title")
- self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.edit_faculty_member_title)
- self.edit_faculty_member_select_member = QtWidgets.QComboBox(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.edit_faculty_member_select_member.setFont(font)
- self.edit_faculty_member_select_member.setObjectName("edit_faculty_member_select_member")
- self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.edit_faculty_member_select_member)
- self.label_46 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_46.setFont(font)
- self.label_46.setObjectName("label_46")
- self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_46)
- self.faculty_member_old_telnr = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.faculty_member_old_telnr.setFont(font)
- self.faculty_member_old_telnr.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
- self.faculty_member_old_telnr.setReadOnly(True)
- self.faculty_member_old_telnr.setObjectName("faculty_member_old_telnr")
- self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.faculty_member_old_telnr)
- self.label_49 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_49.setFont(font)
- self.label_49.setObjectName("label_49")
- self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_49)
- self.faculty_member_oldmail = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.faculty_member_oldmail.setFont(font)
- self.faculty_member_oldmail.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
- self.faculty_member_oldmail.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhNone)
- self.faculty_member_oldmail.setReadOnly(True)
- self.faculty_member_oldmail.setObjectName("faculty_member_oldmail")
- self.formLayout_4.setWidget(2, QtWidgets.QFormLayout.ItemRole.FieldRole, self.faculty_member_oldmail)
- self.gridLayout_12.addLayout(self.formLayout_4, 0, 2, 1, 1)
- self.formLayout_5 = QtWidgets.QFormLayout()
- self.formLayout_5.setObjectName("formLayout_5")
- self.label_47 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_47.setFont(font)
- self.label_47.setObjectName("label_47")
- self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_47)
- self.label_48 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_48.setFont(font)
- self.label_48.setObjectName("label_48")
- self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_48)
- self.user_faculty_member_new_mail = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_faculty_member_new_mail.setFont(font)
- self.user_faculty_member_new_mail.setObjectName("user_faculty_member_new_mail")
- self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.user_faculty_member_new_mail)
- self.user_faculty_member_new_telnr = QtWidgets.QLineEdit(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.user_faculty_member_new_telnr.setFont(font)
- self.user_faculty_member_new_telnr.setObjectName("user_faculty_member_new_telnr")
- self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.user_faculty_member_new_telnr)
- self.gridLayout_12.addLayout(self.formLayout_5, 2, 4, 1, 1)
- self.label_41 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_41.setFont(font)
- self.label_41.setObjectName("label_41")
- self.gridLayout_12.addWidget(self.label_41, 0, 0, 1, 1)
- self.update_faculty_member = QtWidgets.QPushButton(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.update_faculty_member.setFont(font)
- self.update_faculty_member.setObjectName("update_faculty_member")
- self.gridLayout_12.addWidget(self.update_faculty_member, 3, 4, 1, 1)
- self.label_42 = QtWidgets.QLabel(parent=self.profChangeDataBox)
- font = QtGui.QFont()
- font.setBold(False)
- self.label_42.setFont(font)
- self.label_42.setObjectName("label_42")
- self.gridLayout_12.addWidget(self.label_42, 2, 0, 1, 1)
- self.gridLayout_14.addLayout(self.gridLayout_12, 0, 0, 1, 1)
+ self.admin_action.setFont(font)
+ self.admin_action.setFlat(True)
+ self.admin_action.setCheckable(False)
+ self.admin_action.setObjectName("admin_action")
self.tabWidget.addTab(self.admin, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
@@ -1287,22 +780,6 @@ class Ui_MainWindow(object):
self.label_4.setBuddy(self.drpdwn_prof_name)
self.label_5.setBuddy(self.app_name)
self.label_6.setBuddy(self.sem_year)
- self.label_29.setBuddy(self.elsa_semester)
- self.label_27.setBuddy(self.elsa_prof)
- self.label_28.setBuddy(self.elsa_date)
- self.label_34.setBuddy(self.user_delete_frame_user_select)
- self.label_22.setBuddy(self.user_create_frame_username)
- self.label_24.setBuddy(self.user_frame_userrole)
- self.label_23.setBuddy(self.user_create_frame_password)
- self.label_38.setBuddy(self.user_edit_frame_user_select)
- self.label_40.setBuddy(self.user_edit_frame_role_select)
- self.label_39.setBuddy(self.user_edit_frame_new_password)
- self.label_43.setBuddy(self.edit_faculty_member_new_title)
- self.label_44.setBuddy(self.edit_faculty_member_new_surname)
- self.label_45.setBuddy(self.user_faculty_member_new_name)
- self.label_46.setBuddy(self.faculty_member_old_telnr)
- self.label_47.setBuddy(self.user_faculty_member_new_mail)
- self.label_48.setBuddy(self.user_faculty_member_new_telnr)
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
@@ -1312,9 +789,9 @@ class Ui_MainWindow(object):
MainWindow.setTabOrder(self.prof_mail, self.prof_tel_nr)
MainWindow.setTabOrder(self.prof_tel_nr, self.app_name)
MainWindow.setTabOrder(self.app_name, self.app_fach)
- MainWindow.setTabOrder(self.app_fach, self.sem_winter)
- MainWindow.setTabOrder(self.sem_winter, self.sem_sommer)
- MainWindow.setTabOrder(self.sem_sommer, self.sem_year)
+ MainWindow.setTabOrder(self.app_fach, self.sem_sommer)
+ MainWindow.setTabOrder(self.sem_sommer, self.sem_winter)
+ MainWindow.setTabOrder(self.sem_winter, self.sem_year)
MainWindow.setTabOrder(self.sem_year, self.check_eternal_app)
MainWindow.setTabOrder(self.check_eternal_app, self.btn_add_document)
MainWindow.setTabOrder(self.btn_add_document, self.btn_open_document)
@@ -1322,48 +799,12 @@ class Ui_MainWindow(object):
MainWindow.setTabOrder(self.check_file, self.check_send_mail)
MainWindow.setTabOrder(self.check_send_mail, self.btn_apparat_save)
MainWindow.setTabOrder(self.btn_apparat_save, self.btn_apparat_apply)
- MainWindow.setTabOrder(self.btn_apparat_apply, self.user_faculty_member_new_name)
- MainWindow.setTabOrder(self.user_faculty_member_new_name, self.user_faculty_member_new_mail)
- MainWindow.setTabOrder(self.user_faculty_member_new_mail, self.user_faculty_member_new_telnr)
- MainWindow.setTabOrder(self.user_faculty_member_new_telnr, self.update_faculty_member)
- MainWindow.setTabOrder(self.update_faculty_member, self.btn_copy_adis_command)
+ MainWindow.setTabOrder(self.btn_apparat_apply, self.btn_copy_adis_command)
MainWindow.setTabOrder(self.btn_copy_adis_command, self.chkbx_show_del_media)
MainWindow.setTabOrder(self.chkbx_show_del_media, self.btn_reserve)
- MainWindow.setTabOrder(self.btn_reserve, self.edit_faculty_member_select_member)
- MainWindow.setTabOrder(self.edit_faculty_member_select_member, self.user_frame_addUser)
- MainWindow.setTabOrder(self.user_frame_addUser, self.user_edit_frame_user_select)
- MainWindow.setTabOrder(self.user_edit_frame_user_select, self.select_action_box)
- MainWindow.setTabOrder(self.select_action_box, self.user_edit_frame_new_password)
- MainWindow.setTabOrder(self.user_edit_frame_new_password, self.user_frame_userrole)
- MainWindow.setTabOrder(self.user_frame_userrole, self.user_delete_frame_user_select)
- MainWindow.setTabOrder(self.user_delete_frame_user_select, self.user_edit_frame_role_select)
- MainWindow.setTabOrder(self.user_edit_frame_role_select, self.prof_id_adis)
+ MainWindow.setTabOrder(self.btn_reserve, self.select_action_box)
+ MainWindow.setTabOrder(self.select_action_box, self.prof_id_adis)
MainWindow.setTabOrder(self.prof_id_adis, self.apparat_id_adis)
- MainWindow.setTabOrder(self.apparat_id_adis, self.user_create_frame_username)
- MainWindow.setTabOrder(self.user_create_frame_username, self.user_delete_confirm)
- MainWindow.setTabOrder(self.user_delete_confirm, self.btn_delete_user)
- MainWindow.setTabOrder(self.btn_delete_user, self.update_user)
- MainWindow.setTabOrder(self.update_user, self.user_create_frame_password)
- MainWindow.setTabOrder(self.user_create_frame_password, self.edit_faculty_member_title)
- MainWindow.setTabOrder(self.edit_faculty_member_title, self.elsa_save)
- MainWindow.setTabOrder(self.elsa_save, self.check_file_elsa)
- MainWindow.setTabOrder(self.check_file_elsa, self.btn_open_document_elsa)
- MainWindow.setTabOrder(self.btn_open_document_elsa, self.btn_add_document_elsa)
- MainWindow.setTabOrder(self.btn_add_document_elsa, self.elsa_date_today)
- MainWindow.setTabOrder(self.elsa_date_today, self.elsa_date)
- MainWindow.setTabOrder(self.elsa_date, self.active_semester)
- MainWindow.setTabOrder(self.active_semester, self.elsa_prof)
- MainWindow.setTabOrder(self.elsa_prof, self.elsa_semester)
- MainWindow.setTabOrder(self.elsa_semester, self.table_elsa_list)
- MainWindow.setTabOrder(self.table_elsa_list, self.elsa_statistics)
- MainWindow.setTabOrder(self.elsa_statistics, self.elsa_statistics_table)
- MainWindow.setTabOrder(self.elsa_statistics_table, self.elsa_cancel_create)
- MainWindow.setTabOrder(self.elsa_cancel_create, self.elsa_add_new)
- MainWindow.setTabOrder(self.elsa_add_new, self.elsa_table)
- MainWindow.setTabOrder(self.elsa_table, self.edit_faculty_member_new_surname)
- MainWindow.setTabOrder(self.edit_faculty_member_new_surname, self.edit_faculty_member_new_title)
- MainWindow.setTabOrder(self.edit_faculty_member_new_title, self.elsa_update)
- MainWindow.setTabOrder(self.elsa_update, self.quote_entry)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
@@ -1453,94 +894,12 @@ class Ui_MainWindow(object):
self.add_medium.setText(_translate("MainWindow", "Medien hinzufügen"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.createApparat), _translate("MainWindow", "Anlegen"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.search_statistics), _translate("MainWindow", "Suchen / Statistik"))
- self.elsa_save.setText(_translate("MainWindow", "Speichern"))
- item = self.dokument_list_elsa.horizontalHeaderItem(0)
- item.setText(_translate("MainWindow", "Dokumentname"))
- item = self.dokument_list_elsa.horizontalHeaderItem(1)
- item.setText(_translate("MainWindow", "Dateityp"))
- item = self.dokument_list_elsa.horizontalHeaderItem(2)
- item.setText(_translate("MainWindow", "Neu?"))
- item = self.dokument_list_elsa.horizontalHeaderItem(3)
- item.setText(_translate("MainWindow", "path"))
- self.check_file_elsa.setToolTip(_translate("MainWindow", "Abhängig von der Anzahl der Medien kann die Suche sehr lange dauern"))
- self.check_file_elsa.setText(_translate("MainWindow", "Medien aus Dokument\n"
-" hinzufügen"))
- self.btn_open_document_elsa.setText(_translate("MainWindow", "Dokument öffnen"))
- self.btn_add_document_elsa.setText(_translate("MainWindow", "Dokument hinzufügen"))
- self.label_29.setText(_translate("MainWindow", "Semester"))
- self.label_27.setText(_translate("MainWindow", "Professor"))
- self.elsa_prof.setPlaceholderText(_translate("MainWindow", "Vollständiger Name"))
- self.label_28.setText(_translate("MainWindow", "Auftragsdatum"))
- self.elsa_update.setText(_translate("MainWindow", "Aktualisieren"))
- item = self.table_elsa_list.horizontalHeaderItem(0)
- item.setText(_translate("MainWindow", "Autor(en) des Werks"))
- item = self.table_elsa_list.horizontalHeaderItem(1)
- item.setText(_translate("MainWindow", "Autor(en) des Beitrags"))
- item = self.table_elsa_list.horizontalHeaderItem(2)
- item.setText(_translate("MainWindow", "Jahr"))
- item = self.table_elsa_list.horizontalHeaderItem(3)
- item.setText(_translate("MainWindow", "Heft"))
- item = self.table_elsa_list.horizontalHeaderItem(4)
- item.setText(_translate("MainWindow", "Auflage"))
- item = self.table_elsa_list.horizontalHeaderItem(5)
- item.setText(_translate("MainWindow", "Titel des Werkes"))
- item = self.table_elsa_list.horizontalHeaderItem(6)
- item.setText(_translate("MainWindow", "Beitragstitel"))
- item = self.table_elsa_list.horizontalHeaderItem(7)
- item.setText(_translate("MainWindow", "Seiten"))
- item = self.table_elsa_list.horizontalHeaderItem(8)
- item.setText(_translate("MainWindow", "Ort"))
- item = self.table_elsa_list.horizontalHeaderItem(9)
- item.setText(_translate("MainWindow", "Verlag"))
- item = self.table_elsa_list.horizontalHeaderItem(10)
- item.setText(_translate("MainWindow", "Signatur"))
- item = self.table_elsa_list.horizontalHeaderItem(11)
- item.setText(_translate("MainWindow", "Art"))
- item = self.elsa_statistics_table.horizontalHeaderItem(0)
- item.setText(_translate("MainWindow", "Semester"))
- item = self.elsa_statistics_table.horizontalHeaderItem(1)
- item.setText(_translate("MainWindow", "Zugang"))
- self.elsa_statistics.setTabText(self.elsa_statistics.indexOf(self.tab_9), _translate("MainWindow", "Tabelle"))
- self.elsa_cancel_create.setText(_translate("MainWindow", "Abbrechen"))
- self.elsa_add_new.setText(_translate("MainWindow", "Neuer Auftrag"))
- item = self.elsa_table.horizontalHeaderItem(0)
- item.setText(_translate("MainWindow", "Professor"))
- item = self.elsa_table.horizontalHeaderItem(1)
- item.setText(_translate("MainWindow", "Datum"))
- item = self.elsa_table.horizontalHeaderItem(2)
- item.setText(_translate("MainWindow", "Semester"))
- self.quote_entry.setText(_translate("MainWindow", "Eintrag zitieren"))
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.elsa), _translate("MainWindow", "ELSA"))
+ self.tabWidget.setTabText(self.tabWidget.indexOf(self.elsatab), _translate("MainWindow", "ELSA"))
self.label_21.setText(_translate("MainWindow", "Aktion:"))
self.select_action_box.setItemText(0, _translate("MainWindow", "Nutzer anlegen"))
- self.select_action_box.setItemText(1, _translate("MainWindow", "Nutzer löschen"))
- self.select_action_box.setItemText(2, _translate("MainWindow", "Nutzer aktualisieren"))
- self.select_action_box.setItemText(3, _translate("MainWindow", "Lehrperson bearbeiten"))
- self.deleteUserBox.setTitle(_translate("MainWindow", "Nutzer löschen"))
- self.btn_delete_user.setText(_translate("MainWindow", "Nutzer löschen"))
- self.label_34.setText(_translate("MainWindow", "Nutzername"))
- self.user_delete_confirm.setText(_translate("MainWindow", "Wirklich löschen?"))
- self.userCreateBox.setTitle(_translate("MainWindow", "Nutzer anlegen"))
- self.label_22.setText(_translate("MainWindow", "Nutzername"))
- self.label_24.setText(_translate("MainWindow", "Rolle"))
- self.label_23.setText(_translate("MainWindow", "Passwort"))
- self.user_frame_addUser.setText(_translate("MainWindow", "Anlegen"))
- self.userChangeDataBox.setTitle(_translate("MainWindow", "Nutzerdaten anpassen"))
- self.label_38.setText(_translate("MainWindow", "Nutzername"))
- self.update_user.setText(_translate("MainWindow", "Aktualisieren"))
- self.label_40.setText(_translate("MainWindow", "Rolle"))
- self.label_39.setText(_translate("MainWindow", "Neues Passwort"))
- self.profChangeDataBox.setTitle(_translate("MainWindow", "Lehrperson bearbeiten"))
- self.label_43.setText(_translate("MainWindow", "Titel"))
- self.label_44.setText(_translate("MainWindow", "Vorname"))
- self.label_45.setText(_translate("MainWindow", "Nachname"))
- self.label_46.setText(_translate("MainWindow", "Telefonnummer"))
- self.label_49.setText(_translate("MainWindow", "Mail"))
- self.label_47.setText(_translate("MainWindow", "Mail"))
- self.label_48.setText(_translate("MainWindow", "Telefon"))
- self.label_41.setText(_translate("MainWindow", "Alte Angaben"))
- self.update_faculty_member.setText(_translate("MainWindow", "Aktualisieren"))
- self.label_42.setText(_translate("MainWindow", "Neue Angaben"))
+ self.select_action_box.setItemText(1, _translate("MainWindow", "Nutzer bearbeiten"))
+ self.select_action_box.setItemText(2, _translate("MainWindow", "Lehrperson bearbeiten"))
+ self.admin_action.setTitle(_translate("MainWindow", "GroupBox"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.admin), _translate("MainWindow", "Admin"))
self.groupBox_2.setTitle(_translate("MainWindow", "Software"))
self.appdata_check.setText(_translate("MainWindow", "Apparatsdaten eingegeben"))
diff --git a/src/ui/dialogs/dialog_sources/Ui_login.py b/src/ui/dialogs/dialog_sources/Ui_login.py
index 397ccd5..b2421eb 100644
--- a/src/ui/dialogs/dialog_sources/Ui_login.py
+++ b/src/ui/dialogs/dialog_sources/Ui_login.py
@@ -13,6 +13,9 @@ class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(218, 190)
+ icon = QtGui.QIcon()
+ icon.addPixmap(QtGui.QPixmap(":/icons/resources/1f510.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
+ Dialog.setWindowIcon(icon)
self.label = QtWidgets.QLabel(parent=Dialog)
self.label.setGeometry(QtCore.QRect(20, 40, 71, 21))
self.label.setObjectName("label")
diff --git a/src/ui/dialogs/dialog_sources/Ui_mail_preview.py b/src/ui/dialogs/dialog_sources/Ui_mail_preview.py
index 781a67b..cf6d8f2 100644
--- a/src/ui/dialogs/dialog_sources/Ui_mail_preview.py
+++ b/src/ui/dialogs/dialog_sources/Ui_mail_preview.py
@@ -13,6 +13,9 @@ class Ui_eMailPreview(object):
def setupUi(self, eMailPreview):
eMailPreview.setObjectName("eMailPreview")
eMailPreview.resize(700, 668)
+ icon = QtGui.QIcon()
+ icon.addPixmap(QtGui.QPixmap("c:\\Users\\aky547\\GitHub\\SemesterapparatsManager\\src\\ui\\dialogs\\dialog_sources\\../../../../../../icons/email.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
+ eMailPreview.setWindowIcon(icon)
self.gridLayout_2 = QtWidgets.QGridLayout(eMailPreview)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gridLayout = QtWidgets.QGridLayout()
@@ -64,20 +67,11 @@ class Ui_eMailPreview(object):
self.gender_non = QtWidgets.QRadioButton(parent=eMailPreview)
self.gender_non.setObjectName("gender_non")
self.horizontalLayout_3.addWidget(self.gender_non)
- spacerItem = QtWidgets.QSpacerItem(
- 40,
- 20,
- QtWidgets.QSizePolicy.Policy.Expanding,
- QtWidgets.QSizePolicy.Policy.Minimum,
- )
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_3.addItem(spacerItem)
self.gridLayout.addLayout(self.horizontalLayout_3, 4, 2, 1, 1)
self.label_3 = QtWidgets.QLabel(parent=eMailPreview)
- self.label_3.setAlignment(
- QtCore.Qt.AlignmentFlag.AlignLeading
- | QtCore.Qt.AlignmentFlag.AlignLeft
- | QtCore.Qt.AlignmentFlag.AlignTop
- )
+ self.label_3.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignTop)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 5, 0, 1, 1)
self.label = QtWidgets.QLabel(parent=eMailPreview)
@@ -85,12 +79,7 @@ class Ui_eMailPreview(object):
self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
- spacerItem1 = QtWidgets.QSpacerItem(
- 40,
- 20,
- QtWidgets.QSizePolicy.Policy.Expanding,
- QtWidgets.QSizePolicy.Policy.Minimum,
- )
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_2.addItem(spacerItem1)
self.btn_okay = QtWidgets.QPushButton(parent=eMailPreview)
self.btn_okay.setStatusTip("")
@@ -98,9 +87,7 @@ class Ui_eMailPreview(object):
self.horizontalLayout_2.addWidget(self.btn_okay)
self.buttonBox = QtWidgets.QDialogButtonBox(parent=eMailPreview)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
- self.buttonBox.setStandardButtons(
- QtWidgets.QDialogButtonBox.StandardButton.Cancel
- )
+ self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel)
self.buttonBox.setCenterButtons(True)
self.buttonBox.setObjectName("buttonBox")
self.horizontalLayout_2.addWidget(self.buttonBox)
@@ -108,8 +95,8 @@ class Ui_eMailPreview(object):
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
self.retranslateUi(eMailPreview)
- self.buttonBox.accepted.connect(eMailPreview.accept) # type: ignore
- self.buttonBox.rejected.connect(eMailPreview.reject) # type: ignore
+ self.buttonBox.accepted.connect(eMailPreview.accept) # type: ignore
+ self.buttonBox.rejected.connect(eMailPreview.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(eMailPreview)
def retranslateUi(self, eMailPreview):
diff --git a/src/ui/dialogs/dialog_sources/Ui_medianadder.py b/src/ui/dialogs/dialog_sources/Ui_medianadder.py
index 8d78301..3991c69 100644
--- a/src/ui/dialogs/dialog_sources/Ui_medianadder.py
+++ b/src/ui/dialogs/dialog_sources/Ui_medianadder.py
@@ -13,6 +13,9 @@ class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(620, 481)
+ icon = QtGui.QIcon()
+ icon.addPixmap(QtGui.QPixmap(":/icons/resources/2795.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
+ Dialog.setWindowIcon(icon)
self.label = QtWidgets.QLabel(parent=Dialog)
self.label.setGeometry(QtCore.QRect(20, 10, 47, 21))
self.label.setObjectName("label")
diff --git a/src/ui/dialogs/mailTemplate.py b/src/ui/dialogs/mailTemplate.py
index a3cf2ad..d075fb6 100644
--- a/src/ui/dialogs/mailTemplate.py
+++ b/src/ui/dialogs/mailTemplate.py
@@ -39,7 +39,7 @@ class MailTemplateDialog(QtWidgets.QDialog, NewMailTemplateDesignerDialog):
).clicked.connect(self.closeNow)
def save_template(self):
- print("save triggered")
+ # print("save triggered")
# create a dialog to ask for the name of the template
dialog = QtWidgets.QInputDialog()
dialog.setInputMode(QtWidgets.QInputDialog.InputMode.TextInput)
@@ -128,8 +128,8 @@ Content-Transfer-Encoding: 8bit
self.close()
def updateDescription(self):
- print("update triggered")
- print(self.placeholder_list.currentText())
+ # print("update triggered")
+ # print(self.placeholder_list.currentText())
placeholders = {
"anrede": "Die Anrede beinhaltet sowohl Person als auch Sehr geehrte/r; dargestellt als: {greeting}",
"apparatsfach": "Das Fach, in welchem der Apparat angelegt wurde; dargestellt als: {AppSubject}",
diff --git a/src/ui/semesterapparat_ui.ui b/src/ui/semesterapparat_ui.ui
index f7db1e4..010b468 100644
--- a/src/ui/semesterapparat_ui.ui
+++ b/src/ui/semesterapparat_ui.ui
@@ -538,7 +538,7 @@
true
- QAbstractItemView::DropOnly
+ QAbstractItemView::DragOnly
Qt::LinkAction
@@ -1503,547 +1503,10 @@
Suchen / Statistik
-
+
ELSA
-
-
- true
-
-
-
- 20
- 200
- 1231
- 201
-
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
-
- 10
- 160
- 75
- 24
-
-
-
- Speichern
-
-
-
-
-
- 720
- 10
- 321
- 181
-
-
-
-
- 10
- false
- false
-
-
-
- Qt::NoFocus
-
-
- true
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QAbstractScrollArea::AdjustToContents
-
-
- true
-
-
- QAbstractItemView::DropOnly
-
-
- Qt::LinkAction
-
-
- QAbstractItemView::SingleSelection
-
-
- 41
-
-
- 107
-
-
- 30
-
-
-
- Dokumentname
-
-
-
- Arial
- 8
-
-
-
-
-
- Dateityp
-
-
-
- Arial
- 8
-
-
-
-
-
- Neu?
-
-
-
- Arial
- 8
-
-
-
-
-
- path
-
-
-
-
-
- true
-
-
-
- 1060
- 120
- 131
- 51
-
-
-
-
- 9
- false
-
-
-
- Abhängig von der Anzahl der Medien kann die Suche sehr lange dauern
-
-
- Medien aus Dokument
- hinzufügen
-
-
-
-
-
- 1060
- 80
- 131
- 25
-
-
-
-
- 9
- false
-
-
-
- Dokument öffnen
-
-
-
-
-
- 1060
- 40
- 131
- 25
-
-
-
-
- 9
- false
-
-
-
- Dokument hinzufügen
-
-
-
-
-
- 10
- 10
- 411
- 121
-
-
-
-
- QLayout::SetFixedSize
-
- -
-
-
-
-
-
- true
-
-
-
- -
-
-
- Semester
-
-
- elsa_semester
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
- -
-
-
- true
-
-
-
- -
-
-
- true
-
-
-
-
-
-
- 20
- 16
-
-
-
- true
-
-
-
- -
-
-
- Professor
-
-
- elsa_prof
-
-
-
- -
-
-
- true
-
-
- Vollständiger Name
-
-
-
- -
-
-
- Auftragsdatum
-
-
- elsa_date
-
-
-
- -
-
-
- true
-
-
-
-
-
-
-
-
- 100
- 160
- 75
- 24
-
-
-
- Aktualisieren
-
-
-
-
-
-
- 20
- 430
- 771
- 281
-
-
-
- QFrame::StyledPanel
-
-
- QFrame::Sunken
-
-
- QAbstractItemView::NoEditTriggers
-
-
- true
-
-
- 64
-
-
- false
-
-
- true
-
-
-
- Autor(en) des Werks
-
-
-
-
- Autor(en) des Beitrags
-
-
-
-
- Jahr
-
-
-
-
- Heft
-
-
-
-
- Auflage
-
-
-
-
- Titel des Werkes
-
-
-
-
- Beitragstitel
-
-
-
-
- Seiten
-
-
-
-
- Ort
-
-
-
-
- Verlag
-
-
-
-
- Signatur
-
-
-
-
- Art
-
-
-
-
-
-
- 800
- 410
- 451
- 321
-
-
-
-
-
- 0
- 0
- 451
- 301
-
-
-
-
- Tabelle
-
-
- -
-
-
- Qt::WheelFocus
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QAbstractItemView::NoEditTriggers
-
-
- Qt::ElideRight
-
-
- 220
-
-
- true
-
-
-
- Semester
-
-
-
-
- Zugang
-
-
-
-
-
-
-
-
-
-
- false
-
-
-
- 30
- 90
- 91
- 24
-
-
-
- Abbrechen
-
-
-
-
-
- 30
- 50
- 91
- 24
-
-
-
- Neuer Auftrag
-
-
-
-
-
- 140
- 10
- 1111
- 181
-
-
-
- Qt::ScrollBarAlwaysOff
-
-
- QAbstractItemView::NoEditTriggers
-
-
- false
-
-
- 370
-
-
-
- Professor
-
-
-
-
- Datum
-
-
-
-
- Semester
-
-
-
-
-
-
- 20
- 400
- 121
- 24
-
-
-
- Eintrag zitieren
-
-
@@ -2065,7 +1528,7 @@
- 70
+ 60
30
181
22
@@ -2078,12 +1541,7 @@
-
- Nutzer löschen
-
-
- -
-
- Nutzer aktualisieren
+ Nutzer bearbeiten
-
@@ -2092,685 +1550,29 @@
-
+
10
- 60
- 370
- 92
+ 70
+ 570
+ 291
- true
+ false
- Nutzer löschen
+ GroupBox
-
- -
-
-
-
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- false
-
-
-
- Nutzer löschen
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
-
- false
-
-
-
- Nutzername
-
-
- user_delete_frame_user_select
-
-
-
- -
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Qt::RightToLeft
-
-
- Wirklich löschen?
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
- 10
- 60
- 385
- 90
-
+
+ true
-
-
- true
-
+
+ false
-
- Nutzer anlegen
-
-
- -
-
-
-
-
-
-
- false
-
-
-
- Nutzername
-
-
- user_create_frame_username
-
-
-
- -
-
-
-
- 150
- 16777215
-
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Rolle
-
-
- user_frame_userrole
-
-
-
- -
-
-
-
- false
-
-
-
- Passwort
-
-
- user_create_frame_password
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
-
- false
-
-
-
- true
-
-
-
- -
-
-
-
- 150
- 16777215
-
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Anlegen
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
- 10
- 60
- 404
- 90
-
-
-
-
- true
-
-
-
- Nutzerdaten anpassen
-
-
- -
-
-
-
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Nutzername
-
-
- user_edit_frame_user_select
-
-
-
- -
-
-
-
- 150
- 16777215
-
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Aktualisieren
-
-
-
- -
-
-
-
- false
-
-
-
- Rolle
-
-
- user_edit_frame_role_select
-
-
-
- -
-
-
-
- false
-
-
-
- Neues Passwort
-
-
- user_edit_frame_new_password
-
-
-
- -
-
-
-
- 150
- 16777215
-
-
-
-
- false
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
-
-
-
-
- 10
- 60
- 566
- 234
-
-
-
-
- true
-
-
-
- Lehrperson bearbeiten
-
-
- -
-
-
-
-
-
-
-
-
-
- false
-
-
-
- Titel
-
-
- edit_faculty_member_new_title
-
-
-
- -
-
-
-
- false
-
-
-
- true
-
-
-
- -
-
-
-
- false
-
-
-
- Vorname
-
-
- edit_faculty_member_new_surname
-
-
-
- -
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Nachname
-
-
- user_faculty_member_new_name
-
-
-
- -
-
-
-
- false
-
-
-
-
-
-
- -
-
-
-
-
-
-
- false
-
-
-
- Qt::TabFocus
-
-
- true
-
-
-
- -
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
- Telefonnummer
-
-
- faculty_member_old_telnr
-
-
-
- -
-
-
-
- false
-
-
-
- Qt::ClickFocus
-
-
- true
-
-
-
- -
-
-
-
- false
-
-
-
- Mail
-
-
-
- -
-
-
-
- false
-
-
-
- Qt::NoFocus
-
-
- Qt::ImhNone
-
-
- true
-
-
-
-
-
- -
-
-
-
-
-
-
- false
-
-
-
- Mail
-
-
- user_faculty_member_new_mail
-
-
-
- -
-
-
-
- false
-
-
-
- Telefon
-
-
- user_faculty_member_new_telnr
-
-
-
- -
-
-
-
- false
-
-
-
-
- -
-
-
-
- false
-
-
-
-
-
-
- -
-
-
-
- false
-
-
-
- Alte Angaben
-
-
-
- -
-
-
-
- false
-
-
-
- Aktualisieren
-
-
-
- -
-
-
-
- false
-
-
-
- Neue Angaben
-
-
-
-
-
-
@@ -3133,8 +1935,8 @@
prof_tel_nr
app_name
app_fach
- sem_winter
sem_sommer
+ sem_winter
sem_year
check_eternal_app
btn_add_document
@@ -3143,48 +1945,12 @@
check_send_mail
btn_apparat_save
btn_apparat_apply
- user_faculty_member_new_name
- user_faculty_member_new_mail
- user_faculty_member_new_telnr
- update_faculty_member
btn_copy_adis_command
chkbx_show_del_media
btn_reserve
- edit_faculty_member_select_member
- user_frame_addUser
- user_edit_frame_user_select
select_action_box
- user_edit_frame_new_password
- user_frame_userrole
- user_delete_frame_user_select
- user_edit_frame_role_select
prof_id_adis
apparat_id_adis
- user_create_frame_username
- user_delete_confirm
- btn_delete_user
- update_user
- user_create_frame_password
- edit_faculty_member_title
- elsa_save
- check_file_elsa
- btn_open_document_elsa
- btn_add_document_elsa
- elsa_date_today
- elsa_date
- active_semester
- elsa_prof
- elsa_semester
- table_elsa_list
- elsa_statistics
- elsa_statistics_table
- elsa_cancel_create
- elsa_add_new
- elsa_table
- edit_faculty_member_new_surname
- edit_faculty_member_new_title
- elsa_update
- quote_entry
diff --git a/src/ui/userInterface.py b/src/ui/userInterface.py
index 4dd41fb..5437681 100644
--- a/src/ui/userInterface.py
+++ b/src/ui/userInterface.py
@@ -2,6 +2,7 @@
import atexit
import os
+import subprocess
import sys
import tempfile
import webbrowser
@@ -19,27 +20,24 @@ from src.backend import (
AdminCommands,
Database,
generateSemesterByDate,
- recreateElsaFile,
recreateFile,
tempdelete,
)
from src.logic import (
APP_NRS,
- PROF_TITLES,
+ # PROF_TITLES,
ApparatData,
AvailChecker,
BookData,
BookGrabber,
MyLogger,
csv_to_list,
- elsa_word_to_csv,
word_docx_to_csv,
)
from src.ui import (
About,
ApparatExtendDialog,
CalendarEntry,
- DataGraph,
FilePicker,
Mail_Dialog,
MessageCalendar,
@@ -52,7 +50,11 @@ from src.ui import (
popus_confirm,
reminder_ui,
SearchStatisticPage,
- ElsaAddEntry,
+ ElsaDialog,
+ UserCreate,
+ EditUser,
+ EditProf
+
)
config = OmegaConf.load("config.yaml")
@@ -123,25 +125,15 @@ class Ui(Ui_Semesterapparat):
)
)
self.prof_tel_nr.setValidator(QtGui.QIntValidator())
-
- # set app_fach validator to allow only entries from the present items in self.app_fach and allow manual text entry
- # self.app_fach.setValidator(
- # QtGui.QRegularExpressionValidator(
- # QtCore.QRegularExpression(
- # "|".join([f"{subject[1]}" for subject in self.db.getSubjects()])
- # )
- # )
- # )
+ self.prof_tel_nr.setValidator(
+ QtGui.QRegularExpressionValidator(QtCore.QRegularExpression(r"^\d{3,14}"))
+ )
+ # print(self.prof_tel_nr.maxLength())
self.app_fach.setValidator( # validator to allow typing in the app_fach field
QtGui.QRegularExpressionValidator(
QtCore.QRegularExpression(r"[a-zA-Z0-9\s\W]+")
)
)
- self.prof_tel_nr.setValidator(
- QtGui.QRegularExpressionValidator(
- QtCore.QRegularExpression(r"^\d{3}|^\d{4}-\d{2}|^\+\d{8,}")
- )
- )
# allow only letters, numbers, whitespaces, symbols for the apparat name
self.app_name.setValidator(
QtGui.QRegularExpressionValidator(
@@ -154,7 +146,7 @@ class Ui(Ui_Semesterapparat):
)
self.tableWidget_apparate.doubleClicked.connect(self.load_app_data)
self.load_app.hide()
- print(f"user:{self.active_user}")
+ # print(f"user:{self.active_user}")
userrole = self.db.getRole(self.active_user)
# hide admin interface when non-admin is logged in
if userrole == "admin":
@@ -201,6 +193,8 @@ class Ui(Ui_Semesterapparat):
self.statistics = SearchStatisticPage()
self.statistics.apparat_open.connect(self.open_apparat)
self.statistics.reloadSignal.connect(self.reload)
+
+ self.elsa = ElsaDialog()
# create a thread, that continually checks the validity of the inputs
self.validate_thread = QThread()
@@ -215,15 +209,7 @@ class Ui(Ui_Semesterapparat):
# if length of apparats changes, update box_apparats
# if tab is changed, gather data needed
- ### Admin interface ###
- self.select_action_box.addItem("")
- self.select_action_box.setCurrentText("")
- self.hide_all()
- self.select_action_box.currentTextChanged.connect(self.admin_action_changed)
- self.edit_faculty_member_select_member.currentTextChanged.connect(
- self.edit_faculty_member_set_data
- )
-
+
# Context Menus
self.tableWidget_apparate.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
@@ -237,44 +223,50 @@ class Ui(Ui_Semesterapparat):
self.tableWidget_apparat_media.customContextMenuRequested.connect(
self.media_context_menu
)
- self.table_elsa_list.setContextMenuPolicy(
- QtCore.Qt.ContextMenuPolicy.CustomContextMenu
- )
-
- 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)
- 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.quote_entry.clicked.connect(self.elsa_table_entry)
- self.quote_entry.setEnabled(False)
+
# admin buttons
- self.user_frame_addUser.clicked.connect(self.add_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)
-
+ self.select_action_box.currentTextChanged.connect(self.adminActions)
+ self.select_action_box.addItem("")
+ self.select_action_box.setCurrentText("")
+ self.admin_action.setLayout(QtWidgets.QVBoxLayout())
+ self.admin_action.setTitle("")
+
# Create instances to be used by the threads in the application
self.bookGrabber = []
self.availChecker = None
self.mail_thread = None
self.autoGrabber = None
- def elsa_context_menu(self, position):
- menu = QtWidgets.QMenu()
- # TODO: add functions
- pass
+ def setWidget(self, widget):
+ #remove all widgets from localwidget
+
+ self.hideWidget()
+ #add widget to localwidget
+ self.admin_action.layout().addWidget(widget)
+
+ def hideWidget(self):
+ try:
+ widgets = [self.admin_action.layout().itemAt(i).widget() for i in range(self.admin_action.layout().count())]
+ except AttributeError:
+ return
+ for widget in widgets:
+ self.admin_action.layout().removeWidget(widget)
+ widget.deleteLater()
+
+ def adminActions(self):
+ if self.select_action_box.currentText() == "Nutzer anlegen":
+ self.setWidget(UserCreate())
+ self.admin_action.setTitle("Nutzer anlegen")
+ elif self.select_action_box.currentText() == "Nutzer bearbeiten":
+ self.setWidget(EditUser())
+ self.admin_action.setTitle("Nutzer bearbeiten")
+ elif self.select_action_box.currentText() == "Lehrperson bearbeiten":
+ self.setWidget(EditProf())
+ self.admin_action.setTitle("Lehrperson bearbeiten")
+ else:
+ self.hideWidget()
+ self.admin_action.setTitle("")
def toggleButton(self, button):
if button.isChecked():
@@ -289,263 +281,9 @@ class Ui(Ui_Semesterapparat):
tempdelete()
sys.exit()
- def elsa_table_entry(self):
- data = ElsaAddEntry()
- 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()
- 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()
-
- 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()
- for prof in profs:
- self.elsa_prof.addItem(f"{prof[3]}, {prof[2]}")
- self.elsa_prof.setCurrentText("")
- self.elsa_date.setText("")
- self.elsa_semester.setText("")
- self.elsa_save.setEnabled(True)
- self.elsa_update.setEnabled(False)
-
- def cancel_elsa_creation(self):
- self.create_frame_elsa.setEnabled(False)
- self.elsa_cancel_create.setEnabled(False)
- self.elsa_prof.setCurrentText("")
- self.elsa_date.setText("")
- self.elsa_semester.setText("")
- self.dokument_list_elsa.setRowCount(0)
- self.table_elsa_list.setRowCount(0)
- self.quote_entry.setEnabled(False)
- self.elsa_save.setEnabled(False)
- self.elsa_update.setEnabled(False)
- def generateTodayDateElsa(self):
- self.elsa_date.setText(QDate.currentDate().toString("dd.MM.yyyy"))
-
- 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)
- self.cancel_elsa_creation()
-
- def save_elsa(self):
- if (
- self.elsa_prof.currentText() == ""
- or self.elsa_semester.text() == ""
- or self.elsa_date.text() == ""
- ):
- # warning message
- self.confirm_popup("Bitte füllen Sie alle Felder aus", title="Fehler")
-
- return
- prof = self.elsa_prof.currentText()
- semester = self.elsa_semester.text()
- date = self.elsa_date.text()
-
- self.db.createElsaApparat(date, prof, semester)
- self.cancel_elsa_creation()
- self.refresh_elsa_table()
- self.elsa_prof.clear()
- self.elsa_prof.addItem(prof)
- self.quote_entry.setEnabled(False)
-
- def refresh_elsa_table(self):
- self.elsa_table.setRowCount(0)
- elsa_apparats = self.db.getElsaApparats()
- for apparat in elsa_apparats:
- self.insert_elsa_into_table(apparat)
-
- def insert_elsa_into_table(self, apparat):
- self.elsa_table.insertRow(0)
- date = apparat[1]
- semester = apparat[2]
- prof = apparat[3]
- self.elsa_table.setItem(0, 0, QtWidgets.QTableWidgetItem(prof))
- self.elsa_table.setItem(0, 1, QtWidgets.QTableWidgetItem(date))
- self.elsa_table.setItem(0, 2, QtWidgets.QTableWidgetItem(semester))
- return (semester, 1)
-
- def open_elsa(self):
- 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)
- self.elsa_save.setEnabled(False)
- if self.elsa_prof.currentText() == prof and date == self.elsa_date.text():
- self.logger.log_info("Same prof, stopping")
- return
- self.create_frame_elsa.setEnabled(True)
- self.dokument_list_elsa.setRowCount(0)
- self.table_elsa_list.setRowCount(0)
- self.elsa_cancel_create.setEnabled(True)
- # get elsa apparats, iterate over them and find the one where all matches
- 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:
- elsa_id = apparat[0]
- print(elsa_id)
- break
- self.elsa_date.setText(date)
- self.elsa_semester.setText(semester)
- self.elsa_prof.setCurrentText(prof)
- if elsa_id is None:
- return
- documents = self.db.getElsaFiles(elsa_id)
- for document in documents:
- print(document)
- self.dokument_list_elsa.insertRow(0)
- self.dokument_list_elsa.setItem(
- 0, 0, QtWidgets.QTableWidgetItem(document[0])
- )
- self.dokument_list_elsa.setItem(
- 0, 1, QtWidgets.QTableWidgetItem(document[1])
- )
- self.dokument_list_elsa.setItem(0, 2, QtWidgets.QTableWidgetItem("❌"))
- self.dokument_list_elsa.setItem(
- 0, 3, QtWidgets.QTableWidgetItem("Database")
- )
- scans = self.db.getElsaMedia(elsa_id)
- if scans == []:
- self.create_frame_elsa.setEnabled(True)
-
- print(scans)
- # remove all rows from the table
-
- for scan in scans:
- print("Inserting row")
- print(scan["type"])
- self.setElsaRow(scan)
-
- self.quote_entry.setEnabled(True)
- # self.cancel_elsa_creation()
-
- def setElsaRow(self, scan):
- self.table_elsa_list.insertRow(0)
- self.table_elsa_list.setItem(
- 0, 0, QtWidgets.QTableWidgetItem(scan["work_author"])
- )
- self.table_elsa_list.setItem(
- 0, 1, QtWidgets.QTableWidgetItem(scan["section_author"])
- )
- self.table_elsa_list.setItem(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"]))
-
- def addDokumentElsa(self):
- print("Add document")
- picker = FilePicker()
- files = picker.pick_files()
- datalist = []
- for file in files:
- data = {}
- print(file)
- filename = file.split("/")[-1]
- filetype = filename.split(".")[-1]
- self.dokument_list_elsa.insertRow(0)
- self.dokument_list_elsa.setItem(0, 0, QtWidgets.QTableWidgetItem(filename))
- self.dokument_list_elsa.setItem(0, 1, QtWidgets.QTableWidgetItem(filetype))
- self.dokument_list_elsa.setItem(0, 2, QtWidgets.QTableWidgetItem("*"))
- self.dokument_list_elsa.setItem(0, 3, QtWidgets.QTableWidgetItem(file))
- # set tooltip of row 3 to the file path for each row
- self.dokument_list_elsa.item(0, 3).setToolTip(file)
- data["name"] = filename
- data["path"] = file
- data["type"] = filetype
- datalist.append(data)
- elsa_id = self.db.getElsaId(
- self.elsa_prof.currentText(),
- self.elsa_semester.text(),
- self.elsa_date.text(),
- )
- print(elsa_id)
- if elsa_id is None:
- # 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.setEnabled(False)
- self.refresh_elsa_table()
-
- def parseDokumentElsa(self):
- if self.dokument_list_elsa.rowCount() == 0:
- return
- else:
- # get the file path of the selected file based on it's row
- row = self.dokument_list_elsa.currentRow()
- file = self.dokument_list_elsa.item(row, 3).text()
- print(file)
- if file == "Database":
- filename = self.dokument_list_elsa.item(row, 0).text()
- filetype = self.dokument_list_elsa.item(row, 1).text()
-
- file = recreateElsaFile(
- filename=filename, filetype=filetype, open=False
- )
- 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.setElsaRow(row)
-
- self.db.addElsaMedia(row, elsa_id)
- self.quote_entry.setEnabled(True)
-
- def openDocumentElsa(self):
- # open the selected document
- row = self.dokument_list_elsa.currentRow()
- location = self.dokument_list_elsa.item(row, 3).text()
- filetype = self.dokument_list_elsa.item(row, 1).text()
- filename = self.dokument_list_elsa.item(row, 0).text()
- if location == "Database":
- recreateElsaFile(filename, filetype, open=True)
- else:
- os.system(f"{filename}")
+
+
def get_apparats(self):
alist = self.db.getAllAparats(deleted=0)
alist = natsorted(alist, key=lambda x: x[4], reverse=True)
@@ -575,62 +313,30 @@ class Ui(Ui_Semesterapparat):
layout = QtWidgets.QVBoxLayout(self.search_statistics)
layout.addWidget(self.statistics)
- print("searchpage")
+ # print("searchpage")
if self.tabWidget.currentIndex() == 0: # Apparate
# clear all entries from the table
self.tableWidget_apparate.setRowCount(0)
self.get_apparats()
if self.tabWidget.currentIndex() == 2: # Elsa
- self.elsa_cancel_create.click()
- try:
- self.elsa_statistics.removeTab(1)
- except:
- self.logger.log_debug("No tab to remove")
- self.elsa_table.setRowCount(0)
- elsa_apparats = self.db.getElsaApparats()
- elsa_apparats = natsorted(elsa_apparats, key=lambda x: x[2], reverse=True)
- graph_data = {"x": [], "y": []} # x = semester, y = number of apparats
-
- for apparat in elsa_apparats:
- print(apparat)
- data = self.insert_elsa_into_table(apparat)
- semester = data[0]
- number = data[1]
- if semester not in graph_data["x"]:
- graph_data["x"].append(semester)
- graph_data["y"].append(number)
- else:
- index = graph_data["x"].index(semester)
- graph_data["y"][index] += number
-
- generateMissing = True if len(graph_data["x"]) > 1 else False
- graph = DataGraph(
- "ELSA Apparate pro Semester",
- graph_data,
- generateMissing,
- "Anzahl der Apparate",
- )
- ic(graph_data)
- self.elsa_statistics_table.setRowCount(0)
- for i in range(len(graph_data["x"])):
- self.elsa_statistics_table.insertRow(0)
- self.elsa_statistics_table.setItem(
- 0, 0, QtWidgets.QTableWidgetItem(graph_data["x"][i])
- )
- self.elsa_statistics_table.setItem(
- 0, 1, QtWidgets.QTableWidgetItem(str(graph_data["y"][i]))
- )
- self.elsa_statistics.addTab(graph, "Graph")
+ elsa_layout = self.elsatab.layout()
+ if elsa_layout is not None:
+ # delete tabpage, re-add with same name at same position
+ return
+ layout = QtWidgets.QVBoxLayout(self.elsatab)
+ layout.addWidget(self.elsa)
+
+ pass
def edit_faculty_member_set_data(self):
# get the selected member
name = self.edit_faculty_member_select_member.currentText()
fullname = name.replace(",", "")
- print(fullname, name)
+ # print(fullname, name)
# get the data for the selected member
data = self.db.getProfByName(fullname)
# set the data
- print(data)
+ # print(data)
if data is None:
self.edit_faculty_member_title.setText("")
self.faculty_member_old_telnr.setText("")
@@ -646,176 +352,17 @@ class Ui(Ui_Semesterapparat):
else self.edit_faculty_member_title.setText("")
)
- def add_user(self):
- username = self.user_create_frame_username.text()
- password = self.user_create_frame_password.text()
- role = self.user_frame_userrole.currentText()
- if self.db.checkUsername(username):
- return
- userdata = AdminCommands().create_password(password)
- self.db.createUser(
- user=username,
- password=f"{userdata[1]}{userdata[0]}",
- salt=userdata[1],
- role=role,
- )
- self.user_create_frame_username.clear()
- self.user_create_frame_password.clear()
- self.user_frame_userrole.setCurrentText("")
- self.admin_action_changed()
+
- def delete_user(self):
- if self.user_delete_confirm.isChecked():
- username = self.user_delete_frame_user_select.currentText()
- self.db.deleteUser(username)
- self.user_delete_frame_user_select.removeItem(
- self.user_delete_frame_user_select.currentIndex()
- )
- self.user_delete_confirm.setChecked(False)
- else:
- self.user_delete_err_message.setText(
- "Bitte bestätigen Sie die Löschung des Nutzers"
- ) # TODO: implement error message
+
+
+
- def update_user_data(self):
- username = self.user_edit_frame_user_select.currentText()
- password = (
- self.user_edit_frame_new_password.text()
- if self.user_edit_frame_new_password.text() != ""
- else None
- )
- role = (
- self.user_edit_frame_role_select.currentText()
- if self.user_edit_frame_role_select.currentText() != ""
- else None
- )
- userdata = AdminCommands().create_password(password)
- data = {
- "password": f"{userdata[1]}{userdata[0]}",
- "salt": userdata[1],
- "role": role,
- }
- data = {key: value for key, value in data.items() if value is not None}
- print(data)
- self.db.updateUser(username=username, data=data)
- self.user_edit_frame_user_select.setCurrentText("")
- self.user_edit_frame_new_password.clear()
- self.user_edit_frame_role_select.setCurrentText("")
- def edit_faculty_member_action(self):
- def __gen_fullname(fname, lname, data):
- if fname == "" and lname == "":
- return data[3]
- if fname == "" and lname != "":
- return f"{lname} {data[1]}"
- if fname != "" and lname == "":
- return f"{data[2]} {fname}"
- if fname != "" and lname != "":
- return f"{lname} {fname}"
+
- # get the data and use new value if it is not none and does not mach the old value
- if self.edit_faculty_member_select_member.currentText() == "":
- return
- olddata = self.db.getFacultyMember(
- self.edit_faculty_member_select_member.currentText()
- )
- ic(olddata)
- data = olddata
- oldlname = data[2]
- oldfname = data[1]
- # take data except first and last entry
-
- titel = (
- self.edit_faculty_member_new_title.currentText()
- if self.edit_faculty_member_new_title.currentText() != "Kein Titel"
- else None
- )
- fname = (
- self.edit_faculty_member_new_surname.text()
- if self.edit_faculty_member_new_surname.text() != ""
- else self.edit_faculty_member_select_member.currentText()
- .split(" ")[1]
- .strip()
- )
- lname = (
- self.user_faculty_member_new_name.text()
- if self.user_faculty_member_new_name.text() != ""
- else self.edit_faculty_member_select_member.currentText()
- .split(" ")[0]
- .strip()
- )
- fullname = __gen_fullname(fname, lname, data)
- telnr = self.user_faculty_member_new_telnr.text()
- mail = self.user_faculty_member_new_mail.text()
- new_data = {
- "titel": titel,
- "fname": fname,
- "lname": lname,
- "fullname": fullname,
- "mail": mail,
- "telnr": telnr,
- }
- new_data = {key: value for key, value in new_data.items() if value != ""}
- self.db.updateFacultyMember(data=new_data, oldlname=oldlname, oldfname=oldfname)
- self.add_faculty_member_data()
- self.edit_faculty_member_new_title.setCurrentText("")
- self.edit_faculty_member_new_surname.clear()
- self.user_faculty_member_new_name.clear()
- self.user_faculty_member_new_telnr.clear()
- self.user_faculty_member_new_mail.clear()
-
- def hide_all(self):
- self.userCreateBox.hide()
- self.userChangeDataBox.hide()
- self.deleteUserBox.hide()
- self.profChangeDataBox.hide()
-
- def admin_action_changed(self):
- action = self.select_action_box.currentText()
- roles = self.db.getRoles()
- roles = [role[0] for role in roles]
- # remove duplicates
- roles = list(dict.fromkeys(roles))
- users = self.db.getUsers()
- users = [user[2] for user in users]
- users.remove(self.active_user)
- if "admin" in users:
- users.remove("admin")
- if action == "Nutzer anlegen":
- self.hide_all()
- self.userCreateBox.show()
- self.user_frame_userrole.clear()
- self.user_frame_userrole.addItems(roles)
- elif action == "Nutzer aktualisieren":
- self.hide_all()
- self.userChangeDataBox.show()
- self.user_edit_frame_role_select.addItems(roles)
- self.user_edit_frame_user_select.addItems(users)
- elif action == "Nutzer löschen":
- self.hide_all()
- self.deleteUserBox.show()
- self.user_delete_frame_user_select.addItems(users)
- self.user_delete_frame_user_select.setCurrentText("")
- self.user_delete_frame_user_select.addItems(users)
-
- elif action == "Lehrperson bearbeiten":
- self.hide_all()
- self.profChangeDataBox.show()
- self.add_faculty_member_data()
- self.edit_faculty_member_new_title.addItems(PROF_TITLES)
-
- else:
- self.hide_all()
- return
-
- def add_faculty_member_data(self):
- faculty_members = self.db.getFacultyMembers()
- names = [f"{member[5]}" for member in faculty_members]
- self.edit_faculty_member_select_member.clear()
- self.edit_faculty_member_select_member.addItems(names)
- self.edit_faculty_member_select_member.addItem("")
- self.edit_faculty_member_select_member.setCurrentText("")
+
def generateSemester(self, today=False):
"""Generates the current semester.
@@ -864,9 +411,9 @@ class Ui(Ui_Semesterapparat):
self.prof_mail.setText(appdata.prof_mail)
self.prof_tel_nr.setText(appdata.prof_tel)
self.app_name.setText(appdata.appname)
- print("changing dropdown app_fach from '' to ", appdata.app_fach)
+ # print("changing dropdown app_fach from '' to ", appdata.app_fach)
self.app_fach.setCurrentText(appdata.app_fach)
- print("changed dropdown app_fach to ", self.app_fach.currentText())
+ # print("changed dropdown app_fach to ", self.app_fach.currentText())
if appdata.semester is not None:
self.sem_sommer.setChecked(
True if appdata.semester.split(" ")[0] == "SoSe" else False
@@ -915,7 +462,8 @@ class Ui(Ui_Semesterapparat):
else self.sem_winter.text() + " " + self.sem_year.text()
)
appdata.prof_adis_id = self.prof_id_adis.text()
- self.add_files()
+ prof_id = self.db.getProfByName(appdata.profname)[0]
+ self.add_files(prof_id)
appdata.apparat_adis_id = self.apparat_id_adis.text()
self.db.updateApparat(appdata)
@@ -936,7 +484,7 @@ class Ui(Ui_Semesterapparat):
return popup.result()
def thread_check(self):
- print("Thread started")
+ # print("Thread started")
self.prof_mail.textChanged.connect(self.validate_prof_mail)
self.drpdwn_prof_name.editTextChanged.connect(self.validate_prof_name)
self.prof_tel_nr.textChanged.connect(self.validate_prof_tel)
@@ -1095,9 +643,9 @@ class Ui(Ui_Semesterapparat):
def update_documemt_list(self):
app_id = self.active_apparat
- prof_id = self.db.getProfId(
- self.drpdwn_prof_name.currentText().replace(", ", " ")
- )
+ prof_id = self.db.getProfByName(
+ self.drpdwn_prof_name.currentText().replace(",","")
+ )[0]
files = self.db.getFiles(app_id, prof_id)
for file in files:
self.dokument_list.insertRow(0)
@@ -1176,7 +724,8 @@ class Ui(Ui_Semesterapparat):
)
app_id = self.active_apparat
- prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
+ prof_id = self.db.getProfId(self.profdata)
+ ic(prof_id)
# check if app_id is in database
if self.db.checkApparatExistsById(app_id) is False:
# create apparat
@@ -1184,7 +733,7 @@ class Ui(Ui_Semesterapparat):
# create a thread that updates the progress label after each medium
# self.bookGrabber = None
- bookGrabber = BookGrabber()
+ bookGrabber = BookGrabber(self.active_apparat)
bookGrabber.add_values(mode=mode, prof_id=prof_id, app_id=app_id, data=data)
bookGrabber.finished.connect(self.hide_progress_label)
bookGrabber.finished.connect(self.update_app_media_list)
@@ -1192,7 +741,7 @@ class Ui(Ui_Semesterapparat):
bookGrabber.start()
while bookGrabber.isRunning():
- print("waiting for thread to finish")
+ # print("waiting for thread to finish")
QtWidgets.QApplication.processEvents()
self.__clear_fields()
@@ -1233,13 +782,13 @@ class Ui(Ui_Semesterapparat):
self.avail_status.show()
books = self.db.getBooks(
self.active_apparat,
- self.db.getProfId(self.drpdwn_prof_name.currentText()),
+ self.db.getProfId(self.profdata),
deleted=0,
)
# thread = QThread()
appnumber = self.active_apparat
- print(links)
+ # print(links)
self.availChecker = AvailChecker(links, appnumber, books=books)
# availcheck.moveToThread(thread)
# availcheck.finished.connect(thread.quit)
@@ -1282,12 +831,12 @@ class Ui(Ui_Semesterapparat):
def update_app_media_list(self):
deleted = 0 if not self.chkbx_show_del_media.isChecked() else 1
app_id = self.active_apparat
- prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
+ prof_id = self.db.getProfId(self.profdata)
books: list[dict[int, BookData, int]] = self.db.getBooks(
app_id, prof_id, deleted
)
- # print(books)
+ # # print(books)
# take the dataclass from the tuple
# booklist:list[BookData]=[book[0] for book in books]
self.tableWidget_apparat_media.setRowCount(0)
@@ -1296,7 +845,7 @@ class Ui(Ui_Semesterapparat):
book_data = book["bookdata"]
availability = book["available"]
# bd = BookData().from_string(book)
- # print(bd, type(bd))
+ # # print(bd, type(bd))
# create a new row below the last one
self.tableWidget_apparat_media.insertRow(
self.tableWidget_apparat_media.rowCount()
@@ -1386,11 +935,11 @@ class Ui(Ui_Semesterapparat):
self.drpdwn_prof_name.addItem(f"{prof[3]}, {prof[2]}")
def add_document(self):
- print("Add document")
+ # print("Add document")
picker = FilePicker()
files = picker.pick_files()
for file in files:
- print(file)
+ # print(file)
filename = file.split("/")[-1]
filetype = filename.split(".")[-1]
self.dokument_list.insertRow(0)
@@ -1401,7 +950,6 @@ class Ui(Ui_Semesterapparat):
# set tooltip of row 3 to the file path for each row
self.dokument_list.item(0, 3).setToolTip(file)
- # self.add_files()
def open_document(self):
_selected_doc_name = ""
@@ -1420,9 +968,10 @@ class Ui(Ui_Semesterapparat):
self.confirm_popup("Bitte erst ein Dokument auswählen!", title="Fehler")
return
if not _selected_doc_location == "Database":
- path = Path(_selected_doc_location)
- path: Path = path.resolve()
- path = path + "/" + _selected_doc_name
+ path = Path(_selected_doc_location + "/" + _selected_doc_name)
+ # path: Path = path.resolve()
+ # path.
+ # path = path + "/" + _selected_doc_name
if os.getenv("OS") == "Windows_NT":
path = path.resolve()
os.startfile(path)
@@ -1439,6 +988,8 @@ class Ui(Ui_Semesterapparat):
# path = Path(path)
def add_media_from_file(self):
+ app_id = self.active_apparat
+ prof_id = self.db.getProfId(self.profdata)
def __open_dialog(signatures):
dialog = QtWidgets.QDialog()
frame = parsed_titles_ui()
@@ -1452,7 +1003,6 @@ class Ui(Ui_Semesterapparat):
frame.count.setText(str(len(signatures)))
frame.toolButton.click()
data = frame.return_data()
- print(data)
# if no data was returned, return
return data
@@ -1464,7 +1014,7 @@ class Ui(Ui_Semesterapparat):
else:
# if file is selected, check for books in the file
if self.dokument_list.currentRow() != -1:
- print("File selected")
+ # print("File selected")
file = self.dokument_list.item(
self.dokument_list.currentRow(), 3
).text()
@@ -1488,7 +1038,6 @@ class Ui(Ui_Semesterapparat):
)
temp_file.close()
file = temp_file.name
- print(file)
if file_type == "pdf":
# Todo: implement parser here
self.confirm_popup(
@@ -1498,9 +1047,6 @@ class Ui(Ui_Semesterapparat):
if file_type == "csv":
signatures = csv_to_list(file)
data = __open_dialog(signatures)
- # get the app_id and prof_id
- app_id = self.active_apparat
- prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
# add the data to the database
for book in data:
if type(book) != BookData:
@@ -1519,10 +1065,6 @@ class Ui(Ui_Semesterapparat):
# if no data was returned, return
if data == []:
return
- # get the app_id and prof_id
- app_id = self.active_apparat
- prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
- # add the data to the database
for book in data:
if type(book) != BookData:
continue
@@ -1530,35 +1072,38 @@ class Ui(Ui_Semesterapparat):
bookdata=book, app_id=app_id, prof_id=prof_id
)
self.update_app_media_list()
- print(len(signatures))
+ # print(len(signatures))
def btn_check_file_threaded(self):
- print("Checking file")
+ # print("Checking file")
# get active app_id and prof_id
self.tableWidget_apparate.setEnabled(False)
self.tableWidget_apparate.setToolTip(
"Bitte warten, bis alle Medien hinzugefügt wurden"
)
app_id = self.active_apparat
- prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
+ ic(self.profdata)
+ prof_id = self.db.getProfId(self.profdata)
+
+ ic(prof_id)
# check if apparat in database
# if app_id not in database, create apparat
created = False
if not self.db.checkApparatExistsById(app_id):
# create apparat
- print("Creating apparat")
- self.btn_save_apparat(False)
+ # print("Creating apparat")
+ if self.btn_save_apparat(False) == False:
+ return
created = True
- prof_id = self.db.getProfId(self.drpdwn_prof_name.currentText())
if self.dokument_list.rowCount() == 0:
- print("No file selected")
+ # print("No file selected")
self.tableWidget_apparate.setEnabled(True)
self.tableWidget_apparate.setToolTip("")
return
else:
# if file is selected, check for books in the file
- print("File selected")
+ # print("File selected")
file = self.dokument_list.item(self.dokument_list.currentRow(), 3).text()
file_type = self.dokument_list.item(
@@ -1574,11 +1119,11 @@ class Ui(Ui_Semesterapparat):
file = recreateFile(file_name, app_id, file_type, open=False)
else:
if not created:
- self.add_files()
+ self.add_files(prof_id)
if file_type == "pdf":
# Todo: implement parser here
self.confirm_popup(
- "PDF Dateien werden noch nicht unterstützt!", title="Fehler"
+ "PDF Dateien werden nicht unterstützt!", title="Fehler"
)
return
if file_type == "csv":
@@ -1594,9 +1139,10 @@ class Ui(Ui_Semesterapparat):
signatures = [i for i in signatures if i != ""]
# ic(signatures)
- print("starting thread")
-
- autoGrabber = BookGrabber()
+ # print("starting thread")
+ if prof_id is None:
+ prof_id = self.db.getProfId(self.profdata)
+ autoGrabber = BookGrabber(self.active_apparat)
autoGrabber.add_values(
mode="ARRAY", app_id=app_id, prof_id=prof_id, data=signatures
)
@@ -1652,7 +1198,7 @@ class Ui(Ui_Semesterapparat):
def btn_save_apparat(self, clear_fields=True):
if not self.validate_fields():
self.confirm_popup("Bitte alle Pflichtfelder ausfüllen!", title="Fehler")
- return
+ return False
appd = ApparatData()
appd.appnr = self.active_apparat
appd.prof_title = (
@@ -1669,16 +1215,15 @@ class Ui(Ui_Semesterapparat):
appd.deleted = 0
appd.prof_adis_id = self.prof_id_adis.text()
appd.apparat_adis_id = self.apparat_id_adis.text()
- if self.dokument_list.rowCount() > 0:
- self.add_files()
if not self.validate_fields():
pass
error = self.db.createApparat(appd)
+
+ if self.dokument_list.rowCount() > 0:
+ self.add_files()
if error is not None:
self.confirm_popup(error.__str__(), title="Fehler")
return
- # if self.dokument_list.rowCount() > 0:
- # self.add_files()
appdata = self.db.getAllAparats()
# merge self.appdata and appdata, remove duplicates
self.apparats = list(set(self.apparats + appdata))
@@ -1695,9 +1240,9 @@ class Ui(Ui_Semesterapparat):
pid=appd.profname,
)
if clear_fields:
- print("clearing fields")
+ # print("clearing fields")
self.__clear_fields()
-
+ return True
def send_mail_preview(self):
pass
@@ -1705,7 +1250,16 @@ class Ui(Ui_Semesterapparat):
def active_apparat(self):
return self.drpdwn_app_nr.currentText()
- def add_files(self):
+ @property
+ def profdata(self):
+ return {
+ "title":self.prof_title.text(),
+ "profname": self.drpdwn_prof_name.currentText(),
+ "prof_mail":self.prof_mail.text(),
+ "prof_tel":self.prof_tel_nr.text()
+ }
+
+ def add_files(self, prof_id=None):
files = []
for i in range(self.dokument_list.rowCount()):
files.append(
@@ -1721,7 +1275,14 @@ class Ui(Ui_Semesterapparat):
self.db.insertFile(
files,
self.active_apparat,
- self.db.getProfId(self.drpdwn_prof_name.currentText()),
+ self.db.getProfId(
+ {
+ "title": self.prof_title.text(),
+ "profname": self.drpdwn_prof_name.currentText(),
+ "prof_mail": self.prof_mail.text(),
+ "prof_tel": self.prof_tel_nr.text(),
+ }
+ ),
)
def update_apparat_list(self):
@@ -1792,7 +1353,7 @@ class Ui(Ui_Semesterapparat):
reminder.exec()
if reminder.result() == QtWidgets.QDialog.DialogCode.Accepted:
data = reminder.return_message()
- print(data)
+ # print(data)
self.db.addMessage(
data,
self.active_user,
@@ -1825,12 +1386,12 @@ class Ui(Ui_Semesterapparat):
# self.line_app_info.setText(appnr)
def __delete_message(id):
- print("trying to delete message", id)
+ # print("trying to delete message", id)
self.db.deleteMessage(id)
#
selected_date = self.calendarWidget.selectedDate().toString("yyyy-MM-dd")
- # print(selected_date)
+ # # print(selected_date)
messages = self.db.getMessages(selected_date)
if messages == []:
return
@@ -1845,7 +1406,7 @@ class Ui(Ui_Semesterapparat):
settings.exec()
if settings.result() == QtWidgets.QDialog.DialogCode.Accepted:
data = settings.return_data()
- print(data)
+ # print(data)
OmegaConf.save(data, "config.yaml")
# re-load the config
OmegaConf.load("config.yaml")
@@ -1854,12 +1415,21 @@ class Ui(Ui_Semesterapparat):
def reload(self):
# create a new connection to the database, refresh table data and replace the old connection
- self.db = Database()
- self.apparats = self.db.getAllAparats(deleted=0)
- self.apparats = natsorted(self.apparats, key=lambda x: x[4], reverse=True)
- self.tableWidget_apparate.setRowCount(0)
- for apparat in self.apparats:
- self.insert_apparat_into_table(apparat)
+ # self.db = Database()
+ # self.apparats = self.db.getAllAparats(deleted=0)
+ # self.apparats = natsorted(self.apparats, key=lambda x: x[4], reverse=True)
+ # self.tableWidget_apparate.setRowCount(0)
+ # for apparat in self.apparats:
+ # self.insert_apparat_into_table(apparat)
+ # kill the process and restart the application
+ state = self.confirm_popup(
+ "Bitte das Programm neustarten, um Änderungen zu übernehemen",
+ "Einstellungen geändert",
+ )
+ if state == 1:
+ exit()
+ else:
+ pass
def media_context_menu(self, position):
menu = QtWidgets.QMenu()
@@ -1875,14 +1445,15 @@ class Ui(Ui_Semesterapparat):
book = self.tableWidget_apparat_media.item(
self.tableWidget_apparat_media.currentRow(), 1
).text()
+ prof_id = self.db.getProfId(self.profdata)
data = self.db.getBookBasedOnSignature(
app_id=self.active_apparat,
signature=book,
- prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
+ prof_id=prof_id,
)
book_id = self.db.getBookIdBasedOnSignature(
self.active_apparat,
- self.db.getProfId(self.drpdwn_prof_name.currentText()),
+ prof_id,
book,
)
widget = QtWidgets.QDialog()
@@ -1894,10 +1465,10 @@ class Ui(Ui_Semesterapparat):
widget.exec()
if widget.result() == QtWidgets.QDialog.DialogCode.Accepted:
data = bookedit.get_data()
- print(data)
- self.db.updateBookdata(data, book_id)
+ # print(data)
+ self.db.updateBookdata(bookdata=data, book_id=book_id)
# self.db.update_bookdata(data)
- print("accepted")
+ # print("accepted")
self.update_app_media_list()
else:
return
@@ -1907,6 +1478,7 @@ class Ui(Ui_Semesterapparat):
selected_apparat_id = self.tableWidget_apparate.item(
self.tableWidget_apparate.currentRow(), 0
).text()
+ prof_id = self.db.getProfId(self.profdata)
# check how many rows are selected
selected_rows = self.tableWidget_apparat_media.selectionModel().selectedRows()
if len(selected_rows) == 1:
@@ -1915,12 +1487,12 @@ class Ui(Ui_Semesterapparat):
).text()
book_id = self.db.getBookIdBasedOnSignature(
selected_apparat_id,
- prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
+ prof_id=prof_id,
signature=signature,
)
message = f'Soll das Medium "{self.tableWidget_apparat_media.item(self.tableWidget_apparat_media.currentRow(),0).text()}" wirklich gelöscht werden?'
state = self.confirm_popup(message, title="Löschen?")
- print(state)
+ # print(state)
if state == 1:
self.db.deleteBook(book_id)
self.update_app_media_list()
@@ -1933,15 +1505,15 @@ class Ui(Ui_Semesterapparat):
for r in ranges:
for row in range(r.topRow(), r.bottomRow() + 1):
rows.append(row)
- print(rows)
+ # print(rows)
message = f"Sollen die {len(rows)} Medien wirklich gelöscht werden?"
state = self.confirm_popup(message, title="Löschen?")
if state == 1:
for _ in rows:
signature = self.tableWidget_apparat_media.item(_, 1).text()
book_id = self.db.getBookIdBasedOnSignature(
- selected_apparat_id,
- prof_id=self.db.getProfId(self.drpdwn_prof_name.currentText()),
+ app_id=selected_apparat_id,
+ prof_id=prof_id,
signature=signature,
)
self.db.deleteBook(book_id)
@@ -1953,12 +1525,12 @@ class Ui(Ui_Semesterapparat):
# return data from dialog if ok is pressed
if framework.result() == QtWidgets.QDialog.DialogCode.Accepted:
data = framework.get_data()
- print(data)
+ # print(data)
# return data
selected_apparat_id = self.tableWidget_apparate.item(
self.tableWidget_apparate.currentRow(), 0
).text()
- print(selected_apparat_id)
+ # print(selected_apparat_id)
self.db.setNewSemesterDate(
selected_apparat_id, data["semester"], dauerapp=data["dauerapp"]
@@ -1982,7 +1554,7 @@ class Ui(Ui_Semesterapparat):
if not active_apparat_id:
# get column 0 of the selected row
pass
- print(active_apparat_id)
+ # print(active_apparat_id)
# profname = self.drpdwn_prof_name.currentText().replace(",", "").split(" ")
# if profname != [""]:
@@ -1990,7 +1562,7 @@ class Ui(Ui_Semesterapparat):
# if pid == "":
# pid = profname
# get the row of the clicked cell
- prof_id = self.db.getProfId(pid)
+ prof_id = self.db.getProfByName(pid)[0]
# if profname == "Name Kein":
# profname = pid
if self.app_name.text() != "":
@@ -2003,15 +1575,15 @@ class Ui(Ui_Semesterapparat):
app_subject = self.db.getApparatData(active_apparat_id, app_name)
app_subject = app_subject.app_fach
# profname = f"{profname.split(" ")[1]} {profname.split(" ")[0]}"
- print(pid)
+ # print(pid)
if prof_id:
pmail = self.db.getSpecificProfData(prof_id, ["mail"])
prof_name = self.db.getSpecificProfData(prof_id, ["fullname"])
else:
pmail = self.prof_mail.text()
- print(prof_name)
+ # print(prof_name)
# create a new thread to show the mail interface and send the mail
- print("showing mail dialog")
+ # print("showing mail dialog")
self.mail_thread = Mail_Dialog(
app_id=active_apparat_id,
prof_name=prof_name,
@@ -2040,7 +1612,7 @@ class Ui(Ui_Semesterapparat):
).text()
message = f"Soll der Apparat {selected_apparat_id} wirklich gelöscht werden?"
state = self.confirm_popup(message, title="Löschen?")
- print(state)
+ # print(state)
pid = self.__get_table_data_field(self.tableWidget_apparate, position[0], 2)
if state == 1:
self.db.deleteApparat(selected_apparat_id, generateSemesterByDate())
@@ -2050,7 +1622,7 @@ class Ui(Ui_Semesterapparat):
self.apparats.remove(apparat)
break
self.old_apparats = self.apparats
- print(self.apparats)
+ # print(self.apparats)
# remove the row from the table
self.tableWidget_apparate.removeRow(self.tableWidget_apparate.currentRow())
# send mail to prof
@@ -2058,8 +1630,8 @@ class Ui(Ui_Semesterapparat):
def launch_gui():
- print("trying to login")
- print("checking if database available")
+ # print("trying to login")
+ # print("checking if database available")
log = MyLogger("login")
log.log_info("Starting login dialog")
app = QtWidgets.QApplication(sys.argv)
@@ -2071,11 +1643,11 @@ def launch_gui():
if ui.lresult == 1:
# if login is successful, open main window
# show login dialog
- print(ui.lusername)
+ # print(ui.lusername)
MainWindow = QtWidgets.QMainWindow()
aui = Ui(MainWindow, username=ui.lusername)
- print(aui.active_user)
+ # print(aui.active_user)
MainWindow.show()
# atexit.register()
atexit.register(tempdelete)
@@ -2093,12 +1665,12 @@ def launch_gui():
"""change passwords for apparats, change passwords for users, list users, create and delete users etc"""
# open a console window
# console = ""
- print("admin")
+ # print("admin")
atexit.register(tempdelete)
if __name__ == "__main__":
- print("This is the main window")
+ # print("This is the main window")
# app = QtWidgets.QApplication(sys.argv)
# window = MainWindow()
# app.exec()
diff --git a/src/ui/widgets/MessageCalendar.py b/src/ui/widgets/MessageCalendar.py
index d1cd6b0..1cba2ce 100644
--- a/src/ui/widgets/MessageCalendar.py
+++ b/src/ui/widgets/MessageCalendar.py
@@ -34,7 +34,7 @@ class MessageCalendar(QtWidgets.QCalendarWidget):
# remove all drawn circles
for message in messages:
- print(message)
+ # print(message)
# Convert the date string to a QDate object
date = QDate.fromString(message["remind_at"], "yyyy-MM-dd")
# Store the message for the date
diff --git a/src/ui/widgets/__init__.py b/src/ui/widgets/__init__.py
index cb0b777..d2469cd 100644
--- a/src/ui/widgets/__init__.py
+++ b/src/ui/widgets/__init__.py
@@ -5,3 +5,7 @@ from .graph import DataGraph
from .calendar_entry import CalendarEntry
from .MessageCalendar import MessageCalendar
from .searchPage import SearchStatisticPage
+from .elsa_main import ElsaDialog
+from .admin_create_user import UserCreate
+from .admin_edit_user import EditUser
+from .admin_edit_prof import EditProf
\ No newline at end of file
diff --git a/src/ui/widgets/admin_create_user.py b/src/ui/widgets/admin_create_user.py
new file mode 100644
index 0000000..7d70bb3
--- /dev/null
+++ b/src/ui/widgets/admin_create_user.py
@@ -0,0 +1,38 @@
+from PyQt6 import QtWidgets, QtCore, QtGui
+from PyQt6.QtCore import pyqtSignal
+from .widget_sources.Ui_admin_create_user import Ui_Dialog
+from src.backend import AdminCommands, Database
+class UserCreate(QtWidgets.QDialog, Ui_Dialog):
+ admin_action_changed = pyqtSignal()
+ def __init__(self):
+ super(UserCreate, self).__init__()
+ self.setupUi(self)
+
+ self.user_frame_addUser.clicked.connect(self.add_user)
+
+ #Variables
+ self.db = Database()
+
+ def add_user(self):
+ username = self.user_create_frame_username.text()
+ password = self.user_create_frame_password.text()
+ role = self.user_frame_userrole.currentText()
+ if self.db.checkUsername(username):
+ return
+ userdata = AdminCommands().create_password(password)
+ self.db.createUser(
+ user=username,
+ password=f"{userdata[1]}{userdata[0]}",
+ salt=userdata[1],
+ role=role,
+ )
+ self.user_create_frame_username.clear()
+ self.user_create_frame_password.clear()
+ self.user_frame_userrole.setCurrentText("")
+ self.admin_action_changed.emit()
+
+def launch():
+ app = QtWidgets.QApplication([])
+ window = UserCreate()
+ window.show()
+ app.exec()
\ No newline at end of file
diff --git a/src/ui/widgets/admin_edit_prof.py b/src/ui/widgets/admin_edit_prof.py
new file mode 100644
index 0000000..608c5cd
--- /dev/null
+++ b/src/ui/widgets/admin_edit_prof.py
@@ -0,0 +1,118 @@
+from .widget_sources.Ui_admin_edit_prof import Ui_Dialog#
+from PyQt6 import QtWidgets, QtCore
+from PyQt6.QtCore import pyqtSignal
+from icecream import ic
+from src.backend import Database
+
+class EditProf(QtWidgets.QDialog, Ui_Dialog):
+ def __init__(self):
+ super(EditProf, self).__init__()
+ self.setupUi(self)
+ #Variables
+ self.db = Database()
+
+ self.edit_faculty_member_select_member.currentTextChanged.connect(
+ self.edit_faculty_member_set_data
+ )
+ self.update_faculty_member.clicked.connect(self.edit_faculty_member_action)
+ self.gather_data()
+
+ def gather_data(self):
+ self.add_faculty_member_data()
+
+ def add_faculty_member_data(self):
+ faculty_members = self.db.getFacultyMembers()
+ names = [f"{member[5]}" for member in faculty_members]
+ self.edit_faculty_member_select_member.clear()
+ self.edit_faculty_member_select_member.addItems(names)
+ self.edit_faculty_member_select_member.addItem("")
+ self.edit_faculty_member_select_member.setCurrentText("")
+
+ def edit_faculty_member_set_data(self):
+ # get the selected member
+ name = self.edit_faculty_member_select_member.currentText()
+ fullname = name.replace(",", "")
+ # print(fullname, name)
+ # get the data for the selected member
+ data = self.db.getProfByName(fullname)
+ # set the data
+ # print(data)
+ if data is None:
+ self.edit_faculty_member_title.setText("")
+ self.faculty_member_old_telnr.setText("")
+ self.faculty_member_oldmail.setText("")
+ self.edit_faculty_member_title.setText("")
+ else:
+ # title = data[1]
+ # if title is None:
+ # title = ""
+ # self.edit_faculty_member_title.setText(title)
+ self.faculty_member_old_telnr.setText(data[6])
+ self.faculty_member_oldmail.setText(data[5])
+ (
+ self.edit_faculty_member_title.setText(data[1])
+ if data[1] is not None
+ else self.edit_faculty_member_title.setText("")
+ )
+
+ def edit_faculty_member_action(self):
+ def __gen_fullname(fname, lname, data):
+ if fname == "" and lname == "":
+ return data[3]
+ if fname == "" and lname != "":
+ return f"{lname} {data[1]}"
+ if fname != "" and lname == "":
+ return f"{data[2]} {fname}"
+ if fname != "" and lname != "":
+ return f"{lname} {fname}"
+
+ # get the data and use new value if it is not none and does not mach the old value
+ if self.edit_faculty_member_select_member.currentText() == "":
+ return
+ olddata = self.db.getFacultyMember(
+ self.edit_faculty_member_select_member.currentText()
+ )
+ ic(olddata)
+ data = olddata
+ oldlname = data[2]
+ oldfname = data[1]
+ # take data except first and last entry
+
+ titel = (
+ self.edit_faculty_member_new_title.text()()
+ if self.edit_faculty_member_new_title.text() != ""
+ else None
+ )
+ fname = (
+ self.edit_faculty_member_new_surname.text()
+ if self.edit_faculty_member_new_surname.text() != ""
+ else self.edit_faculty_member_select_member.currentText()
+ .split(" ")[1]
+ .strip()
+ )
+ lname = (
+ self.user_faculty_member_new_name.text()
+ if self.user_faculty_member_new_name.text() != ""
+ else self.edit_faculty_member_select_member.currentText()
+ .split(" ")[0]
+ .strip()
+ )
+ fullname = __gen_fullname(fname, lname, data)
+ telnr = self.user_faculty_member_new_telnr.text()
+ mail = self.user_faculty_member_new_mail.text()
+ new_data = {
+ "titel": titel,
+ "fname": fname,
+ "lname": lname,
+ "fullname": fullname,
+ "mail": mail,
+ "telnr": telnr,
+ }
+ new_data = {key: value for key, value in new_data.items() if value != ""}
+ self.db.updateFacultyMember(data=new_data, oldlname=oldlname, oldfname=oldfname)
+ self.add_faculty_member_data()
+ self.edit_faculty_member_new_title.setText("")
+ self.edit_faculty_member_new_surname.clear()
+ self.user_faculty_member_new_name.clear()
+ self.user_faculty_member_new_telnr.clear()
+ self.user_faculty_member_new_mail.clear()
\ No newline at end of file
diff --git a/src/ui/widgets/admin_edit_user.py b/src/ui/widgets/admin_edit_user.py
new file mode 100644
index 0000000..93fe317
--- /dev/null
+++ b/src/ui/widgets/admin_edit_user.py
@@ -0,0 +1,53 @@
+from .widget_sources.Ui_admin_edit_user import Ui_Dialog
+from PyQt6 import QtWidgets, QtCore
+from PyQt6.QtCore import pyqtSignal
+from icecream import ic
+from src.backend import Database
+from src.backend import AdminCommands
+class EditUser(QtWidgets.QDialog, Ui_Dialog):
+ def __init__(self):
+ super(EditUser, self).__init__()
+ self.setupUi(self)
+ self.btn_delete_user.clicked.connect(self.delete_user)
+ self.update_user.clicked.connect(self.update_user_data)
+
+ #Variables
+ self.db = Database()
+
+ def update_user_data(self):
+ username = self.user_delete_frame_user_select.currentText()
+ password = (
+ self.user_edit_frame_new_password.text()
+ if self.user_edit_frame_new_password.text() != ""
+ else None
+ )
+ role = (
+ self.user_edit_frame_role_select.currentText()
+ if self.user_edit_frame_role_select.currentText() != ""
+ else None
+ )
+
+ userdata = AdminCommands().create_password(password)
+ data = {
+ "password": f"{userdata[1]}{userdata[0]}",
+ "salt": userdata[1],
+ "role": role,
+ }
+ data = {key: value for key, value in data.items() if value is not None}
+ # print(data)
+ self.db.updateUser(username=username, data=data)
+ self.user_delete_frame_user_select.setCurrentText("")
+ self.user_edit_frame_new_password.clear()
+ self.user_edit_frame_role_select.setCurrentText("")
+
+
+ def delete_user(self):
+ if self.user_delete_confirm.isChecked():
+ username = self.user_delete_frame_user_select.currentText()
+ self.db.deleteUser(username)
+ self.user_delete_frame_user_select.removeItem(
+ self.user_delete_frame_user_select.currentIndex()
+ )
+ self.user_delete_confirm.setChecked(False)
+ else:
+ pass
diff --git a/src/ui/widgets/calendar_entry.py b/src/ui/widgets/calendar_entry.py
index 070f69e..d113840 100644
--- a/src/ui/widgets/calendar_entry.py
+++ b/src/ui/widgets/calendar_entry.py
@@ -38,12 +38,12 @@ class CalendarEntry(QtWidgets.QDialog, Ui_Dialog):
def delete_message(self):
value = self.spin_select_message.value()
- print(value)
+ # print(value)
if value > 0:
value = value - 1
message = self.messages[value]
id = self.__get_id(message)
- print("id", id)
+ # print("id", id)
# del self.messages[value - 1]
self.spin_select_message.setMaximum(len(self.messages))
self.message_box.clear()
diff --git a/src/ui/widgets/elsa_main.py b/src/ui/widgets/elsa_main.py
new file mode 100644
index 0000000..a490666
--- /dev/null
+++ b/src/ui/widgets/elsa_main.py
@@ -0,0 +1,357 @@
+import os
+from natsort import natsorted
+from icecream import ic
+from .widget_sources.Ui_elsa_maindialog import Ui_Dialog
+from PyQt6 import QtCore, QtWidgets, QtGui
+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
+from src.ui.dialogs import ElsaAddEntry
+from src.ui.widgets import FilePicker
+from src.ui.widgets import DataGraph
+
+class ElsaDialog(QtWidgets.QDialog, Ui_Dialog):
+ def __init__(self):
+ super().__init__()
+ self.setupUi(self)
+ self.table_elsa_list.setContextMenuPolicy(
+ QtCore.Qt.ContextMenuPolicy.CustomContextMenu
+ )
+ 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)
+ 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.quote_entry.clicked.connect(self.elsa_table_entry)
+ self.quote_entry.setEnabled(False)
+
+ ##Variables
+ self.logger = MyLogger("ElsaDialog")
+ self.db = Database()
+ self.graph_data = {"x": [generateSemesterByDate()], "y": [0]}
+
+ self.loadFrame()
+ # self.show()
+
+ def elsa_context_menu(self, position):
+ menu = QtWidgets.QMenu()
+ # TODO: add functions
+ pass
+ def elsa_table_entry(self):
+ data = ElsaAddEntry()
+ 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()
+ 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()
+
+ 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()
+ for prof in profs:
+ self.elsa_prof.addItem(f"{prof[3]}, {prof[2]}")
+ self.elsa_prof.setCurrentText("")
+ self.elsa_date.setText("")
+ self.elsa_semester.setText("")
+ self.elsa_save.setEnabled(True)
+ self.elsa_update.setEnabled(False)
+ semester = generateSemesterByDate()
+ if semester in self.graph_data["x"]:
+ position = self.graph_data["x"]
+
+ def cancel_elsa_creation(self):
+ self.create_frame_elsa.setEnabled(False)
+ self.elsa_cancel_create.setEnabled(False)
+ self.elsa_prof.setCurrentText("")
+ self.elsa_date.setText("")
+ self.elsa_semester.setText("")
+ self.dokument_list_elsa.setRowCount(0)
+ self.table_elsa_list.setRowCount(0)
+ self.quote_entry.setEnabled(False)
+ self.elsa_save.setEnabled(False)
+ self.elsa_update.setEnabled(False)
+ def generateTodayDateElsa(self):
+ self.elsa_date.setText(QDate.currentDate().toString("dd.MM.yyyy"))
+
+ def addSemester(self):
+ self.elsa_semester.setText(generateSemesterByDate())
+
+ 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)
+ self.cancel_elsa_creation()
+
+ def save_elsa(self):
+ if (
+ self.elsa_prof.currentText() == ""
+ or self.elsa_semester.text() == ""
+ or self.elsa_date.text() == ""
+ ):
+ # warning message
+ self.confirm_popup("Bitte füllen Sie alle Felder aus", title="Fehler")
+
+ return
+ prof = self.elsa_prof.currentText()
+ semester = self.elsa_semester.text()
+ date = self.elsa_date.text()
+
+ self.db.createElsaApparat(date, prof, semester)
+ self.cancel_elsa_creation()
+ self.refresh_elsa_table()
+ self.elsa_prof.clear()
+ self.elsa_prof.addItem(prof)
+ self.quote_entry.setEnabled(False)
+
+ def refresh_elsa_table(self):
+ self.elsa_table.setRowCount(0)
+ elsa_apparats = self.db.getElsaApparats()
+ for apparat in elsa_apparats:
+ self.insert_elsa_into_table(apparat)
+
+ def insert_elsa_into_table(self, apparat):
+ self.elsa_table.insertRow(0)
+ date = apparat[1]
+ semester = apparat[2]
+ prof = apparat[3]
+ self.elsa_table.setItem(0, 0, QtWidgets.QTableWidgetItem(prof))
+ self.elsa_table.setItem(0, 1, QtWidgets.QTableWidgetItem(date))
+ self.elsa_table.setItem(0, 2, QtWidgets.QTableWidgetItem(semester))
+ return (semester, 1)
+
+ def open_elsa(self):
+ 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)
+ self.elsa_save.setEnabled(False)
+ if self.elsa_prof.currentText() == prof and date == self.elsa_date.text():
+ self.logger.log_info("Same prof, stopping")
+ return
+ self.create_frame_elsa.setEnabled(True)
+ self.dokument_list_elsa.setRowCount(0)
+ self.table_elsa_list.setRowCount(0)
+ self.elsa_cancel_create.setEnabled(True)
+ # get elsa apparats, iterate over them and find the one where all matches
+ 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:
+ elsa_id = apparat[0]
+ # print(elsa_id)
+ break
+ self.elsa_date.setText(date)
+ self.elsa_semester.setText(semester)
+ self.elsa_prof.setCurrentText(prof)
+ if elsa_id is None:
+ return
+ documents = self.db.getElsaFiles(elsa_id)
+ for document in documents:
+ # print(document)
+ self.dokument_list_elsa.insertRow(0)
+ self.dokument_list_elsa.setItem(
+ 0, 0, QtWidgets.QTableWidgetItem(document[0])
+ )
+ self.dokument_list_elsa.setItem(
+ 0, 1, QtWidgets.QTableWidgetItem(document[1])
+ )
+ self.dokument_list_elsa.setItem(0, 2, QtWidgets.QTableWidgetItem("❌"))
+ self.dokument_list_elsa.setItem(
+ 0, 3, QtWidgets.QTableWidgetItem("Database")
+ )
+ scans = self.db.getElsaMedia(elsa_id)
+ if scans == []:
+ self.create_frame_elsa.setEnabled(True)
+
+ # print(scans)
+ # remove all rows from the table
+
+ for scan in scans:
+ # print("Inserting row")
+ # print(scan["type"])
+ self.setElsaRow(scan)
+
+ self.quote_entry.setEnabled(True)
+ # self.cancel_elsa_creation()
+
+ def setElsaRow(self, scan):
+ self.table_elsa_list.insertRow(0)
+ self.table_elsa_list.setItem(
+ 0, 0, QtWidgets.QTableWidgetItem(scan["work_author"])
+ )
+ self.table_elsa_list.setItem(
+ 0, 1, QtWidgets.QTableWidgetItem(scan["section_author"])
+ )
+ self.table_elsa_list.setItem(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"]))
+
+ def addDokumentElsa(self):
+ # print("Add document")
+ picker = FilePicker()
+ files = picker.pick_files()
+ datalist = []
+ for file in files:
+ data = {}
+ # print(file)
+ filename = file.split("/")[-1]
+ filetype = filename.split(".")[-1]
+ self.dokument_list_elsa.insertRow(0)
+ self.dokument_list_elsa.setItem(0, 0, QtWidgets.QTableWidgetItem(filename))
+ self.dokument_list_elsa.setItem(0, 1, QtWidgets.QTableWidgetItem(filetype))
+ self.dokument_list_elsa.setItem(0, 2, QtWidgets.QTableWidgetItem("*"))
+ self.dokument_list_elsa.setItem(0, 3, QtWidgets.QTableWidgetItem(file))
+ # set tooltip of row 3 to the file path for each row
+ self.dokument_list_elsa.item(0, 3).setToolTip(file)
+ data["name"] = filename
+ data["path"] = file
+ data["type"] = filetype
+ datalist.append(data)
+ elsa_id = self.db.getElsaId(
+ self.elsa_prof.currentText(),
+ self.elsa_semester.text(),
+ self.elsa_date.text(),
+ )
+ # print(elsa_id)
+ if elsa_id is None:
+ # 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.setEnabled(False)
+ self.refresh_elsa_table()
+
+ def parseDokumentElsa(self):
+ if self.dokument_list_elsa.rowCount() == 0:
+ return
+ else:
+ # get the file path of the selected file based on it's row
+ row = self.dokument_list_elsa.currentRow()
+ file = self.dokument_list_elsa.item(row, 3).text()
+ # print(file)
+ if file == "Database":
+ filename = self.dokument_list_elsa.item(row, 0).text()
+ filetype = self.dokument_list_elsa.item(row, 1).text()
+
+ file = recreateElsaFile(
+ filename=filename, filetype=filetype, open=False
+ )
+ # 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.setElsaRow(row)
+
+ self.db.addElsaMedia(row, elsa_id)
+ self.quote_entry.setEnabled(True)
+
+ def openDocumentElsa(self):
+ # open the selected document
+ row = self.dokument_list_elsa.currentRow()
+ location = self.dokument_list_elsa.item(row, 3).text()
+ filetype = self.dokument_list_elsa.item(row, 1).text()
+ filename = self.dokument_list_elsa.item(row, 0).text()
+ if location == "Database":
+ recreateElsaFile(filename, filetype, open=True)
+ else:
+ os.system(f"{filename}")
+
+ def loadFrame(self):
+ self.elsa_cancel_create.click()
+ try:
+ self.elsa_statistics.removeTab(1)
+ except:
+ self.logger.log_debug("No tab to remove")
+ self.elsa_table.setRowCount(0)
+ elsa_apparats = self.db.getElsaApparats()
+ elsa_apparats = natsorted(elsa_apparats, key=lambda x: x[2], reverse=True)
+ # x = semester, y = number of apparats
+
+ for apparat in elsa_apparats:
+ # print(apparat)
+ data = self.insert_elsa_into_table(apparat)
+ semester = data[0]
+ number = data[1]
+ if semester not in self.graph_data["x"]:
+ self.graph_data["x"].append(semester)
+ self.graph_data["y"].append(number)
+ else:
+ index = self.graph_data["x"].index(semester)
+ self.graph_data["y"][index] += number
+
+ generateMissing = True if len(self.graph_data["x"]) > 1 else False
+ graph = DataGraph(
+ "ELSA Apparate pro Semester",
+ self.graph_data,
+ generateMissing,
+ "Anzahl der Apparate",
+ )
+ ic(self.graph_data)
+ self.elsa_statistics_table.setRowCount(0)
+ for i in range(len(self.graph_data["x"])):
+ self.elsa_statistics_table.insertRow(0)
+ self.elsa_statistics_table.setItem(
+ 0, 0, QtWidgets.QTableWidgetItem(self.graph_data["x"][i])
+ )
+ self.elsa_statistics_table.setItem(
+ 0, 1, QtWidgets.QTableWidgetItem(str(self.graph_data["y"][i]))
+ )
+ self.elsa_statistics.addTab(graph, "Graph")
+
+def launch():
+ app = QtWidgets.QApplication([])
+ window = ElsaDialog()
+ window.show()
+ app.exec()
\ No newline at end of file
diff --git a/src/ui/widgets/filepicker.py b/src/ui/widgets/filepicker.py
index fdf6ed7..5843688 100644
--- a/src/ui/widgets/filepicker.py
+++ b/src/ui/widgets/filepicker.py
@@ -33,4 +33,4 @@ if __name__ == "__main__":
app = QApplication(sys.argv)
picker = FilePicker()
files = picker.pick_files()
- print(files)
+ # print(files)
diff --git a/src/ui/widgets/searchPage.py b/src/ui/widgets/searchPage.py
index a13a73b..e4fc6f6 100644
--- a/src/ui/widgets/searchPage.py
+++ b/src/ui/widgets/searchPage.py
@@ -98,7 +98,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
self.book_search_result.setItem(
0, 1, QtWidgets.QTableWidgetItem(book[0].signature)
)
- print(book[1])
+ # print(book[1])
self.book_search_result.setItem(
0,
2,
@@ -140,7 +140,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
self.btn_notify_for_deletion.setEnabled(False)
def setStatisticTableSize(self):
- # print(self.statistics_table.size(), self.statistics_table.rowCount())
+ # # print(self.statistics_table.size(), self.statistics_table.rowCount())
size = self.statistics_table.size()
h = size.height()
w = size.width()
@@ -252,7 +252,7 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
selected_apparats.append(self.tableWidget.item(i, 2).text())
selected_apparat_rows.append(i)
# delete all selected apparats
- # print(selected_apparats)
+ # # print(selected_apparats)
self.logger.log_info(f"Deleting apparats: {selected_apparats}")
for apparat in selected_apparats:
self.db.deleteApparat(apparat, generateSemesterByDate())
@@ -442,13 +442,13 @@ class SearchStatisticPage(QtWidgets.QDialog, Ui_Dialog):
"Dieser Semesterapparat kann nicht gelöscht werden, da er bereits gelöscht wurde"
)
elif parent_depth == 2:
- print("depth", parent_depth)
+ # print("depth", parent_depth)
# apparat selected case - open the apparat in the frame
self.apparat_open.emit(apparat)
return
def emit_signal(self, *args):
- print("emit_signal", *args)
+ # print("emit_signal", *args)
self.apparat_open.emit(args[1])
diff --git a/src/ui/widgets/widget_sources/Ui_admin_create_user.py b/src/ui/widgets/widget_sources/Ui_admin_create_user.py
new file mode 100644
index 0000000..2ee7368
--- /dev/null
+++ b/src/ui/widgets/widget_sources/Ui_admin_create_user.py
@@ -0,0 +1,55 @@
+# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_create_user.ui'
+#
+# Created by: PyQt6 UI code generator 6.6.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(400, 70)
+ self.gridLayout = QtWidgets.QGridLayout(Dialog)
+ self.gridLayout.setHorizontalSpacing(10)
+ self.gridLayout.setVerticalSpacing(6)
+ self.gridLayout.setObjectName("gridLayout")
+ self.label = QtWidgets.QLabel(parent=Dialog)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+ self.user_create_frame_password = QtWidgets.QLineEdit(parent=Dialog)
+ self.user_create_frame_password.setObjectName("user_create_frame_password")
+ self.gridLayout.addWidget(self.user_create_frame_password, 1, 1, 1, 1)
+ self.user_frame_addUser = QtWidgets.QPushButton(parent=Dialog)
+ self.user_frame_addUser.setObjectName("user_frame_addUser")
+ self.gridLayout.addWidget(self.user_frame_addUser, 1, 3, 1, 1)
+ self.label_3 = QtWidgets.QLabel(parent=Dialog)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout.addWidget(self.label_3, 0, 2, 1, 1)
+ self.user_create_frame_username = QtWidgets.QLineEdit(parent=Dialog)
+ self.user_create_frame_username.setObjectName("user_create_frame_username")
+ self.gridLayout.addWidget(self.user_create_frame_username, 0, 1, 1, 1)
+ self.user_frame_userrole = QtWidgets.QComboBox(parent=Dialog)
+ self.user_frame_userrole.setEditable(True)
+ self.user_frame_userrole.setObjectName("user_frame_userrole")
+ self.gridLayout.addWidget(self.user_frame_userrole, 0, 3, 1, 1)
+ self.label_2 = QtWidgets.QLabel(parent=Dialog)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+ Dialog.setTabOrder(self.user_create_frame_username, self.user_frame_userrole)
+ Dialog.setTabOrder(self.user_frame_userrole, self.user_create_frame_password)
+ Dialog.setTabOrder(self.user_create_frame_password, self.user_frame_addUser)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.label.setText(_translate("Dialog", "Nutzername"))
+ self.user_frame_addUser.setText(_translate("Dialog", "Anlegen"))
+ self.label_3.setText(_translate("Dialog", "Rolle"))
+ self.label_2.setText(_translate("Dialog", "Passwort"))
diff --git a/src/ui/widgets/widget_sources/Ui_admin_create_user.ui.py b/src/ui/widgets/widget_sources/Ui_admin_create_user.ui.py
new file mode 100644
index 0000000..1e8b7a0
--- /dev/null
+++ b/src/ui/widgets/widget_sources/Ui_admin_create_user.ui.py
@@ -0,0 +1,8 @@
+# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_create_user.ui.iytYFY'
+#
+# Created by: PyQt6 UI code generator 6.6.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
diff --git a/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py b/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py
new file mode 100644
index 0000000..75e2f4a
--- /dev/null
+++ b/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py
@@ -0,0 +1,139 @@
+# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_edit_prof.ui'
+#
+# Created by: PyQt6 UI code generator 6.6.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.setWindowModality(QtCore.Qt.WindowModality.ApplicationModal)
+ Dialog.resize(540, 281)
+ self.gridLayout = QtWidgets.QGridLayout(Dialog)
+ self.gridLayout.setObjectName("gridLayout")
+ self.label = QtWidgets.QLabel(parent=Dialog)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+ self.gridLayout_2 = QtWidgets.QGridLayout()
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.faculty_member_old_telnr = QtWidgets.QLineEdit(parent=Dialog)
+ self.faculty_member_old_telnr.setReadOnly(True)
+ self.faculty_member_old_telnr.setObjectName("faculty_member_old_telnr")
+ self.gridLayout_2.addWidget(self.faculty_member_old_telnr, 1, 1, 1, 1)
+ self.edit_faculty_member_title = QtWidgets.QLineEdit(parent=Dialog)
+ sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.edit_faculty_member_title.sizePolicy().hasHeightForWidth())
+ self.edit_faculty_member_title.setSizePolicy(sizePolicy)
+ self.edit_faculty_member_title.setReadOnly(True)
+ self.edit_faculty_member_title.setObjectName("edit_faculty_member_title")
+ self.gridLayout_2.addWidget(self.edit_faculty_member_title, 0, 0, 1, 1)
+ self.label_4 = QtWidgets.QLabel(parent=Dialog)
+ self.label_4.setObjectName("label_4")
+ self.gridLayout_2.addWidget(self.label_4, 2, 0, 1, 1)
+ self.label_3 = QtWidgets.QLabel(parent=Dialog)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout_2.addWidget(self.label_3, 1, 0, 1, 1)
+ self.edit_faculty_member_select_member = QtWidgets.QComboBox(parent=Dialog)
+ self.edit_faculty_member_select_member.setObjectName("edit_faculty_member_select_member")
+ self.gridLayout_2.addWidget(self.edit_faculty_member_select_member, 0, 1, 1, 1)
+ self.faculty_member_oldmail = QtWidgets.QLineEdit(parent=Dialog)
+ self.faculty_member_oldmail.setReadOnly(True)
+ self.faculty_member_oldmail.setObjectName("faculty_member_oldmail")
+ self.gridLayout_2.addWidget(self.faculty_member_oldmail, 2, 1, 1, 1)
+ self.gridLayout_2.setColumnStretch(0, 1)
+ self.gridLayout.addLayout(self.gridLayout_2, 0, 2, 1, 1)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.delete_faculty_member = QtWidgets.QPushButton(parent=Dialog)
+ self.delete_faculty_member.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+ self.delete_faculty_member.setObjectName("delete_faculty_member")
+ self.horizontalLayout.addWidget(self.delete_faculty_member)
+ spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.horizontalLayout.addItem(spacerItem)
+ self.update_faculty_member = QtWidgets.QPushButton(parent=Dialog)
+ self.update_faculty_member.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+ self.update_faculty_member.setObjectName("update_faculty_member")
+ self.horizontalLayout.addWidget(self.update_faculty_member)
+ self.gridLayout.addLayout(self.horizontalLayout, 3, 2, 1, 1)
+ self.line = QtWidgets.QFrame(parent=Dialog)
+ self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+ self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+ self.line.setObjectName("line")
+ self.gridLayout.addWidget(self.line, 1, 2, 1, 1)
+ self.line_2 = QtWidgets.QFrame(parent=Dialog)
+ self.line_2.setLineWidth(1)
+ self.line_2.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+ self.line_2.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+ self.line_2.setObjectName("line_2")
+ self.gridLayout.addWidget(self.line_2, 1, 0, 1, 1)
+ self.gridLayout_3 = QtWidgets.QGridLayout()
+ self.gridLayout_3.setObjectName("gridLayout_3")
+ self.label_9 = QtWidgets.QLabel(parent=Dialog)
+ self.label_9.setObjectName("label_9")
+ self.gridLayout_3.addWidget(self.label_9, 4, 0, 1, 1)
+ self.edit_faculty_member_new_title = QtWidgets.QLineEdit(parent=Dialog)
+ self.edit_faculty_member_new_title.setObjectName("edit_faculty_member_new_title")
+ self.gridLayout_3.addWidget(self.edit_faculty_member_new_title, 0, 1, 1, 1)
+ self.user_faculty_member_new_telnr = QtWidgets.QLineEdit(parent=Dialog)
+ self.user_faculty_member_new_telnr.setObjectName("user_faculty_member_new_telnr")
+ self.gridLayout_3.addWidget(self.user_faculty_member_new_telnr, 3, 1, 1, 1)
+ self.label_8 = QtWidgets.QLabel(parent=Dialog)
+ self.label_8.setObjectName("label_8")
+ self.gridLayout_3.addWidget(self.label_8, 3, 0, 1, 1)
+ self.label_7 = QtWidgets.QLabel(parent=Dialog)
+ self.label_7.setObjectName("label_7")
+ self.gridLayout_3.addWidget(self.label_7, 2, 0, 1, 1)
+ self.user_faculty_member_new_mail = QtWidgets.QLineEdit(parent=Dialog)
+ self.user_faculty_member_new_mail.setObjectName("user_faculty_member_new_mail")
+ self.gridLayout_3.addWidget(self.user_faculty_member_new_mail, 4, 1, 1, 1)
+ self.user_faculty_member_new_name = QtWidgets.QLineEdit(parent=Dialog)
+ self.user_faculty_member_new_name.setObjectName("user_faculty_member_new_name")
+ self.gridLayout_3.addWidget(self.user_faculty_member_new_name, 2, 1, 1, 1)
+ self.edit_faculty_member_new_surname = QtWidgets.QLineEdit(parent=Dialog)
+ self.edit_faculty_member_new_surname.setObjectName("edit_faculty_member_new_surname")
+ self.gridLayout_3.addWidget(self.edit_faculty_member_new_surname, 1, 1, 1, 1)
+ self.label_5 = QtWidgets.QLabel(parent=Dialog)
+ self.label_5.setObjectName("label_5")
+ self.gridLayout_3.addWidget(self.label_5, 0, 0, 1, 1)
+ self.label_6 = QtWidgets.QLabel(parent=Dialog)
+ self.label_6.setObjectName("label_6")
+ self.gridLayout_3.addWidget(self.label_6, 1, 0, 1, 1)
+ self.gridLayout.addLayout(self.gridLayout_3, 2, 2, 1, 1)
+ self.label_2 = QtWidgets.QLabel(parent=Dialog)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
+ self.line_3 = QtWidgets.QFrame(parent=Dialog)
+ self.line_3.setFrameShape(QtWidgets.QFrame.Shape.VLine)
+ self.line_3.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+ self.line_3.setObjectName("line_3")
+ self.gridLayout.addWidget(self.line_3, 0, 1, 1, 1)
+ self.line_4 = QtWidgets.QFrame(parent=Dialog)
+ self.line_4.setFrameShape(QtWidgets.QFrame.Shape.VLine)
+ self.line_4.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+ self.line_4.setObjectName("line_4")
+ self.gridLayout.addWidget(self.line_4, 2, 1, 1, 1)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.label.setText(_translate("Dialog", "Alte Angaben"))
+ self.label_4.setText(_translate("Dialog", "Mail"))
+ self.label_3.setText(_translate("Dialog", "Telefonnummer"))
+ self.delete_faculty_member.setText(_translate("Dialog", "Löschen"))
+ self.update_faculty_member.setText(_translate("Dialog", "Aktualisieren"))
+ self.label_9.setText(_translate("Dialog", "Mail"))
+ self.label_8.setText(_translate("Dialog", "Telefonnummer"))
+ self.label_7.setText(_translate("Dialog", "Nachname"))
+ self.label_5.setText(_translate("Dialog", "Titel"))
+ self.label_6.setText(_translate("Dialog", "Vorname"))
+ self.label_2.setText(_translate("Dialog", "Neue Angaben"))
diff --git a/src/ui/widgets/widget_sources/Ui_admin_edit_user.py b/src/ui/widgets/widget_sources/Ui_admin_edit_user.py
new file mode 100644
index 0000000..df53449
--- /dev/null
+++ b/src/ui/widgets/widget_sources/Ui_admin_edit_user.py
@@ -0,0 +1,60 @@
+# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\admin_edit_user.ui'
+#
+# Created by: PyQt6 UI code generator 6.6.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(382, 100)
+ self.gridLayout = QtWidgets.QGridLayout(Dialog)
+ self.gridLayout.setObjectName("gridLayout")
+ self.label_3 = QtWidgets.QLabel(parent=Dialog)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout.addWidget(self.label_3, 0, 2, 1, 1)
+ self.user_edit_frame_role_select = QtWidgets.QComboBox(parent=Dialog)
+ self.user_edit_frame_role_select.setObjectName("user_edit_frame_role_select")
+ self.gridLayout.addWidget(self.user_edit_frame_role_select, 0, 3, 1, 1)
+ self.label = QtWidgets.QLabel(parent=Dialog)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+ self.user_edit_frame_new_password = QtWidgets.QLineEdit(parent=Dialog)
+ self.user_edit_frame_new_password.setObjectName("user_edit_frame_new_password")
+ self.gridLayout.addWidget(self.user_edit_frame_new_password, 1, 1, 1, 1)
+ self.user_delete_frame_user_select = QtWidgets.QComboBox(parent=Dialog)
+ self.user_delete_frame_user_select.setObjectName("user_delete_frame_user_select")
+ self.gridLayout.addWidget(self.user_delete_frame_user_select, 0, 1, 1, 1)
+ self.label_2 = QtWidgets.QLabel(parent=Dialog)
+ self.label_2.setObjectName("label_2")
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.user_delete_confirm = QtWidgets.QCheckBox(parent=Dialog)
+ self.user_delete_confirm.setObjectName("user_delete_confirm")
+ self.horizontalLayout.addWidget(self.user_delete_confirm)
+ self.btn_delete_user = QtWidgets.QPushButton(parent=Dialog)
+ self.btn_delete_user.setObjectName("btn_delete_user")
+ self.horizontalLayout.addWidget(self.btn_delete_user)
+ self.gridLayout.addLayout(self.horizontalLayout, 2, 1, 1, 1)
+ self.update_user = QtWidgets.QPushButton(parent=Dialog)
+ self.update_user.setObjectName("update_user")
+ self.gridLayout.addWidget(self.update_user, 2, 3, 1, 1)
+
+ self.retranslateUi(Dialog)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.label_3.setText(_translate("Dialog", "Rolle"))
+ self.label.setText(_translate("Dialog", "Nutzername"))
+ self.label_2.setText(_translate("Dialog", "Passwort"))
+ self.user_delete_confirm.setText(_translate("Dialog", "Löschen?"))
+ self.btn_delete_user.setText(_translate("Dialog", "Löschen"))
+ self.update_user.setText(_translate("Dialog", " Aktualisieren "))
diff --git a/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
new file mode 100644
index 0000000..4979139
--- /dev/null
+++ b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
@@ -0,0 +1,259 @@
+# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\elsa_maindialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.6.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again. Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_Dialog(object):
+ def setupUi(self, Dialog):
+ Dialog.setObjectName("Dialog")
+ Dialog.resize(1237, 848)
+ self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.verticalLayout_2 = QtWidgets.QVBoxLayout()
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
+ spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.verticalLayout_2.addItem(spacerItem)
+ self.elsa_add_new = QtWidgets.QPushButton(parent=Dialog)
+ self.elsa_add_new.setObjectName("elsa_add_new")
+ self.verticalLayout_2.addWidget(self.elsa_add_new)
+ self.elsa_cancel_create = QtWidgets.QPushButton(parent=Dialog)
+ self.elsa_cancel_create.setEnabled(False)
+ self.elsa_cancel_create.setObjectName("elsa_cancel_create")
+ self.verticalLayout_2.addWidget(self.elsa_cancel_create)
+ spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.verticalLayout_2.addItem(spacerItem1)
+ self.horizontalLayout.addLayout(self.verticalLayout_2)
+ self.elsa_table = QtWidgets.QTableWidget(parent=Dialog)
+ self.elsa_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
+ self.elsa_table.setObjectName("elsa_table")
+ self.elsa_table.setColumnCount(3)
+ self.elsa_table.setRowCount(0)
+ item = QtWidgets.QTableWidgetItem()
+ self.elsa_table.setHorizontalHeaderItem(0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.elsa_table.setHorizontalHeaderItem(1, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.elsa_table.setHorizontalHeaderItem(2, item)
+ self.elsa_table.horizontalHeader().setDefaultSectionSize(374)
+ self.horizontalLayout.addWidget(self.elsa_table)
+ self.verticalLayout.addLayout(self.horizontalLayout)
+ self.create_frame_elsa = QtWidgets.QGroupBox(parent=Dialog)
+ self.create_frame_elsa.setFlat(False)
+ self.create_frame_elsa.setObjectName("create_frame_elsa")
+ self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.create_frame_elsa)
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.gridLayout_2 = QtWidgets.QGridLayout()
+ self.gridLayout_2.setObjectName("gridLayout_2")
+ self.label = QtWidgets.QLabel(parent=self.create_frame_elsa)
+ self.label.setObjectName("label")
+ self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
+ self.elsa_semester = QtWidgets.QLineEdit(parent=self.create_frame_elsa)
+ self.elsa_semester.setObjectName("elsa_semester")
+ self.gridLayout_2.addWidget(self.elsa_semester, 2, 1, 1, 1)
+ self.active_semester = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.active_semester.setText("")
+ self.active_semester.setAutoDefault(False)
+ self.active_semester.setDefault(False)
+ self.active_semester.setFlat(True)
+ self.active_semester.setObjectName("active_semester")
+ self.gridLayout_2.addWidget(self.active_semester, 2, 2, 1, 1)
+ self.elsa_date = QtWidgets.QLineEdit(parent=self.create_frame_elsa)
+ self.elsa_date.setObjectName("elsa_date")
+ self.gridLayout_2.addWidget(self.elsa_date, 1, 1, 1, 1)
+ spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.gridLayout_2.addItem(spacerItem2, 3, 0, 1, 1)
+ self.elsa_date_today = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.elsa_date_today.setText("")
+ self.elsa_date_today.setAutoDefault(False)
+ self.elsa_date_today.setDefault(False)
+ self.elsa_date_today.setFlat(True)
+ self.elsa_date_today.setObjectName("elsa_date_today")
+ self.gridLayout_2.addWidget(self.elsa_date_today, 1, 2, 1, 1)
+ self.label_3 = QtWidgets.QLabel(parent=self.create_frame_elsa)
+ self.label_3.setObjectName("label_3")
+ self.gridLayout_2.addWidget(self.label_3, 2, 0, 1, 1)
+ self.label_2 = QtWidgets.QLabel(parent=self.create_frame_elsa)
+ 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.setObjectName("elsa_prof")
+ self.gridLayout_2.addWidget(self.elsa_prof, 0, 1, 1, 1)
+ self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_4.setObjectName("horizontalLayout_4")
+ self.elsa_save = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.elsa_save.setObjectName("elsa_save")
+ self.horizontalLayout_4.addWidget(self.elsa_save)
+ self.elsa_update = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.elsa_update.setObjectName("elsa_update")
+ self.horizontalLayout_4.addWidget(self.elsa_update)
+ self.gridLayout_2.addLayout(self.horizontalLayout_4, 4, 1, 1, 1)
+ self.horizontalLayout_2.addLayout(self.gridLayout_2)
+ spacerItem3 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.horizontalLayout_2.addItem(spacerItem3)
+ 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.setRowCount(0)
+ item = QtWidgets.QTableWidgetItem()
+ self.dokument_list_elsa.setHorizontalHeaderItem(0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.dokument_list_elsa.setHorizontalHeaderItem(1, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.dokument_list_elsa.setHorizontalHeaderItem(2, item)
+ self.dokument_list_elsa.horizontalHeader().setDefaultSectionSize(116)
+ self.dokument_list_elsa.horizontalHeader().setMinimumSectionSize(43)
+ self.dokument_list_elsa.verticalHeader().setMinimumSectionSize(25)
+ self.horizontalLayout_2.addWidget(self.dokument_list_elsa)
+ self.verticalLayout_3 = QtWidgets.QVBoxLayout()
+ self.verticalLayout_3.setSpacing(10)
+ self.verticalLayout_3.setObjectName("verticalLayout_3")
+ self.btn_add_document_elsa = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.btn_add_document_elsa.setObjectName("btn_add_document_elsa")
+ self.verticalLayout_3.addWidget(self.btn_add_document_elsa)
+ self.btn_open_document_elsa = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.btn_open_document_elsa.setObjectName("btn_open_document_elsa")
+ self.verticalLayout_3.addWidget(self.btn_open_document_elsa)
+ self.check_file_elsa = QtWidgets.QPushButton(parent=self.create_frame_elsa)
+ self.check_file_elsa.setObjectName("check_file_elsa")
+ self.verticalLayout_3.addWidget(self.check_file_elsa)
+ spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.verticalLayout_3.addItem(spacerItem4)
+ self.horizontalLayout_2.addLayout(self.verticalLayout_3)
+ self.verticalLayout.addWidget(self.create_frame_elsa)
+ self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_6.setObjectName("horizontalLayout_6")
+ self.quote_entry = QtWidgets.QPushButton(parent=Dialog)
+ self.quote_entry.setObjectName("quote_entry")
+ self.horizontalLayout_6.addWidget(self.quote_entry)
+ spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.horizontalLayout_6.addItem(spacerItem5)
+ self.verticalLayout.addLayout(self.horizontalLayout_6)
+ self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
+ self.horizontalLayout_5.setObjectName("horizontalLayout_5")
+ self.table_elsa_list = QtWidgets.QTableWidget(parent=Dialog)
+ self.table_elsa_list.setObjectName("table_elsa_list")
+ self.table_elsa_list.setColumnCount(12)
+ self.table_elsa_list.setRowCount(0)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(1, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(2, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(3, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(4, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(5, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(6, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(7, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(8, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(9, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(10, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.table_elsa_list.setHorizontalHeaderItem(11, item)
+ self.table_elsa_list.horizontalHeader().setDefaultSectionSize(85)
+ self.table_elsa_list.horizontalHeader().setMinimumSectionSize(31)
+ self.horizontalLayout_5.addWidget(self.table_elsa_list)
+ self.elsa_statistics = QtWidgets.QTabWidget(parent=Dialog)
+ self.elsa_statistics.setObjectName("elsa_statistics")
+ self.tab = QtWidgets.QWidget()
+ self.tab.setObjectName("tab")
+ self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.tab)
+ self.horizontalLayout_7.setObjectName("horizontalLayout_7")
+ self.elsa_statistics_table = QtWidgets.QTableWidget(parent=self.tab)
+ self.elsa_statistics_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
+ self.elsa_statistics_table.setTextElideMode(QtCore.Qt.TextElideMode.ElideMiddle)
+ self.elsa_statistics_table.setObjectName("elsa_statistics_table")
+ self.elsa_statistics_table.setColumnCount(2)
+ self.elsa_statistics_table.setRowCount(0)
+ item = QtWidgets.QTableWidgetItem()
+ self.elsa_statistics_table.setHorizontalHeaderItem(0, item)
+ item = QtWidgets.QTableWidgetItem()
+ self.elsa_statistics_table.setHorizontalHeaderItem(1, item)
+ self.elsa_statistics_table.horizontalHeader().setDefaultSectionSize(169)
+ self.horizontalLayout_7.addWidget(self.elsa_statistics_table)
+ self.elsa_statistics.addTab(self.tab, "")
+ self.horizontalLayout_5.addWidget(self.elsa_statistics)
+ self.horizontalLayout_5.setStretch(0, 7)
+ self.horizontalLayout_5.setStretch(1, 3)
+ self.verticalLayout.addLayout(self.horizontalLayout_5)
+ self.verticalLayout.setStretch(1, 1)
+ self.verticalLayout.setStretch(3, 2)
+
+ self.retranslateUi(Dialog)
+ self.elsa_statistics.setCurrentIndex(0)
+ QtCore.QMetaObject.connectSlotsByName(Dialog)
+
+ def retranslateUi(self, Dialog):
+ _translate = QtCore.QCoreApplication.translate
+ Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
+ self.elsa_add_new.setText(_translate("Dialog", "Neuer Auftrag"))
+ self.elsa_cancel_create.setText(_translate("Dialog", "Abbrechen"))
+ item = self.elsa_table.horizontalHeaderItem(0)
+ item.setText(_translate("Dialog", "Professor"))
+ item = self.elsa_table.horizontalHeaderItem(1)
+ item.setText(_translate("Dialog", "Datum"))
+ item = self.elsa_table.horizontalHeaderItem(2)
+ item.setText(_translate("Dialog", "Semester"))
+ self.create_frame_elsa.setTitle(_translate("Dialog", "Auftragsdaten"))
+ self.label.setText(_translate("Dialog", "Professor"))
+ self.label_3.setText(_translate("Dialog", "Semester"))
+ self.label_2.setText(_translate("Dialog", "Auftragsdatum"))
+ self.elsa_save.setText(_translate("Dialog", "Speichern"))
+ self.elsa_update.setText(_translate("Dialog", "Aktualisieren"))
+ item = self.dokument_list_elsa.horizontalHeaderItem(0)
+ item.setText(_translate("Dialog", "Dokumentname"))
+ item = self.dokument_list_elsa.horizontalHeaderItem(1)
+ item.setText(_translate("Dialog", "Dateityp"))
+ item = self.dokument_list_elsa.horizontalHeaderItem(2)
+ item.setText(_translate("Dialog", "Neu?"))
+ 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"
+"hinzufügen"))
+ self.quote_entry.setText(_translate("Dialog", " Eintrag zitieren "))
+ item = self.table_elsa_list.horizontalHeaderItem(0)
+ item.setText(_translate("Dialog", "Autor(en) des Werks"))
+ item = self.table_elsa_list.horizontalHeaderItem(1)
+ item.setText(_translate("Dialog", "Autor(en) des Beitrags"))
+ item = self.table_elsa_list.horizontalHeaderItem(2)
+ item.setText(_translate("Dialog", "Jahr"))
+ item = self.table_elsa_list.horizontalHeaderItem(3)
+ item.setText(_translate("Dialog", "Heft"))
+ item = self.table_elsa_list.horizontalHeaderItem(4)
+ item.setText(_translate("Dialog", "Auflage"))
+ item = self.table_elsa_list.horizontalHeaderItem(5)
+ item.setText(_translate("Dialog", "Titel des Werks"))
+ item = self.table_elsa_list.horizontalHeaderItem(6)
+ item.setText(_translate("Dialog", "Beitragstitel"))
+ item = self.table_elsa_list.horizontalHeaderItem(7)
+ item.setText(_translate("Dialog", "Seiten"))
+ item = self.table_elsa_list.horizontalHeaderItem(8)
+ item.setText(_translate("Dialog", "Ort"))
+ item = self.table_elsa_list.horizontalHeaderItem(9)
+ item.setText(_translate("Dialog", "Verlag"))
+ item = self.table_elsa_list.horizontalHeaderItem(10)
+ item.setText(_translate("Dialog", "Signatur"))
+ item = self.table_elsa_list.horizontalHeaderItem(11)
+ item.setText(_translate("Dialog", "Art"))
+ item = self.elsa_statistics_table.horizontalHeaderItem(0)
+ item.setText(_translate("Dialog", "Semester"))
+ item = self.elsa_statistics_table.horizontalHeaderItem(1)
+ item.setText(_translate("Dialog", "Zugang"))
+ self.elsa_statistics.setTabText(self.elsa_statistics.indexOf(self.tab), _translate("Dialog", "Tabelle"))
diff --git a/src/ui/widgets/widget_sources/admin_create_user.ui b/src/ui/widgets/widget_sources/admin_create_user.ui
new file mode 100644
index 0000000..d66efa1
--- /dev/null
+++ b/src/ui/widgets/widget_sources/admin_create_user.ui
@@ -0,0 +1,74 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 400
+ 70
+
+
+
+ Dialog
+
+
+
+ 10
+
+
+ 6
+
+ -
+
+
+ Nutzername
+
+
+
+ -
+
+
+ -
+
+
+ Anlegen
+
+
+
+ -
+
+
+ Rolle
+
+
+
+ -
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Passwort
+
+
+
+
+
+
+ user_create_frame_username
+ user_frame_userrole
+ user_create_frame_password
+ user_frame_addUser
+
+
+
+
diff --git a/src/ui/widgets/widget_sources/admin_edit_prof.ui b/src/ui/widgets/widget_sources/admin_edit_prof.ui
new file mode 100644
index 0000000..2db4f2a
--- /dev/null
+++ b/src/ui/widgets/widget_sources/admin_edit_prof.ui
@@ -0,0 +1,211 @@
+
+
+ Dialog
+
+
+ Qt::ApplicationModal
+
+
+
+ 0
+ 0
+ 540
+ 281
+
+
+
+ Dialog
+
+
+ -
+
+
+ Alte Angaben
+
+
+
+ -
+
+
-
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ true
+
+
+
+ -
+
+
+ Mail
+
+
+
+ -
+
+
+ Telefonnummer
+
+
+
+ -
+
+
+ -
+
+
+ true
+
+
+
+
+
+ -
+
+
-
+
+
+ Qt::NoFocus
+
+
+ Löschen
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::NoFocus
+
+
+ Aktualisieren
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ 1
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+
+ Mail
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ Telefonnummer
+
+
+
+ -
+
+
+ Nachname
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ Titel
+
+
+
+ -
+
+
+ Vorname
+
+
+
+
+
+ -
+
+
+ Neue Angaben
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+
+
+
+
+
diff --git a/src/ui/widgets/widget_sources/admin_edit_user.ui b/src/ui/widgets/widget_sources/admin_edit_user.ui
new file mode 100644
index 0000000..c1d50cd
--- /dev/null
+++ b/src/ui/widgets/widget_sources/admin_edit_user.ui
@@ -0,0 +1,76 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 382
+ 100
+
+
+
+ Dialog
+
+
+ -
+
+
+ Rolle
+
+
+
+ -
+
+
+ -
+
+
+ Nutzername
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ Passwort
+
+
+
+ -
+
+
-
+
+
+ Löschen?
+
+
+
+ -
+
+
+ Löschen
+
+
+
+
+
+ -
+
+
+ Aktualisieren
+
+
+
+
+
+
+
+
diff --git a/src/ui/widgets/widget_sources/elsa_maindialog.ui b/src/ui/widgets/widget_sources/elsa_maindialog.ui
new file mode 100644
index 0000000..1a41bf6
--- /dev/null
+++ b/src/ui/widgets/widget_sources/elsa_maindialog.ui
@@ -0,0 +1,427 @@
+
+
+ Dialog
+
+
+
+ 0
+ 0
+ 1237
+ 848
+
+
+
+ Dialog
+
+
+ -
+
+
-
+
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+ Neuer Auftrag
+
+
+
+ -
+
+
+ false
+
+
+ Abbrechen
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+ -
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ 374
+
+
+
+ Professor
+
+
+
+
+ Datum
+
+
+
+
+ Semester
+
+
+
+
+
+
+ -
+
+
+ Auftragsdaten
+
+
+ false
+
+
+
-
+
+
-
+
+
+ Professor
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+ false
+
+
+ false
+
+
+ true
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+
+
+
+ false
+
+
+ false
+
+
+ true
+
+
+
+ -
+
+
+ Semester
+
+
+
+ -
+
+
+ Auftragsdatum
+
+
+
+ -
+
+
+ -
+
+
-
+
+
+ Speichern
+
+
+
+ -
+
+
+ Aktualisieren
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ 43
+
+
+ 116
+
+
+ 25
+
+
+
+ Dokumentname
+
+
+
+
+ Dateityp
+
+
+
+
+ Neu?
+
+
+
+
+ -
+
+
+ 10
+
+
-
+
+
+ Dokument hinzufügen
+
+
+
+ -
+
+
+ Dokument öffnen
+
+
+
+ -
+
+
+ Medien aus Dokument
+hinzufügen
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Eintrag zitieren
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ 31
+
+
+ 85
+
+
+
+ Autor(en) des Werks
+
+
+
+
+ Autor(en) des Beitrags
+
+
+
+
+ Jahr
+
+
+
+
+ Heft
+
+
+
+
+ Auflage
+
+
+
+
+ Titel des Werks
+
+
+
+
+ Beitragstitel
+
+
+
+
+ Seiten
+
+
+
+
+ Ort
+
+
+
+
+ Verlag
+
+
+
+
+ Signatur
+
+
+
+
+ Art
+
+
+
+
+ -
+
+
+ 0
+
+
+
+ Tabelle
+
+
+
-
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ Qt::ElideMiddle
+
+
+ 169
+
+
+
+ Semester
+
+
+
+
+ Zugang
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+