various changes, new dialogs

This commit is contained in:
WorldTeacher
2024-06-20 14:55:54 +02:00
parent 9a336e1803
commit aabc38d059
18 changed files with 935 additions and 3669 deletions

View File

@@ -14,6 +14,7 @@ from .popup_confirm import ConfirmDialog as popus_confirm
from .reminder import ReminderDialog as reminder_ui
from .settings import Settings
from .about import About
from .elsa_gen_confirm import ElsaGenConfirm
__all__ = [
"ext_app",

View File

@@ -0,0 +1,22 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\app_status.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_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(300, 500)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))

View File

@@ -0,0 +1,76 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\elsa_generate_citation.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(564, 517)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.select_type = QtWidgets.QFrame(parent=Dialog)
self.select_type.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.select_type.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.select_type.setObjectName("select_type")
self.verticalLayout = QtWidgets.QVBoxLayout(self.select_type)
self.verticalLayout.setObjectName("verticalLayout")
self.radio_mono = QtWidgets.QRadioButton(parent=self.select_type)
self.radio_mono.setObjectName("radio_mono")
self.verticalLayout.addWidget(self.radio_mono)
self.radio_zs = QtWidgets.QRadioButton(parent=self.select_type)
self.radio_zs.setObjectName("radio_zs")
self.verticalLayout.addWidget(self.radio_zs)
self.radio_hg = QtWidgets.QRadioButton(parent=self.select_type)
self.radio_hg.setObjectName("radio_hg")
self.verticalLayout.addWidget(self.radio_hg)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.verticalLayout_2.addWidget(self.select_type)
self.check = QtWidgets.QGroupBox(parent=Dialog)
font = QtGui.QFont()
font.setBold(True)
self.check.setFont(font)
self.check.setObjectName("check")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.check)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.citation_style_result = QtWidgets.QStackedWidget(parent=self.check)
font = QtGui.QFont()
font.setBold(False)
self.citation_style_result.setFont(font)
self.citation_style_result.setObjectName("citation_style_result")
self.monografie = QtWidgets.QWidget()
self.monografie.setObjectName("monografie")
self.citation_style_result.addWidget(self.monografie)
self.zsaufsatz = QtWidgets.QWidget()
self.zsaufsatz.setObjectName("zsaufsatz")
self.citation_style_result.addWidget(self.zsaufsatz)
self.herausgeberwerk = QtWidgets.QWidget()
self.herausgeberwerk.setObjectName("herausgeberwerk")
self.citation_style_result.addWidget(self.herausgeberwerk)
self.verticalLayout_3.addWidget(self.citation_style_result)
self.pushButton = QtWidgets.QPushButton(parent=self.check)
self.pushButton.setObjectName("pushButton")
self.verticalLayout_3.addWidget(self.pushButton, 0, QtCore.Qt.AlignmentFlag.AlignRight)
self.verticalLayout_2.addWidget(self.check)
self.verticalLayout_2.setStretch(0, 20)
self.verticalLayout_2.setStretch(1, 80)
self.retranslateUi(Dialog)
self.citation_style_result.setCurrentIndex(2)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.radio_mono.setText(_translate("Dialog", "Monografie"))
self.radio_zs.setText(_translate("Dialog", "Zeitschriftenaufsatz"))
self.radio_hg.setText(_translate("Dialog", "Herausgeberwerk"))
self.check.setTitle(_translate("Dialog", "Daten"))
self.pushButton.setText(_translate("Dialog", "Bestätigen"))

View File

@@ -0,0 +1,120 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\elsa_generator_confirm.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(530, 210)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
Dialog.setSizePolicy(sizePolicy)
Dialog.setMaximumSize(QtCore.QSize(530, 210))
self.horizontalLayout = QtWidgets.QHBoxLayout(Dialog)
self.horizontalLayout.setObjectName("horizontalLayout")
self.groupBox = QtWidgets.QGroupBox(parent=Dialog)
font = QtGui.QFont()
font.setBold(True)
self.groupBox.setFont(font)
self.groupBox.setObjectName("groupBox")
self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout.setObjectName("gridLayout")
self.label = QtWidgets.QLabel(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
self.bookauthor = QtWidgets.QLineEdit(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.bookauthor.setFont(font)
self.bookauthor.setObjectName("bookauthor")
self.gridLayout.addWidget(self.bookauthor, 5, 1, 1, 1)
self.book_title = QtWidgets.QLineEdit(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.book_title.setFont(font)
self.book_title.setObjectName("book_title")
self.gridLayout.addWidget(self.book_title, 3, 1, 1, 1)
self.label_5 = QtWidgets.QLabel(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 5, 0, 1, 1)
self.pages = QtWidgets.QLineEdit(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.pages.setFont(font)
self.pages.setObjectName("pages")
self.gridLayout.addWidget(self.pages, 4, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
self.label_3 = QtWidgets.QLabel(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
self.label_4 = QtWidgets.QLabel(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1)
self.chapter_title = QtWidgets.QLineEdit(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.chapter_title.setFont(font)
self.chapter_title.setObjectName("chapter_title")
self.gridLayout.addWidget(self.chapter_title, 1, 1, 1, 1)
self.chapter_authors = QtWidgets.QLineEdit(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.chapter_authors.setFont(font)
self.chapter_authors.setObjectName("chapter_authors")
self.gridLayout.addWidget(self.chapter_authors, 2, 1, 1, 1)
self.label_6 = QtWidgets.QLabel(parent=self.groupBox)
font = QtGui.QFont()
font.setBold(False)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 0, 1, 1, 1)
self.horizontalLayout.addWidget(self.groupBox)
self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
self.buttonBox.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Vertical)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setCenterButtons(False)
self.buttonBox.setObjectName("buttonBox")
self.horizontalLayout.addWidget(self.buttonBox)
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.groupBox.setTitle(_translate("Dialog", "Angaben korrekt?"))
self.label.setText(_translate("Dialog", "Kapiteltitel"))
self.label_5.setText(_translate("Dialog", "Herausgebername"))
self.label_2.setText(_translate("Dialog", "Autor(en)"))
self.label_3.setText(_translate("Dialog", "Buchtitel"))
self.label_4.setText(_translate("Dialog", "Seite(n)"))
self.label_6.setText(_translate("Dialog", "Hier können fehlerhafte / fehlende Daten geändert werden"))

View File

@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>564</width>
<height>517</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="20,80">
<item>
<widget class="QFrame" name="select_type">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QRadioButton" name="radio_mono">
<property name="text">
<string>Monografie</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radio_zs">
<property name="text">
<string>Zeitschriftenaufsatz</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radio_hg">
<property name="text">
<string>Herausgeberwerk</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="check">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Daten</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QStackedWidget" name="citation_style_result">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="currentIndex">
<number>2</number>
</property>
<widget class="QWidget" name="monografie"/>
<widget class="QWidget" name="zsaufsatz"/>
<widget class="QWidget" name="herausgeberwerk"/>
</widget>
</item>
<item alignment="Qt::AlignRight">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>Bestätigen</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>530</width>
<height>210</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>530</width>
<height>210</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Angaben korrekt?</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Kapiteltitel</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="bookauthor">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="book_title">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_5">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Herausgebername</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="pages">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Autor(en)</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Buchtitel</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Seite(n)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="chapter_title">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="chapter_authors">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_6">
<property name="font">
<font>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Hier können fehlerhafte / fehlende Daten geändert werden</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,9 @@
from .dialog_sources.Ui_elsa_generate_citation import Ui_Dialog
from PyQt6 import QtWidgets
class ElsaCitation(QtWidgets.QDialog, Ui_Dialog):
def __init__(self, parent=None, data=None):
super(ElsaCitation, self).__init__(parent)
self.setupUi(self)
self.radio_hg.clicked.connect(self.set_page)

View File

@@ -0,0 +1,41 @@
from .dialog_sources.Ui_elsa_generator_confirm import Ui_Dialog
from PyQt6 import QtCore, QtWidgets, QtGui
class ElsaGenConfirm(QtWidgets.QDialog, Ui_Dialog):
def __init__(self, parent=None, data=None):
super(ElsaGenConfirm, self).__init__(parent)
self.setupUi(self)
self.setWindowTitle("Daten überprüfen")
self.chapter_title.setText(data["chapter"])
self.bookauthor.setText(data["book_author"])
self.book_title.setText(data["title"])
self.pages.setText(data["pages"])
self.chapter_authors.setText(data["text_author"])
self.buttonBox.button(
QtWidgets.QDialogButtonBox.StandardButton.Ok
).clicked.connect(self.send)
self.buttonBox.button(
QtWidgets.QDialogButtonBox.StandardButton.Cancel
).clicked.connect(self.close)
self.confirmed_data = None
def send(self):
data = {
"chapter": self.chapter_title.text(),
"book_author": self.bookauthor.text(),
"title": self.book_title.text(),
"pages": self.pages.text(),
"text_author": self.chapter_authors.text(),
}
# return data and close dialog
self.confirmed_data = data
self.accept()
def launch(data):
app = QtWidgets.QApplication([])
dialog = ElsaGenConfirm(data=data)
dialog.show()
app.exec()
return dialog.confirmed_data

View File

@@ -34,7 +34,7 @@ class Mail_Dialog(QtWidgets.QDialog, MailPreviewDialog):
# app_subject,
# prof_name,
)
logger.log_info("Setting up mail dialog")
self.appid = app_id
self.appname = app_name
self.subject = app_subject
@@ -90,7 +90,7 @@ Tel.: 0761/682-778"""
def load_mail_templates(self):
print("loading mail templates")
logger.log_info("Loading mail templates")
mail_templates = os.listdir("mail_vorlagen")
logger.log_info(f"Mail templates: {mail_templates}")
for template in mail_templates:
@@ -109,8 +109,10 @@ Tel.: 0761/682-778"""
return f"Guten Tag {prof},"
def set_mail(self):
logger.log_info("Setting mail")
email_template = self.comboBox.currentText()
if email_template == "":
logger.log_debug("No mail template selected")
return
with open(f"mail_vorlagen/{email_template}", "r", encoding="utf-8") as f:
mail_template = f.read()
@@ -175,23 +177,6 @@ Tel.: 0761/682-778"""
# close the dialog
self.accept()
# # create a temporary file
# mail_header = self.mail_header.text()
# mail_body = self.mail_body.toHtml()
# mail = self.mail_data + mail_body
# mail = mail.replace("Subject:", f"Subject: {mail_header}")
# directory = config["database"]["tempdir"]
# directory = directory.replace("~", str(os.path.expanduser("~")))
# with tempfile.NamedTemporaryFile(
# mode="w", delete=False, suffix=".eml", encoding="utf-8", dir=directory
# ) as f:
# f.write(mail)
# self.mail_path = f.name
# print(self.mail_path)
# # open the file using thunderbird
# subprocess.Popen([f"{self.mail_path}"])
# # delete the file
# # os.remove(self.mail_path)
def launch_gui(app_id="", app_name="", app_subject="", prof_name="", prof_mail=""):