update to files

This commit is contained in:
WorldTeacher
2024-02-13 14:13:40 +01:00
parent 8ef39dfade
commit e4a8ac7d41
13 changed files with 410 additions and 98 deletions

View File

@@ -0,0 +1,92 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\mail_preview.ui'
#
# Created by: PyQt6 UI code generator 6.3.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_eMailPreview(object):
def setupUi(self, eMailPreview):
eMailPreview.setObjectName("eMailPreview")
eMailPreview.resize(676, 676)
self.buttonBox = QtWidgets.QDialogButtonBox(eMailPreview)
self.buttonBox.setGeometry(QtCore.QRect(310, 630, 341, 32))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setObjectName("buttonBox")
self.gridLayoutWidget = QtWidgets.QWidget(eMailPreview)
self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 10, 661, 621))
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.label_5 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 0, 0, 1, 1)
self.prof_name = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.prof_name.setObjectName("prof_name")
self.gridLayout.addWidget(self.prof_name, 2, 2, 1, 1)
self.label_3 = QtWidgets.QLabel(self.gridLayoutWidget)
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.mail_name = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.mail_name.setObjectName("mail_name")
self.gridLayout.addWidget(self.mail_name, 1, 2, 1, 1)
self.label_2 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
self.label_4 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
self.mail_header = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.mail_header.setObjectName("mail_header")
self.gridLayout.addWidget(self.mail_header, 3, 2, 1, 1)
self.label = QtWidgets.QLabel(self.gridLayoutWidget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
self.comboBox = QtWidgets.QComboBox(self.gridLayoutWidget)
self.comboBox.setObjectName("comboBox")
self.gridLayout.addWidget(self.comboBox, 0, 2, 1, 1)
self.mail_body = QtWidgets.QTextEdit(self.gridLayoutWidget)
self.mail_body.setObjectName("mail_body")
self.gridLayout.addWidget(self.mail_body, 5, 2, 1, 1)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.gender_male = QtWidgets.QRadioButton(self.gridLayoutWidget)
self.gender_male.setObjectName("gender_male")
self.horizontalLayout_3.addWidget(self.gender_male)
self.gender_female = QtWidgets.QRadioButton(self.gridLayoutWidget)
self.gender_female.setObjectName("gender_female")
self.horizontalLayout_3.addWidget(self.gender_female)
self.gender_non = QtWidgets.QRadioButton(self.gridLayoutWidget)
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)
self.horizontalLayout_3.addItem(spacerItem)
self.gridLayout.addLayout(self.horizontalLayout_3, 4, 2, 1, 1)
self.label_6 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 4, 0, 1, 1)
self.retranslateUi(eMailPreview)
self.buttonBox.accepted.connect(eMailPreview.accept) # type: ignore
self.buttonBox.rejected.connect(eMailPreview.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(eMailPreview)
def retranslateUi(self, eMailPreview):
_translate = QtCore.QCoreApplication.translate
eMailPreview.setWindowTitle(_translate("eMailPreview", "Dialog"))
self.label_5.setText(_translate("eMailPreview", "Art"))
self.label_3.setText(_translate("eMailPreview", "Mail"))
self.label_2.setText(_translate("eMailPreview", "Prof"))
self.label_4.setText(_translate("eMailPreview", "Betreff"))
self.label.setText(_translate("eMailPreview", "eMail"))
self.gender_male.setText(_translate("eMailPreview", "M"))
self.gender_female.setText(_translate("eMailPreview", "W"))
self.gender_non.setText(_translate("eMailPreview", "Divers"))
self.label_6.setText(_translate("eMailPreview", "Geschlecht"))

View File

@@ -1,4 +1,4 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\reminder.ui'
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\reminder.ui'
#
# Created by: PyQt6 UI code generator 6.3.1
#
@@ -6,14 +6,14 @@
# run again. Do not edit this file unless you know what you are doing.
from PyQt6 import QtCore, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(369, 308)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
def setupUi(self, Erinnerung):
Erinnerung.setObjectName("Erinnerung")
Erinnerung.resize(369, 308)
self.buttonBox = QtWidgets.QDialogButtonBox(Erinnerung)
self.buttonBox.setGeometry(QtCore.QRect(190, 270, 161, 32))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(
@@ -21,29 +21,29 @@ class Ui_Dialog(object):
| QtWidgets.QDialogButtonBox.StandardButton.Ok
)
self.buttonBox.setObjectName("buttonBox")
self.message_box = QtWidgets.QTextEdit(Dialog)
self.message_box = QtWidgets.QTextEdit(Erinnerung)
self.message_box.setGeometry(QtCore.QRect(10, 60, 341, 201))
self.message_box.setObjectName("message_box")
self.label = QtWidgets.QLabel(Dialog)
self.label = QtWidgets.QLabel(Erinnerung)
self.label.setGeometry(QtCore.QRect(10, 30, 61, 21))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2 = QtWidgets.QLabel(Erinnerung)
self.label_2.setGeometry(QtCore.QRect(150, 30, 81, 21))
self.label_2.setObjectName("label_2")
self.dateEdit = QtWidgets.QDateEdit(Dialog)
self.dateEdit = QtWidgets.QDateEdit(Erinnerung)
self.dateEdit.setGeometry(QtCore.QRect(240, 30, 110, 22))
self.dateEdit.setObjectName("dateEdit")
self.dateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
self.dateEdit.setDate(QtCore.QDate.currentDate())
self.retranslateUi(Erinnerung)
self.buttonBox.accepted.connect(Erinnerung.accept) # type: ignore
self.buttonBox.rejected.connect(Erinnerung.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Erinnerung)
def retranslateUi(self, Dialog):
def retranslateUi(self, Erinnerung):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Nachricht:"))
self.label_2.setText(_translate("Dialog", "Erinnerung am:"))
Erinnerung.setWindowTitle(_translate("Erinnerung", "Dialog"))
self.label.setText(_translate("Erinnerung", "Nachricht:"))
self.label_2.setText(_translate("Erinnerung", "Erinnerung am:"))
def return_message(self) -> dict:
return {

View File

@@ -7,7 +7,7 @@
from PyQt6 import QtCore, QtGui, QtWidgets
from src.backend.semester import generateSemesterByDate
class Ui_Dialog(object):
def setupUi(self, Dialog):

View File

@@ -1,25 +1,40 @@
import subprocess
import tempfile
import os
from PyQt6 import QtCore, QtGui, QtWidgets
from src.ui.dialogs.mail_preview import Ui_Dialog
from src.ui.dialogs.Ui_mail_preview import Ui_eMailPreview as Ui_Dialog
from omegaconf import OmegaConf
config = OmegaConf.load("config.yaml")
class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self, parent=None):
def __init__(self, parent=None, app_id="", app_name="", app_subject="", prof_name="", data = None):
super().__init__(parent)
self.setupUi(self)
self.appid = ""
self.appid = app_id
self.appname = app_name
self.subject = app_subject
self.profname = prof_name
self.mail_data = ""
self.data = None
self.data = data
self.buttonBox.accepted.connect(self.save_mail)
self.comboBox.selec
def set_data(self, data: dict):
self.prof_name.setText(data["prof_name"])
self.mail_name.setText(data["mail_name"])
# assign data["general"] to self.data
self.data = data["general"]
# def set_data(self, data: dict):
# print(data)
# self.prof_name.setText(data["prof_name"])
# self.mail_name.setText(data["mail_name"])
# # assign data["general"] to self.data
# self.data = data["general"]
def get_greeting(self):
if self.gender_male.isChecked():
return "Sehr geehrter Herr"
elif self.gender_female.isChecked():
return "Sehr geehrte Frau"
elif self.gender_non.isChecked():
return "Guten Tag"
def set_mail(self):
email_template = self.comboBox.currentText()
@@ -27,15 +42,14 @@ class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog):
mail_template = f.read()
email_header = email_template.split(".eml")[0]
if "{AppNr}" in email_template:
email_header = email_template.split(".eml")[0].format(AppNr=self.appid)
email_header = email_template.split(".eml")[0]
self.mail_header.setText(email_header)
self.mail_data = mail_template.split("<html>")[0]
mail_html = mail_template.split("<html>")[1]
mail_html = "<html>" + mail_html
print(self.data)
Appname = self.data["Appname"]
Appname = self.appname
mail_html = mail_html.format(
Profname=self.prof_name.text().split(" ")[-1], Appname=Appname
Profname=self.prof_name.text().split(" ")[-1], Appname=Appname, AppNr=self.appid, AppSubject = self.subject,greeting = self.get_greeting()
)
self.mail_body.setHtml(mail_html)
@@ -46,14 +60,16 @@ class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog):
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="mails"
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(["thunderbird", f"{self.mail_path}"])
subprocess.Popen([f"{self.mail_path}"])
# delete the file
# os.remove(self.mail_path)

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<class>eMailPreview</class>
<widget class="QDialog" name="eMailPreview">
<property name="geometry">
<rect>
<x>0</x>
@@ -39,10 +39,17 @@
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Art</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="prof_name"/>
</item>
<item row="4" column="0">
<item row="5" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Mail</string>
@@ -52,6 +59,9 @@
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="mail_name"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
@@ -69,12 +79,6 @@
<item row="3" column="2">
<widget class="QLineEdit" name="mail_header"/>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="mail_name"/>
</item>
<item row="4" column="2">
<widget class="QTextEdit" name="mail_body"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
@@ -85,10 +89,51 @@
<item row="0" column="2">
<widget class="QComboBox" name="comboBox"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<item row="5" column="2">
<widget class="QTextEdit" name="mail_body"/>
</item>
<item row="4" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QRadioButton" name="gender_male">
<property name="text">
<string>M</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="gender_female">
<property name="text">
<string>W</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="gender_non">
<property name="text">
<string>Divers</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Art</string>
<string>Geschlecht</string>
</property>
</widget>
</item>
@@ -100,7 +145,7 @@
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<receiver>eMailPreview</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
@@ -116,7 +161,7 @@
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<receiver>eMailPreview</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<class>Erinnerung</class>
<widget class="QDialog" name="Erinnerung">
<property name="geometry">
<rect>
<x>0</x>
@@ -81,7 +81,7 @@
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<receiver>Erinnerung</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
@@ -97,7 +97,7 @@
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<receiver>Erinnerung</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">