diff --git a/src/ui/Ui_semesterapparat_ui.py b/src/ui/Ui_semesterapparat_ui.py
index 8add521..72d5357 100644
--- a/src/ui/Ui_semesterapparat_ui.py
+++ b/src/ui/Ui_semesterapparat_ui.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\semesterapparat_ui.ui'
#
-# Created by: PyQt6 UI code generator 6.6.1
+# Created by: PyQt6 UI code generator 6.7.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.
@@ -160,6 +160,9 @@ class Ui_MainWindow(object):
self.avail_status = QtWidgets.QLabel(parent=self.gridLayoutWidget_2)
self.avail_status.setObjectName("avail_status")
self.horizontalLayout_5.addWidget(self.avail_status)
+ self.automation_add_selected_books = QtWidgets.QPushButton(parent=self.gridLayoutWidget_2)
+ self.automation_add_selected_books.setObjectName("automation_add_selected_books")
+ self.horizontalLayout_5.addWidget(self.automation_add_selected_books)
spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout_5.addItem(spacerItem5)
self.gridLayout_2.addLayout(self.horizontalLayout_5, 4, 0, 1, 1)
@@ -581,6 +584,13 @@ class Ui_MainWindow(object):
self.valid_check_telnr.setText("")
self.valid_check_telnr.setAutoRaise(True)
self.valid_check_telnr.setObjectName("valid_check_telnr")
+ self.pushButton = QtWidgets.QPushButton(parent=self.app_group_box)
+ self.pushButton.setGeometry(QtCore.QRect(270, 180, 161, 24))
+ font = QtGui.QFont()
+ font.setPointSize(9)
+ font.setBold(False)
+ self.pushButton.setFont(font)
+ self.pushButton.setObjectName("pushButton")
self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1)
self.add_medium = QtWidgets.QPushButton(parent=self.createApparat)
self.add_medium.setGeometry(QtCore.QRect(3, 695, 121, 20))
@@ -805,6 +815,8 @@ class Ui_MainWindow(object):
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.automation_add_selected_books)
+ MainWindow.setTabOrder(self.automation_add_selected_books, self.pushButton)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
@@ -832,6 +844,7 @@ class Ui_MainWindow(object):
self.progress_label.setText(_translate("MainWindow", "Medium x/y"))
self.label_20.setText(_translate("MainWindow", "Medien werden geprüft"))
self.avail_status.setText(_translate("MainWindow", "TextLabel"))
+ self.automation_add_selected_books.setText(_translate("MainWindow", "Ausgewählte als verfügbar markieren"))
self.tableWidget_apparat_media.setSortingEnabled(True)
item = self.tableWidget_apparat_media.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Buchtitel"))
@@ -891,6 +904,7 @@ class Ui_MainWindow(object):
self.label_6.setText(_translate("MainWindow", "Semester"))
self.valid_check_profname.setStatusTip(_translate("MainWindow", "Format: Nachname, Vorname"))
self.valid_check_mail.setStatusTip(_translate("MainWindow", "mail@irgendwas.wasanderes"))
+ self.pushButton.setText(_translate("MainWindow", "Speichern und anlegen"))
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"))
diff --git a/src/ui/Ui_switchtest.py b/src/ui/Ui_switchtest.py
new file mode 100644
index 0000000..b2895b4
--- /dev/null
+++ b/src/ui/Ui_switchtest.py
@@ -0,0 +1,50 @@
+# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\switchtest.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_MainWindow(object):
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.setWindowModality(QtCore.Qt.WindowModality.WindowModal)
+ MainWindow.resize(800, 600)
+ self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
+ self.centralwidget.setObjectName("centralwidget")
+ self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.select_action_box = QtWidgets.QComboBox(parent=self.centralwidget)
+ self.select_action_box.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+ 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.verticalLayout.addWidget(self.select_action_box)
+ self.localwidget = QtWidgets.QWidget(parent=self.centralwidget)
+ self.localwidget.setObjectName("localwidget")
+ self.verticalLayout.addWidget(self.localwidget)
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 22))
+ self.menubar.setObjectName("menubar")
+ MainWindow.setMenuBar(self.menubar)
+ self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
+ self.statusbar.setObjectName("statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+
+ self.retranslateUi(MainWindow)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ def retranslateUi(self, MainWindow):
+ _translate = QtCore.QCoreApplication.translate
+ MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
+ self.select_action_box.setItemText(0, _translate("MainWindow", "Aktion auswählen"))
+ self.select_action_box.setItemText(1, _translate("MainWindow", "edit_prof"))
+ self.select_action_box.setItemText(2, _translate("MainWindow", "add_user"))
+ self.select_action_box.setItemText(3, _translate("MainWindow", "edit_user"))
diff --git a/src/ui/dialogs/mail.py b/src/ui/dialogs/mail.py
index 4cae971..f43d484 100644
--- a/src/ui/dialogs/mail.py
+++ b/src/ui/dialogs/mail.py
@@ -1,19 +1,36 @@
import os
import sys
-from omegaconf import OmegaConf
from PyQt6 import QtCore, QtGui, QtWidgets
-from src import Icon
+from src import Icon, settings as config
from src.logic.log import MyLogger
from .dialog_sources.Ui_mail_preview import Ui_eMailPreview as MailPreviewDialog
from .mailTemplate import MailTemplateDialog
-config = OmegaConf.load("config.yaml")
logger = MyLogger("Mail")
+empty_signature = """
+
+
+
+
+"""
class Mail_Dialog(QtWidgets.QDialog, MailPreviewDialog):
def __init__(
@@ -73,11 +90,11 @@ class Mail_Dialog(QtWidgets.QDialog, MailPreviewDialog):
pass
def determine_signature(self):
- if config.mail.signature is None:
+ if config.mail.signature is empty_signature or config.mail.signature == "":
return """Mit freundlichen Grüßen
Ihr Semesterapparatsteam
Mail: semesterapparate@ph-freiburg.de
-Tel.: 0761/682-778"""
+Tel.: 0761/682-778 | 07617682-545"""
else:
return config.mail.signature
@@ -140,10 +157,10 @@ Tel.: 0761/682-778"""
tolist = [self.prof_mail, "semesterapparate@ph-freiburg.de"]
self.btn_okay.setText("Mail wird gesendet")
- smtp_server = config["mail"]["smtp_server"]
- port: int = config["mail"]["port"]
- sender_email = config["mail"]["sender"]
- password = config["mail"]["password"]
+ smtp_server = config.mail.smtp_server
+ port: int = config.mail.port
+ sender_email = config.mail.sender
+ password = config.mail.password
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = self.prof_mail
@@ -155,18 +172,21 @@ Tel.: 0761/682-778"""
message.attach(MIMEText(mail_body, "html"))
mail = message.as_string()
- server = smtplib.SMTP_SSL(smtp_server, port)
- # server.starttls()
+ with smtplib.SMTP_SSL(smtp_server, port) as server:
+ server.connect(smtp_server, port)
+ # server.connect(smtp_server, port)
# server.auth(mechanism="PLAIN")
- if config["mail"]["use_user_name"] is True:
- # print(config["mail"]["user_name"])
- server.login(config["mail"]["user_name"], password)
- else:
- server.login(sender_email, password)
- server.sendmail(sender_email, tolist, mail)
+ if config.mail.use_user_name is True:
+ # print(config["mail"]["user_name"])
+
+ server.login(config.mail.user_name, password)
+ else:
+ server.login(sender_email, password)
+ server.sendmail(sender_email, tolist, mail)
+
# print("Mail sent")
# end active process
- server.quit()
+ server.quit()
logger.log_info("Mail sent, closing connection to server and dialog")
# close the dialog
diff --git a/src/ui/dialogs/mailTemplate.py b/src/ui/dialogs/mailTemplate.py
index d075fb6..af13d64 100644
--- a/src/ui/dialogs/mailTemplate.py
+++ b/src/ui/dialogs/mailTemplate.py
@@ -201,7 +201,7 @@ Content-Transfer-Encoding: 8bit
# warning dialog
Icon("template_fail", self.testTemplate)
dialog = QtWidgets.QMessageBox()
- dialog.setIcon(Icon("warning").icon)
+ Icon("warning", dialog)
dialog.setText("Folgende Platzhalter fehlen im Template:")
diff --git a/src/ui/semesterapparat_ui.ui b/src/ui/semesterapparat_ui.ui
index 5fce33f..d291359 100644
--- a/src/ui/semesterapparat_ui.ui
+++ b/src/ui/semesterapparat_ui.ui
@@ -74,7 +74,7 @@
Qt::NoFocus
- 2
+ 0
@@ -362,6 +362,13 @@
+ -
+
+
+ Ausgewählte als verfügbar markieren
+
+
+
-
@@ -1477,6 +1484,25 @@
true
+
+
+
+ 270
+ 180
+ 161
+ 24
+
+
+
+
+ 9
+ false
+
+
+
+ Speichern und anlegen
+
+
@@ -1951,6 +1977,8 @@
select_action_box
prof_id_adis
apparat_id_adis
+ automation_add_selected_books
+ pushButton
diff --git a/src/ui/userInterface.py b/src/ui/userInterface.py
index 0950fc8..7dcdc5b 100644
--- a/src/ui/userInterface.py
+++ b/src/ui/userInterface.py
@@ -4,23 +4,19 @@ import os
import sys
import tempfile
-import time
import webbrowser
from pathlib import Path
-import threading
from icecream import ic
from natsort import natsorted
-from omegaconf import OmegaConf
from PyQt6 import QtCore, QtGui, QtWidgets
-from PyQt6.QtCore import QDate, QThread
+from PyQt6.QtCore import QThread
from PyQt6.QtGui import QRegularExpressionValidator
-from src import Icon
+from src import Icon, settings
from src.backend import (
Database,
generateSemesterByDate,
-
recreateFile,
tempdelete,
)
@@ -57,7 +53,6 @@ from src.ui import (
EditProf
)
-config = OmegaConf.load("config.yaml")
valid_input = (0, 0, 0, 0, 0, 0)
@@ -634,8 +629,10 @@ class Ui(Ui_Semesterapparat):
self.dokument_list.setItem(0, 1, QtWidgets.QTableWidgetItem(file[1]))
self.dokument_list.setItem(0, 2, QtWidgets.QTableWidgetItem(""))
self.dokument_list.setItem(0, 3, QtWidgets.QTableWidgetItem("Database"))
+ self.dokument_list.item(0, 0).setToolTip(file[0])
def btn_create_new_apparat(self):
+ self.frame_creation_progress.show()
self.groupBox.show()
self.groupBox_2.show()
global valid_input
@@ -655,6 +652,7 @@ class Ui(Ui_Semesterapparat):
self.app_fach.setEnabled(True)
self.check_send_mail.show()
self.check_file.setEnabled(False)
+ self.drpdwn_app_nr.setFocus()
if self.tableWidget_apparat_media.rowCount() > 0:
self.tableWidget_apparat_media.setRowCount(0)
# clear all fields
@@ -685,10 +683,6 @@ class Ui(Ui_Semesterapparat):
self.label_info.hide()
def btn_add_medium(self):
- if not self.app_group_box.isEnabled():
- self.confirm_popup("Bitte erst einen Apparat auswählen!", title="Fehler")
- return
-
media = medienadder_ui()
media.exec()
mode = media.mode
@@ -726,7 +720,7 @@ class Ui(Ui_Semesterapparat):
# print("waiting for thread to finish")
QtWidgets.QApplication.processEvents()
- self.__clear_fields()
+ # self.__clear_fields()
else:
return
@@ -934,7 +928,7 @@ class Ui(Ui_Semesterapparat):
self.dokument_list.setItem(0, 3, QtWidgets.QTableWidgetItem(file))
# set tooltip of row 3 to the file path for each row
self.dokument_list.item(0, 3).setToolTip(file)
-
+ self.dokument_list.item(0, 0).setToolTip(filename)
def open_document(self):
_selected_doc_name = ""
@@ -967,10 +961,6 @@ class Ui(Ui_Semesterapparat):
recreateFile(
_selected_doc_name, self.active_apparat, filetype=_selected_doc_filetype
)
- # # if ~ in path, replace it with the home directory
- # if "~" in path:
- # path = path.replace("~", str(Path.home()))
- # path = Path(path)
def add_media_from_file(self):
app_id = self.active_apparat
@@ -1391,16 +1381,15 @@ class Ui(Ui_Semesterapparat):
dialog.repaintSignal.connect(lambda: self.calendarWidget.reload(selected_date))
def open_settings(self):
- settings = Settings(self.active_user)
- settings.exec()
- if settings.result() == QtWidgets.QDialog.DialogCode.Accepted:
- data = settings.return_data()
- # print(data)
- OmegaConf.save(data, "config.yaml")
- # re-load the config
- OmegaConf.load("config.yaml")
- self.logger.log_info("Saved settings to config.yaml")
- self.reload()
+ print(settings.dict())
+ settingsUI = Settings(self.active_user)
+ settingsUI.exec()
+
+ if settingsUI.result() == QtWidgets.QDialog.DialogCode.Accepted:
+ settingsUI.save()
+ print(settings.dict())
+
+ # self.reload()
def reload(self):
state = self.confirm_popup(
@@ -1477,7 +1466,6 @@ class Ui(Ui_Semesterapparat):
if state == 1:
self.db.deleteBook(book_id)
self.update_app_media_list()
- self.contact_prof(mail="deleted", location="")
pass
else:
# get all selected rows
diff --git a/src/ui/widgets/widget_sources/Ui_admin_create_user.py b/src/ui/widgets/widget_sources/Ui_admin_create_user.py
index 2ee7368..df6ac8c 100644
--- a/src/ui/widgets/widget_sources/Ui_admin_create_user.py
+++ b/src/ui/widgets/widget_sources/Ui_admin_create_user.py
@@ -1,6 +1,6 @@
# 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
+# Created by: PyQt6 UI code generator 6.7.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
index 75e2f4a..c3c9b69 100644
--- a/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py
+++ b/src/ui/widgets/widget_sources/Ui_admin_edit_prof.py
@@ -1,6 +1,6 @@
# 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
+# Created by: PyQt6 UI code generator 6.7.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_user.py b/src/ui/widgets/widget_sources/Ui_admin_edit_user.py
index df53449..71ebac8 100644
--- a/src/ui/widgets/widget_sources/Ui_admin_edit_user.py
+++ b/src/ui/widgets/widget_sources/Ui_admin_edit_user.py
@@ -1,6 +1,6 @@
# 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
+# Created by: PyQt6 UI code generator 6.7.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_calendar_entry.py b/src/ui/widgets/widget_sources/Ui_calendar_entry.py
index 9ffad15..f328ed7 100644
--- a/src/ui/widgets/widget_sources/Ui_calendar_entry.py
+++ b/src/ui/widgets/widget_sources/Ui_calendar_entry.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\calendar_entry.ui'
#
-# Created by: PyQt6 UI code generator 6.6.1
+# Created by: PyQt6 UI code generator 6.7.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_elsa_maindialog.py b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
index f4cf38e..40b557a 100644
--- a/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
+++ b/src/ui/widgets/widget_sources/Ui_elsa_maindialog.py
@@ -1,6 +1,6 @@
# 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
+# Created by: PyQt6 UI code generator 6.7.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_search_statistic_page.py b/src/ui/widgets/widget_sources/Ui_search_statistic_page.py
index 625d76f..15983ad 100644
--- a/src/ui/widgets/widget_sources/Ui_search_statistic_page.py
+++ b/src/ui/widgets/widget_sources/Ui_search_statistic_page.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\widgets\widget_sources\search_statistic_page.ui'
#
-# Created by: PyQt6 UI code generator 6.6.1
+# Created by: PyQt6 UI code generator 6.7.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.