ProjectFlask/FormSelectionDialog.py

Thu, 30 Dec 2021 11:20:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 30 Dec 2021 11:20:01 +0100
branch
eric7
changeset 66
0d3168d0e310
parent 64
0ee58185b8df
child 70
22e1d0f69668
permissions
-rw-r--r--

Updated copyright for 2022.

18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
66
0d3168d0e310 Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 64
diff changeset
3 # Copyright (c) 2020 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to select the template type.
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
10 from PyQt6.QtCore import pyqtSlot, QCoreApplication
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
11 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from .Ui_FormSelectionDialog import Ui_FormSelectionDialog
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 class FormSelectionDialog(QDialog, Ui_FormSelectionDialog):
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 Class implementing a dialog to select the template type.
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 Templates = {
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 "html5": {
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 "title": QCoreApplication.translate(
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 "FormSelectionDialog", "Standard HTML 5 template"),
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 "template": '''<!DOCTYPE html>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 ''' <head>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 ''' <title></title>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 ''' <style>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 ''' </style>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 ''' </head>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 '''\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 ''' <body>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 ''' </body>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 '''</html>\n''',
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 },
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 "basic_jinja": {
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 "title": QCoreApplication.translate(
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 "FormSelectionDialog", "Basic Jinja template"),
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 "template": '''<!DOCTYPE html>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 ''' <head>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 ''' {% if title %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 ''' <title>{{ title }}</title>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 ''' {% else %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 ''' <title>Title</title>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 ''' {% endif %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 ''' </head>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 '''\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 ''' <body>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 ''' <h1>Hello, {{ user.username }}!</h1>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 ''' </body>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 '''</html>\n''',
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 },
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 "jinja_base": {
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 "title": QCoreApplication.translate(
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 "FormSelectionDialog", "Jinja base template"),
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 "template": '''<!DOCTYPE html>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 ''' <head>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 ''' {% if title %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 ''' <title>{{ title }}</title>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 ''' {% else %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 ''' <title>Title</title>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 ''' {% endif %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 ''' </head>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 '''\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 ''' <body>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 ''' {% block content %}{% endblock %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 ''' </body>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 '''</html>\n''',
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 },
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 "jinja_extends": {
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 "title": QCoreApplication.translate(
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 "FormSelectionDialog", "Jinja extension template"),
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 "template": '''{% extends "base.html" %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 '''\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 '''{% block content %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 ''' <h1>{{ user.username }}</h1>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 ''' {% for item in items %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 ''' <div><p>{{ item.field1 }}: {{ item.field2 }}'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 '''</p></div>\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 ''' {% endfor %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 '''{% endblock %}\n'''
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 },
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 }
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def __init__(self, parent=None):
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Constructor
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @param parent reference to the parent widget
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 @type QWidget
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
61
fe1e8783a95f - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 60
diff changeset
91 super().__init__(parent)
18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.setupUi(self)
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
94 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
95 QDialogButtonBox.StandardButton.Ok).setEnabled(False)
18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 self.typeCombo.addItem("")
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 for templateType in FormSelectionDialog.Templates:
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.typeCombo.addItem(
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 FormSelectionDialog.Templates[templateType]["title"],
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 templateType)
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.typeCombo.setCurrentIndex(0)
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 @pyqtSlot(int)
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 def on_typeCombo_currentIndexChanged(self, index):
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 Private slot to act upon a change of the selected template type.
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 @param index selected index
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @type int
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 templateType = self.typeCombo.itemData(index)
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 if templateType:
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.preview.setPlainText(
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 FormSelectionDialog.Templates[templateType]["template"])
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
116 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
117 QDialogButtonBox.StandardButton.Ok).setEnabled(True)
18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 else:
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.preview.clear()
64
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
120 self.buttonBox.button(
0ee58185b8df Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
121 QDialogButtonBox.StandardButton.Ok).setEnabled(False)
18
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 def getTemplateText(self):
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 Public method to get the template text.
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @return text of the template
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @rtype str
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 """
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 templateType = self.typeCombo.currentData()
d76a0939be6a Added code ot create template web pages of selectable kinds.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 return FormSelectionDialog.Templates[templateType]["template"]

eric ide

mercurial