From 6946735159a6324ef9bf3d3b3f786c34466a4d7d Mon Sep 17 00:00:00 2001 From: WorldTeacher <41587052+WorldTeacher@users.noreply.github.com> Date: Tue, 4 Jun 2024 09:37:54 +0200 Subject: [PATCH] start work on mail template creation --- .../dialog_sources/newMailTemplateDesigner.ui | 7 +- .../newMailTemplateDesigner_ui.py | 138 ++++++++++++++++++ src/ui/dialogs/mailTemplate.py | 57 ++++++++ 3 files changed, 200 insertions(+), 2 deletions(-) create mode 100644 src/ui/dialogs/dialog_sources/newMailTemplateDesigner_ui.py create mode 100644 src/ui/dialogs/mailTemplate.py diff --git a/src/ui/dialogs/dialog_sources/newMailTemplateDesigner.ui b/src/ui/dialogs/dialog_sources/newMailTemplateDesigner.ui index d1044be..1234e8d 100644 --- a/src/ui/dialogs/dialog_sources/newMailTemplateDesigner.ui +++ b/src/ui/dialogs/dialog_sources/newMailTemplateDesigner.ui @@ -152,7 +152,7 @@ - + QComboBox::AdjustToContents @@ -197,6 +197,9 @@ + + true + false @@ -249,7 +252,7 @@ Qt::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Discard|QDialogButtonBox::Ok + QDialogButtonBox::Cancel|QDialogButtonBox::Discard|QDialogButtonBox::Save diff --git a/src/ui/dialogs/dialog_sources/newMailTemplateDesigner_ui.py b/src/ui/dialogs/dialog_sources/newMailTemplateDesigner_ui.py new file mode 100644 index 0000000..6a85c5d --- /dev/null +++ b/src/ui/dialogs/dialog_sources/newMailTemplateDesigner_ui.py @@ -0,0 +1,138 @@ +# Form implementation generated from reading ui file '/home/alexander/GitHub/SemesterapparatsManager/src/ui/dialogs/dialog_sources/newMailTemplateDesigner.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(689, 572) + self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.verticalLayout = QtWidgets.QVBoxLayout() + self.verticalLayout.setObjectName("verticalLayout") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout() + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.bold = QtWidgets.QPushButton(parent=Dialog) + self.bold.setObjectName("bold") + self.horizontalLayout_2.addWidget(self.bold) + self.italic = QtWidgets.QPushButton(parent=Dialog) + self.italic.setObjectName("italic") + self.horizontalLayout_2.addWidget(self.italic) + self.underlined = QtWidgets.QPushButton(parent=Dialog) + self.underlined.setObjectName("underlined") + self.horizontalLayout_2.addWidget(self.underlined) + self.font = QtWidgets.QFontComboBox(parent=Dialog) + self.font.setObjectName("font") + self.horizontalLayout_2.addWidget(self.font) + self.fontSize = QtWidgets.QComboBox(parent=Dialog) + self.fontSize.setObjectName("fontSize") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.fontSize.addItem("") + self.horizontalLayout_2.addWidget(self.fontSize) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.verticalLayout.addLayout(self.horizontalLayout_2) + self.horizontalLayout_4 = QtWidgets.QHBoxLayout() + self.horizontalLayout_4.setObjectName("horizontalLayout_4") + self.verticalLayout.addLayout(self.horizontalLayout_4) + self.gridLayout = QtWidgets.QGridLayout() + self.gridLayout.setObjectName("gridLayout") + self.label = QtWidgets.QLabel(parent=Dialog) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 0, 0, 1, 1) + self.placeholder_list = QtWidgets.QComboBox(parent=Dialog) + self.placeholder_list.setSizeAdjustPolicy(QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToContents) + self.placeholder_list.setObjectName("placeholder_list") + self.placeholder_list.addItem("") + self.placeholder_list.addItem("") + self.placeholder_list.addItem("") + self.placeholder_list.addItem("") + self.placeholder_list.addItem("") + self.placeholder_list.addItem("") + self.gridLayout.addWidget(self.placeholder_list, 1, 0, 1, 1) + self.label_2 = QtWidgets.QLabel(parent=Dialog) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 0, 1, 1, 1) + self.lineEdit = QtWidgets.QLineEdit(parent=Dialog) + self.lineEdit.setEnabled(True) + self.lineEdit.setFrame(False) + self.lineEdit.setReadOnly(True) + self.lineEdit.setObjectName("lineEdit") + self.gridLayout.addWidget(self.lineEdit, 1, 1, 1, 1) + self.insertPlaceholder = QtWidgets.QPushButton(parent=Dialog) + self.insertPlaceholder.setObjectName("insertPlaceholder") + self.gridLayout.addWidget(self.insertPlaceholder, 1, 2, 1, 1) + self.verticalLayout.addLayout(self.gridLayout) + self.templateEdit = QtWidgets.QTextEdit(parent=Dialog) + self.templateEdit.setObjectName("templateEdit") + self.verticalLayout.addWidget(self.templateEdit) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.testTemplate = QtWidgets.QPushButton(parent=Dialog) + self.testTemplate.setObjectName("testTemplate") + self.horizontalLayout_3.addWidget(self.testTemplate) + spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_3.addItem(spacerItem1) + self.verticalLayout.addLayout(self.horizontalLayout_3) + self.verticalLayout_2.addLayout(self.verticalLayout) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog) + self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Discard|QtWidgets.QDialogButtonBox.StandardButton.Save) + self.buttonBox.setObjectName("buttonBox") + self.verticalLayout_2.addWidget(self.buttonBox) + + self.retranslateUi(Dialog) + self.fontSize.setCurrentIndex(1) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + self.bold.setText(_translate("Dialog", "Fett")) + self.italic.setText(_translate("Dialog", "Kursiv")) + self.underlined.setText(_translate("Dialog", "Unterstrichen")) + self.fontSize.setItemText(0, _translate("Dialog", "8")) + self.fontSize.setItemText(1, _translate("Dialog", "9")) + self.fontSize.setItemText(2, _translate("Dialog", "11")) + self.fontSize.setItemText(3, _translate("Dialog", "12")) + self.fontSize.setItemText(4, _translate("Dialog", "14")) + self.fontSize.setItemText(5, _translate("Dialog", "16")) + self.fontSize.setItemText(6, _translate("Dialog", "18")) + self.fontSize.setItemText(7, _translate("Dialog", "20")) + self.fontSize.setItemText(8, _translate("Dialog", "22")) + self.fontSize.setItemText(9, _translate("Dialog", "24")) + self.fontSize.setItemText(10, _translate("Dialog", "26")) + self.fontSize.setItemText(11, _translate("Dialog", "28")) + self.fontSize.setItemText(12, _translate("Dialog", "36")) + self.fontSize.setItemText(13, _translate("Dialog", "48")) + self.fontSize.setItemText(14, _translate("Dialog", "76")) + self.label.setText(_translate("Dialog", "Platzhalter")) + self.placeholder_list.setItemText(0, _translate("Dialog", "«Anrede»")) + self.placeholder_list.setItemText(1, _translate("Dialog", "«ApparatsName»")) + self.placeholder_list.setItemText(2, _translate("Dialog", "«ApparatsFach»")) + self.placeholder_list.setItemText(3, _translate("Dialog", "«ApparatsNummer»")) + self.placeholder_list.setItemText(4, _translate("Dialog", "«DozentName»")) + self.placeholder_list.setItemText(5, _translate("Dialog", "«Signatur»")) + self.label_2.setText(_translate("Dialog", "Beschreibung")) + self.insertPlaceholder.setText(_translate("Dialog", "An aktiver Position einfügen")) + self.testTemplate.setText(_translate("Dialog", "Template testen")) diff --git a/src/ui/dialogs/mailTemplate.py b/src/ui/dialogs/mailTemplate.py new file mode 100644 index 0000000..c7da07d --- /dev/null +++ b/src/ui/dialogs/mailTemplate.py @@ -0,0 +1,57 @@ +from dialog_sources.newMailTemplateDesigner_ui import Ui_Dialog +from PyQt6 import QtWidgets, QtCore, QtGui +from PyQt6.QtGui import QFont + +class MailTemplateDialog(QtWidgets.QDialog, Ui_Dialog): + def __init__(self,parent = None) -> None: + super().__init__(parent) + self.setupUi(self) + self.placeholder_list.addItem("") + self.placeholder_list.setCurrentText("") + self.insertPlaceholder.clicked.connect(self.insert_placeholder) + self.placeholder_list.currentTextChanged.connect(self.updateDescription) + + def updateDescription(self): + print("update triggered") + print(self.placeholder_list.currentText()) + placeholders = {"anrede" : "Die Anrede beinhaltet sowohl Person als auch Sehr geehrte/r", + "apparatsfach" : "Das Fach, in welchem der Apparat angelegt wurde", + "apparatsname": "Der Name des Apparats", + "apparatsnummer": "Die Nummer des Apparats", + "dozentname" : "Der Name des Dozenten / der Dozentin", + "signatur" : "Die persönliche / allgemeine Signatur am ende der Mail", + "": " "} + for key, item, in placeholders.items(): + if key in self.placeholder_list.currentText().lower(): + self.lineEdit.setText(item) + break + + + def insert_placeholder(self): + placeholder = {"anrede" : "{}", + "apparatsfach" : "Das Fach, in welchem der Apparat angelegt wurde", + "apparatsname": "Der Name des Apparats", + "apparatsnummer": "Die Nummer des Apparats", + "dozentname" : "Der Name des Dozenten / der Dozentin", + "signatur" : "Die persönliche / allgemeine Signatur am ende der Mail", + "": " "} + cursor = self.templateEdit.textCursor() + + cursor.insertText("{{placeholder}}") + self.templateEdit.setTextCursor(cursor) + self.templateEdit.setFocus() + + + + + +def launch_gui(): + app = QtWidgets.QApplication([]) + window = MailTemplateDialog() + window.show() + app.exec() + + +if __name__ == "__main__": + launch_gui() +