- changed to the new style header eric7 release-10.3.2

Mon, 28 Oct 2024 16:24:54 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 28 Oct 2024 16:24:54 +0100
branch
eric7
changeset 195
b027b4f90994
parent 194
f497097bb0aa
child 196
1d784740ca1d

- changed to the new style header
- ensured proper parent relationship of modal dialogs
- included compiled form files

.hgignore file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
PKGLIST file | annotate | diff | comparison | revisions
PluginDjango.epj file | annotate | diff | comparison | revisions
PluginProjectDjango.py file | annotate | diff | comparison | revisions
PluginProjectDjango.zip file | annotate | diff | comparison | revisions
ProjectDjango/ConfigurationPage/Ui_DjangoPage.py file | annotate | diff | comparison | revisions
ProjectDjango/Project.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoCheckOptionsDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoDiffsettingsDataDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoDumpdataDataDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoLoaddataDataDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoMakeMigrationsDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoMigrationSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoMigrationsListDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoRunTestServerDataDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoSendTestEmailDataDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoSquashMigrationSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectDjango/Ui_DjangoTestDataDialog.py file | annotate | diff | comparison | revisions
--- a/.hgignore	Fri Jul 12 08:31:32 2024 +0200
+++ b/.hgignore	Mon Oct 28 16:24:54 2024 +0100
@@ -1,5 +1,4 @@
 glob:.eric7project
-glob:.eric6project
 glob:.ropeproject
 glob:.jedi
 glob:.directory
@@ -13,4 +12,3 @@
 glob:tmp
 glob:__pycache__
 glob:**.DS_Store
-glob:Ui_*.py
--- a/ChangeLog	Fri Jul 12 08:31:32 2024 +0200
+++ b/ChangeLog	Mon Oct 28 16:24:54 2024 +0100
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 10.3.2
+- changed to the new style header
+- ensured proper parent relationship of modal dialogs
+- included compiled form files
+
 Version 10.3.1
 - bug fixes
 
--- a/PKGLIST	Fri Jul 12 08:31:32 2024 +0200
+++ b/PKGLIST	Mon Oct 28 16:24:54 2024 +0100
@@ -11,6 +11,7 @@
 ProjectDjango/APIs/django-2.0.3.bas
 ProjectDjango/ConfigurationPage/DjangoPage.py
 ProjectDjango/ConfigurationPage/DjangoPage.ui
+ProjectDjango/ConfigurationPage/Ui_DjangoPage.py
 ProjectDjango/ConfigurationPage/__init__.py
 ProjectDjango/DjangoCheckOptionsDialog.py
 ProjectDjango/DjangoCheckOptionsDialog.ui
@@ -40,6 +41,18 @@
 ProjectDjango/Documentation/help/howto-debug.html
 ProjectDjango/Documentation/help/index.html
 ProjectDjango/Project.py
+ProjectDjango/Ui_DjangoCheckOptionsDialog.py
+ProjectDjango/Ui_DjangoDialog.py
+ProjectDjango/Ui_DjangoDiffsettingsDataDialog.py
+ProjectDjango/Ui_DjangoDumpdataDataDialog.py
+ProjectDjango/Ui_DjangoLoaddataDataDialog.py
+ProjectDjango/Ui_DjangoMakeMigrationsDialog.py
+ProjectDjango/Ui_DjangoMigrationSelectionDialog.py
+ProjectDjango/Ui_DjangoMigrationsListDialog.py
+ProjectDjango/Ui_DjangoRunTestServerDataDialog.py
+ProjectDjango/Ui_DjangoSendTestEmailDataDialog.py
+ProjectDjango/Ui_DjangoSquashMigrationSelectionDialog.py
+ProjectDjango/Ui_DjangoTestDataDialog.py
 ProjectDjango/__init__.py
 ProjectDjango/i18n/django_de.qm
 ProjectDjango/i18n/django_en.qm
--- a/PluginDjango.epj	Fri Jul 12 08:31:32 2024 +0200
+++ b/PluginDjango.epj	Mon Oct 28 16:24:54 2024 +0100
@@ -1,7 +1,7 @@
 {
   "header": {
     "comment": "eric project file for project PluginDjango",
-    "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de"
+    "copyright": "Copyright (C) 2024 Detlev Offenbach, detlev@die-offenbachs.de"
   },
   "project": {
     "AUTHOR": "Detlev Offenbach",
@@ -27,6 +27,7 @@
           "OverloadDecorators": [
             "overload"
           ],
+          "RespectTypeIgnore": false,
           "SuppressDummyArgs": false,
           "SuppressNoneReturning": false
         },
@@ -68,7 +69,7 @@
         "DocstringType": "eric_black",
         "EnabledCheckerCategories": "C, D, E, I, L, M, NO, N, Y, U, W",
         "ExcludeFiles": "*/Ui_*.py, */*_rc.py",
-        "ExcludeMessages": "C101,E265,E266,E305,E402,M201,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,M852,N802,N803,N807,N808,N821,W293,W503,Y401,Y402",
+        "ExcludeMessages": "C101,E265,E266,E305,E402,M251,M301,M302,M303,M304,M305,M306,M307,M308,M311,M312,M313,M314,M315,M321,M701,M702,M811,M834,M852,N802,N803,N807,N808,N821,W293,W503,Y401,Y402",
         "FixCodes": "",
         "FixIssues": false,
         "FutureChecker": "",
@@ -187,7 +188,6 @@
       "Makefile": "OTHERS",
       "README": "OTHERS",
       "README.*": "OTHERS",
-      "Ui_*.py": "__IGNORE__",
       "makefile": "OTHERS"
     },
     "FORMS": [
@@ -245,13 +245,14 @@
     "OTHERTOOLSPARMS": {
       "Black": {
         "exclude": "/(\\.direnv|\\.eggs|\\.git|\\.hg|\\.ipynb_checkpoints|\\.mypy_cache|\\.nox|\\.pytest_cache|\\.ruff_cache|\\.tox|\\.svn|\\.venv|\\.vscode|__pypackages__|_build|buck-out|build|dist|venv)/",
-        "extend-exclude": "",
+        "extend-exclude": "Ui_.*\\.py",
         "force-exclude": "",
         "line-length": 88,
         "skip-magic-trailing-comma": false,
         "skip-string-normalization": false,
         "source": "project",
         "target-version": [
+          "py313",
           "py312",
           "py311",
           "py310",
@@ -293,6 +294,7 @@
     "SOURCES": [
       "PluginProjectDjango.py",
       "ProjectDjango/ConfigurationPage/DjangoPage.py",
+      "ProjectDjango/ConfigurationPage/Ui_DjangoPage.py",
       "ProjectDjango/ConfigurationPage/__init__.py",
       "ProjectDjango/DjangoCheckOptionsDialog.py",
       "ProjectDjango/DjangoDialog.py",
@@ -307,6 +309,18 @@
       "ProjectDjango/DjangoSquashMigrationSelectionDialog.py",
       "ProjectDjango/DjangoTestDataDialog.py",
       "ProjectDjango/Project.py",
+      "ProjectDjango/Ui_DjangoCheckOptionsDialog.py",
+      "ProjectDjango/Ui_DjangoDialog.py",
+      "ProjectDjango/Ui_DjangoDiffsettingsDataDialog.py",
+      "ProjectDjango/Ui_DjangoDumpdataDataDialog.py",
+      "ProjectDjango/Ui_DjangoLoaddataDataDialog.py",
+      "ProjectDjango/Ui_DjangoMakeMigrationsDialog.py",
+      "ProjectDjango/Ui_DjangoMigrationSelectionDialog.py",
+      "ProjectDjango/Ui_DjangoMigrationsListDialog.py",
+      "ProjectDjango/Ui_DjangoRunTestServerDataDialog.py",
+      "ProjectDjango/Ui_DjangoSendTestEmailDataDialog.py",
+      "ProjectDjango/Ui_DjangoSquashMigrationSelectionDialog.py",
+      "ProjectDjango/Ui_DjangoTestDataDialog.py",
       "ProjectDjango/__init__.py",
       "__init__.py"
     ],
@@ -378,4 +392,4 @@
     "VCSOTHERDATA": {},
     "VERSION": ""
   }
-}
\ No newline at end of file
+}
--- a/PluginProjectDjango.py	Fri Jul 12 08:31:32 2024 +0200
+++ b/PluginProjectDjango.py	Mon Oct 28 16:24:54 2024 +0100
@@ -25,17 +25,20 @@
 from ProjectDjango.Project import Project
 
 # Start-of-Header
-name = "Django Project Plugin"
-author = "Detlev Offenbach <detlev@die-offenbachs.de>"
-autoactivate = True
-deactivateable = True
-version = "10.3.1"
-className = "ProjectDjangoPlugin"
-packageName = "ProjectDjango"
-shortDescription = "Project support for Django projects."
-longDescription = """This plugin implements project support for Django projects."""
-needsRestart = False
-pyqtApi = 2
+__header__ = {
+    "name": "Django Project Plugin",
+    "author": "Detlev Offenbach <detlev@die-offenbachs.de>",
+    "autoactivate": True,
+    "deactivateable": True,
+    "version": "10.3.2",
+    "className": "ProjectDjangoPlugin",
+    "packageName": "ProjectDjango",
+    "shortDescription": "Project support for Django projects.",
+    "longDescription": "This plugin implements project support for Django projects.",
+    "needsRestart": False,
+    "hasCompiledForms": True,
+    "pyqtApi": 2,
+}
 # End-of-Header
 
 error = ""
Binary file PluginProjectDjango.zip has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/ConfigurationPage/Ui_DjangoPage.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,217 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/ConfigurationPage/DjangoPage.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoPage(object):
+    def setupUi(self, DjangoPage):
+        DjangoPage.setObjectName("DjangoPage")
+        DjangoPage.resize(536, 1038)
+        self.verticalLayout_6 = QtWidgets.QVBoxLayout(DjangoPage)
+        self.verticalLayout_6.setObjectName("verticalLayout_6")
+        self.headerLabel = QtWidgets.QLabel(DjangoPage)
+        self.headerLabel.setObjectName("headerLabel")
+        self.verticalLayout_6.addWidget(self.headerLabel)
+        self.line15 = QtWidgets.QFrame(DjangoPage)
+        self.line15.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line15.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+        self.line15.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line15.setObjectName("line15")
+        self.verticalLayout_6.addWidget(self.line15)
+        self.djangoConsoleGroup = QtWidgets.QGroupBox(DjangoPage)
+        self.djangoConsoleGroup.setObjectName("djangoConsoleGroup")
+        self.gridLayout = QtWidgets.QGridLayout(self.djangoConsoleGroup)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(self.djangoConsoleGroup)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.consoleCommandCombo = QtWidgets.QComboBox(self.djangoConsoleGroup)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.consoleCommandCombo.sizePolicy().hasHeightForWidth())
+        self.consoleCommandCombo.setSizePolicy(sizePolicy)
+        self.consoleCommandCombo.setEditable(True)
+        self.consoleCommandCombo.setObjectName("consoleCommandCombo")
+        self.gridLayout.addWidget(self.consoleCommandCombo, 0, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(self.djangoConsoleGroup)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.consoleCommandNoCloseCombo = QtWidgets.QComboBox(self.djangoConsoleGroup)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.consoleCommandNoCloseCombo.sizePolicy().hasHeightForWidth())
+        self.consoleCommandNoCloseCombo.setSizePolicy(sizePolicy)
+        self.consoleCommandNoCloseCombo.setEditable(True)
+        self.consoleCommandNoCloseCombo.setObjectName("consoleCommandNoCloseCombo")
+        self.gridLayout.addWidget(self.consoleCommandNoCloseCombo, 1, 1, 1, 1)
+        self.label_5 = QtWidgets.QLabel(self.djangoConsoleGroup)
+        self.label_5.setWordWrap(True)
+        self.label_5.setObjectName("label_5")
+        self.gridLayout.addWidget(self.label_5, 2, 0, 1, 2)
+        self.verticalLayout_6.addWidget(self.djangoConsoleGroup)
+        self.djangoServerGroup = QtWidgets.QGroupBox(DjangoPage)
+        self.djangoServerGroup.setObjectName("djangoServerGroup")
+        self.gridLayout_2 = QtWidgets.QGridLayout(self.djangoServerGroup)
+        self.gridLayout_2.setObjectName("gridLayout_2")
+        self.label_3 = QtWidgets.QLabel(self.djangoServerGroup)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout_2.addWidget(self.label_3, 0, 0, 1, 1)
+        self.serverAddressEdit = QtWidgets.QLineEdit(self.djangoServerGroup)
+        self.serverAddressEdit.setObjectName("serverAddressEdit")
+        self.gridLayout_2.addWidget(self.serverAddressEdit, 0, 1, 1, 1)
+        self.ipv6CheckBox = QtWidgets.QCheckBox(self.djangoServerGroup)
+        self.ipv6CheckBox.setObjectName("ipv6CheckBox")
+        self.gridLayout_2.addWidget(self.ipv6CheckBox, 1, 0, 1, 2)
+        self.threadingCheckBox = QtWidgets.QCheckBox(self.djangoServerGroup)
+        self.threadingCheckBox.setObjectName("threadingCheckBox")
+        self.gridLayout_2.addWidget(self.threadingCheckBox, 2, 0, 1, 2)
+        self.verticalLayout_6.addWidget(self.djangoServerGroup)
+        self.djangoBrowserGroup = QtWidgets.QGroupBox(DjangoPage)
+        self.djangoBrowserGroup.setObjectName("djangoBrowserGroup")
+        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.djangoBrowserGroup)
+        self.verticalLayout_5.setObjectName("verticalLayout_5")
+        self.externalBrowserCheckBox = QtWidgets.QCheckBox(self.djangoBrowserGroup)
+        self.externalBrowserCheckBox.setObjectName("externalBrowserCheckBox")
+        self.verticalLayout_5.addWidget(self.externalBrowserCheckBox)
+        self.verticalLayout_6.addWidget(self.djangoBrowserGroup)
+        self.djangoRecentAppsGroup = QtWidgets.QGroupBox(DjangoPage)
+        self.djangoRecentAppsGroup.setObjectName("djangoRecentAppsGroup")
+        self.vboxlayout = QtWidgets.QVBoxLayout(self.djangoRecentAppsGroup)
+        self.vboxlayout.setContentsMargins(6, 6, 6, 6)
+        self.vboxlayout.setSpacing(6)
+        self.vboxlayout.setObjectName("vboxlayout")
+        self._2 = QtWidgets.QHBoxLayout()
+        self._2.setObjectName("_2")
+        self.label_4 = QtWidgets.QLabel(self.djangoRecentAppsGroup)
+        self.label_4.setObjectName("label_4")
+        self._2.addWidget(self.label_4)
+        self.appsRecentSpinBox = QtWidgets.QSpinBox(self.djangoRecentAppsGroup)
+        self.appsRecentSpinBox.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
+        self.appsRecentSpinBox.setMinimum(5)
+        self.appsRecentSpinBox.setMaximum(50)
+        self.appsRecentSpinBox.setObjectName("appsRecentSpinBox")
+        self._2.addWidget(self.appsRecentSpinBox)
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self._2.addItem(spacerItem)
+        self.vboxlayout.addLayout(self._2)
+        self.verticalLayout_6.addWidget(self.djangoRecentAppsGroup)
+        self.python3Group = QtWidgets.QGroupBox(DjangoPage)
+        self.python3Group.setObjectName("python3Group")
+        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.python3Group)
+        self.verticalLayout_3.setObjectName("verticalLayout_3")
+        self.djangoVirtualEnvironmentPy3Group = QtWidgets.QGroupBox(self.python3Group)
+        self.djangoVirtualEnvironmentPy3Group.setObjectName("djangoVirtualEnvironmentPy3Group")
+        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.djangoVirtualEnvironmentPy3Group)
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.label_11 = QtWidgets.QLabel(self.djangoVirtualEnvironmentPy3Group)
+        self.label_11.setWordWrap(True)
+        self.label_11.setObjectName("label_11")
+        self.verticalLayout_2.addWidget(self.label_11)
+        self.py3VenvNameComboBox = QtWidgets.QComboBox(self.djangoVirtualEnvironmentPy3Group)
+        self.py3VenvNameComboBox.setObjectName("py3VenvNameComboBox")
+        self.verticalLayout_2.addWidget(self.py3VenvNameComboBox)
+        self.verticalLayout_3.addWidget(self.djangoVirtualEnvironmentPy3Group)
+        self.horizontalLayout = QtWidgets.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.label_10 = QtWidgets.QLabel(self.python3Group)
+        self.label_10.setObjectName("label_10")
+        self.horizontalLayout.addWidget(self.label_10)
+        self.py3ShellCombo = QtWidgets.QComboBox(self.python3Group)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.py3ShellCombo.sizePolicy().hasHeightForWidth())
+        self.py3ShellCombo.setSizePolicy(sizePolicy)
+        self.py3ShellCombo.setObjectName("py3ShellCombo")
+        self.horizontalLayout.addWidget(self.py3ShellCombo)
+        self.verticalLayout_3.addLayout(self.horizontalLayout)
+        self.verticalLayout_6.addWidget(self.python3Group)
+        self.groupBox = QtWidgets.QGroupBox(DjangoPage)
+        self.groupBox.setObjectName("groupBox")
+        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox)
+        self.verticalLayout_4.setObjectName("verticalLayout_4")
+        self.TranslationsGroup = QtWidgets.QGroupBox(self.groupBox)
+        self.TranslationsGroup.setObjectName("TranslationsGroup")
+        self.verticalLayout = QtWidgets.QVBoxLayout(self.TranslationsGroup)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label_8 = QtWidgets.QLabel(self.TranslationsGroup)
+        self.label_8.setMinimumSize(QtCore.QSize(0, 40))
+        self.label_8.setWordWrap(True)
+        self.label_8.setObjectName("label_8")
+        self.verticalLayout.addWidget(self.label_8)
+        self.translationsPicker = EricPathPicker(self.TranslationsGroup)
+        self.translationsPicker.setFocusPolicy(QtCore.Qt.FocusPolicy.WheelFocus)
+        self.translationsPicker.setObjectName("translationsPicker")
+        self.verticalLayout.addWidget(self.translationsPicker)
+        self.verticalLayout_4.addWidget(self.TranslationsGroup)
+        self.fuzzyTranslationsCheckBox = QtWidgets.QCheckBox(self.groupBox)
+        self.fuzzyTranslationsCheckBox.setObjectName("fuzzyTranslationsCheckBox")
+        self.verticalLayout_4.addWidget(self.fuzzyTranslationsCheckBox)
+        self.verticalLayout_6.addWidget(self.groupBox)
+        spacerItem1 = QtWidgets.QSpacerItem(20, 274, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+        self.verticalLayout_6.addItem(spacerItem1)
+
+        self.retranslateUi(DjangoPage)
+        QtCore.QMetaObject.connectSlotsByName(DjangoPage)
+        DjangoPage.setTabOrder(self.consoleCommandCombo, self.consoleCommandNoCloseCombo)
+        DjangoPage.setTabOrder(self.consoleCommandNoCloseCombo, self.serverAddressEdit)
+        DjangoPage.setTabOrder(self.serverAddressEdit, self.ipv6CheckBox)
+        DjangoPage.setTabOrder(self.ipv6CheckBox, self.threadingCheckBox)
+        DjangoPage.setTabOrder(self.threadingCheckBox, self.externalBrowserCheckBox)
+        DjangoPage.setTabOrder(self.externalBrowserCheckBox, self.appsRecentSpinBox)
+        DjangoPage.setTabOrder(self.appsRecentSpinBox, self.py3VenvNameComboBox)
+        DjangoPage.setTabOrder(self.py3VenvNameComboBox, self.py3ShellCombo)
+        DjangoPage.setTabOrder(self.py3ShellCombo, self.translationsPicker)
+        DjangoPage.setTabOrder(self.translationsPicker, self.fuzzyTranslationsCheckBox)
+
+    def retranslateUi(self, DjangoPage):
+        _translate = QtCore.QCoreApplication.translate
+        self.headerLabel.setText(_translate("DjangoPage", "<b>Configure Django</b>"))
+        self.djangoConsoleGroup.setTitle(_translate("DjangoPage", "Console Commands"))
+        self.label.setText(_translate("DjangoPage", "Console Command:"))
+        self.consoleCommandCombo.setToolTip(_translate("DjangoPage", "Enter the console command"))
+        self.label_2.setText(_translate("DjangoPage", "Console Command (non-closing):"))
+        self.consoleCommandNoCloseCombo.setToolTip(_translate("DjangoPage", "Enter the console command for a non-closing console"))
+        self.label_5.setText(_translate("DjangoPage", "<b>Note:</b> The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an \'@\' character."))
+        self.djangoServerGroup.setTitle(_translate("DjangoPage", "Server"))
+        self.label_3.setText(_translate("DjangoPage", "Server Address:"))
+        self.serverAddressEdit.setToolTip(_translate("DjangoPage", "Enter the server port or server address and port (e.g. 127.0.0.1:8000 or [::1]:8000)"))
+        self.ipv6CheckBox.setToolTip(_translate("DjangoPage", "Select to use IPv6"))
+        self.ipv6CheckBox.setText(_translate("DjangoPage", "Use IPv6 protocol"))
+        self.threadingCheckBox.setToolTip(_translate("DjangoPage", "Select to enable threading in the server"))
+        self.threadingCheckBox.setText(_translate("DjangoPage", "Enable Threading"))
+        self.djangoBrowserGroup.setTitle(_translate("DjangoPage", "Web-Browser"))
+        self.externalBrowserCheckBox.setToolTip(_translate("DjangoPage", "Select to use an external web-browser"))
+        self.externalBrowserCheckBox.setText(_translate("DjangoPage", "Use external web-browser"))
+        self.djangoRecentAppsGroup.setTitle(_translate("DjangoPage", "Recent Applications Lists"))
+        self.label_4.setText(_translate("DjangoPage", "Number of recent applications lists:"))
+        self.appsRecentSpinBox.setToolTip(_translate("DjangoPage", "Enter the number of recent applications to remember"))
+        self.python3Group.setTitle(_translate("DjangoPage", "Python 3"))
+        self.djangoVirtualEnvironmentPy3Group.setTitle(_translate("DjangoPage", "Django Virtual Environment"))
+        self.label_11.setText(_translate("DjangoPage", "Select the Virtual Environment to be used with Django"))
+        self.label_10.setText(_translate("DjangoPage", "Django Python Console:"))
+        self.py3ShellCombo.setToolTip(_translate("DjangoPage", "Select the Python console type"))
+        self.groupBox.setTitle(_translate("DjangoPage", "Translations"))
+        self.TranslationsGroup.setTitle(_translate("DjangoPage", "Translations Editor"))
+        self.label_8.setText(_translate("DjangoPage", "Enter the path of an editor to use to do the translations. Leave empty to disable this feature."))
+        self.fuzzyTranslationsCheckBox.setToolTip(_translate("DjangoPage", "Select to include fuzzy translations (1.8.0+ only)"))
+        self.fuzzyTranslationsCheckBox.setText(_translate("DjangoPage", "Include Fuzzy Translations"))
+from eric7.EricWidgets.EricPathPicker import EricPathPicker
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoPage = QtWidgets.QWidget()
+    ui = Ui_DjangoPage()
+    ui.setupUi(DjangoPage)
+    DjangoPage.show()
+    sys.exit(app.exec())
--- a/ProjectDjango/Project.py	Fri Jul 12 08:31:32 2024 +0200
+++ b/ProjectDjango/Project.py	Mon Oct 28 16:24:54 2024 +0100
@@ -1252,9 +1252,7 @@
         @param path full directory path for the new form file
         @type str
         """
-        fileFilters = self.tr(
-            "HTML Files (*.html);;HTML Files (*.htm);;All Files (*)"
-        )
+        fileFilters = self.tr("HTML Files (*.html);;HTML Files (*.htm);;All Files (*)")
         fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
             self.__ui,
             self.tr("New Form"),
@@ -1595,6 +1593,7 @@
             ).format(version, url),
             modal=True,
             buttons=EricMessageBox.Ok,
+            parent=self.__ui,
         )
         msgBox.setIconPixmap(
             EricPixmapCache.getPixmap(
@@ -1931,7 +1930,9 @@
         args.append(projectName)
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("Django project created successfully.")
+            title,
+            msgSuccess=self.tr("Django project created successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, path)
         if res:
@@ -2020,7 +2021,9 @@
         args.append(applName)
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("Django application created successfully.")
+            title,
+            msgSuccess=self.tr("Django application created successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, path)
         if res:
@@ -2397,7 +2400,7 @@
         except DjangoNoSiteSelectedError:
             return
 
-        dia = DjangoDialog(title, fixed=True, linewrap=False)
+        dia = DjangoDialog(title, fixed=True, linewrap=False, parent=self.__ui)
         res = dia.startProcess(args, path, False)
         if res:
             dia.exec()
@@ -2429,7 +2432,9 @@
                 args.append("--database={0}".format(self.__currentDatabase))
 
             dia = DjangoDialog(
-                title, msgSuccess=self.tr("Database tables flushed successfully.")
+                title,
+                msgSuccess=self.tr("Database tables flushed successfully."),
+                parent=self.__ui,
             )
             res = dia.startProcess(args, path)
             if res:
@@ -2499,7 +2504,9 @@
 
         fileFilter = self.tr("SQL Files (*.sql)")
 
-        dia = DjangoDialog(title, fixed=True, linewrap=False, saveFilters=fileFilter)
+        dia = DjangoDialog(
+            title, fixed=True, linewrap=False, saveFilters=fileFilter, parent=self.__ui
+        )
         res = dia.startProcess(args, path, False)
         if res:
             dia.exec()
@@ -2544,7 +2551,10 @@
         title = self.tr("SQL Migrate")
 
         dlg = DjangoMigrationSelectionDialog(
-            migrations, migrationRequired=True, suffix=self.__iconSuffix
+            migrations,
+            migrationRequired=True,
+            suffix=self.__iconSuffix,
+            parent=self.__ui,
         )
         if dlg.exec() == QDialog.DialogCode.Accepted:
             app, migration = dlg.getData()
@@ -2563,7 +2573,11 @@
             fileFilter = self.tr("SQL Files (*.sql)")
 
             dia = DjangoDialog(
-                title, fixed=True, linewrap=False, saveFilters=fileFilter
+                title,
+                fixed=True,
+                linewrap=False,
+                saveFilters=fileFilter,
+                parent=self.__ui,
             )
             res = dia.startProcess(args, path, False)
             if res:
@@ -2632,7 +2646,9 @@
             )
             return
 
-        dlg = DjangoMigrationSelectionDialog(migrations, suffix=self.__iconSuffix)
+        dlg = DjangoMigrationSelectionDialog(
+            migrations, suffix=self.__iconSuffix, parent=self.__ui
+        )
         if dlg.exec() == QDialog.DialogCode.Accepted:
             app, migration = dlg.getData()
             self.applyMigrations(app=app, migration=migration)
@@ -2667,7 +2683,7 @@
             if migration:
                 args.append(migration)
 
-        dia = DjangoDialog(title)
+        dia = DjangoDialog(title, parent=self.__ui)
         res = dia.startProcess(args, path)
         if res:
             dia.exec()
@@ -2749,7 +2765,7 @@
         """
         from .DjangoMakeMigrationsDialog import DjangoMakeMigrationsDialog
 
-        dlg = DjangoMakeMigrationsDialog(self.getRecentApplications())
+        dlg = DjangoMakeMigrationsDialog(self.getRecentApplications(), parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             apps, migration, dryRun, empty, merge = dlg.getData()
             if apps:
@@ -2797,7 +2813,7 @@
         if apps:
             args += apps
 
-        dia = DjangoDialog(title, showInput=True)
+        dia = DjangoDialog(title, showInput=True, parent=self.__ui)
         res = dia.startProcess(args, path)
         if res:
             dia.exec()
@@ -2819,7 +2835,9 @@
             )
             return
 
-        dlg = DjangoSquashMigrationSelectionDialog(migrations, self, self.__iconSuffix)
+        dlg = DjangoSquashMigrationSelectionDialog(
+            migrations, self, self.__iconSuffix, parent=self.__ui
+        )
         if dlg.exec() == QDialog.DialogCode.Accepted:
             app, start, end, noOptimize, name = dlg.getData()
 
@@ -2844,7 +2862,7 @@
                 args.append(start)
             args.append(end)
 
-            dia = DjangoDialog(title)
+            dia = DjangoDialog(title, parent=self.__ui)
             res = dia.startProcess(args, path)
             if res:
                 dia.exec()
@@ -2861,7 +2879,7 @@
 
         title = self.tr("Diff Settings")
 
-        dlg = DjangoDiffsettingsDataDialog(self, self.__ui)
+        dlg = DjangoDiffsettingsDataDialog(self, parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             showAll, defaultModule, outputFormat = dlg.getData()
 
@@ -2881,7 +2899,7 @@
             except DjangoNoSiteSelectedError:
                 return
 
-            dia = DjangoDialog(title, fixed=True, linewrap=False)
+            dia = DjangoDialog(title, fixed=True, linewrap=False, parent=self.__ui)
             res = dia.startProcess(args, path, False)
             if res:
                 dia.exec()
@@ -2923,7 +2941,7 @@
 
         title = self.tr("Send Test Email")
 
-        dlg = DjangoSendTestEmailDataDialog(self.__ui)
+        dlg = DjangoSendTestEmailDataDialog(parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             managers, admins, recipients = dlg.getData()
 
@@ -2947,6 +2965,7 @@
                 linewrap=False,
                 msgSuccess=self.tr("Test Email sent successfully."),
                 msgError=self.tr("Test Email could not be sent."),
+                parent=self.__ui,
             )
             res = dia.startProcess(args, path, False)
             if res:
@@ -2975,7 +2994,9 @@
             args.append("--database={0}".format(self.__currentDatabase))
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("Cache tables created successfully.")
+            title,
+            msgSuccess=self.tr("Cache tables created successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, wd)
         if res:
@@ -2998,7 +3019,7 @@
         except DjangoNoSiteSelectedError:
             return
 
-        dlg = DjangoDumpdataDataDialog(self, self.__ui)
+        dlg = DjangoDumpdataDataDialog(self, parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             appls, excls, dumpFormat, indent = dlg.getData()
 
@@ -3022,7 +3043,11 @@
                 fileFilters = self.tr("YAML Files (*.yaml)")
 
             dia = DjangoDialog(
-                title, fixed=True, linewrap=False, saveFilters=fileFilters
+                title,
+                fixed=True,
+                linewrap=False,
+                saveFilters=fileFilters,
+                parent=self.__ui,
             )
             res = dia.startProcess(args, wd, showCommand=False)
             if res:
@@ -3041,7 +3066,7 @@
         except DjangoNoSiteSelectedError:
             return
 
-        dlg = DjangoLoaddataDataDialog(self, self.__ui)
+        dlg = DjangoLoaddataDataDialog(self, parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             fixtures, excludes, appLabel, ignore = dlg.getData()
 
@@ -3059,7 +3084,7 @@
                 args.append("--database={0}".format(self.__currentDatabase))
             args += fixtures
 
-            dia = DjangoDialog(title)
+            dia = DjangoDialog(title, parent=self.__ui)
             res = dia.startProcess(args, wd)
             if res:
                 dia.exec()
@@ -3083,7 +3108,7 @@
                 return
 
             dlg = DjangoTestDataDialog(
-                self, self.__plugin.getPreferences("KeepTestDatabase"), self.__ui
+                self, self.__plugin.getPreferences("KeepTestDatabase"), parent=self.__ui
             )
             if dlg.exec() == QDialog.DialogCode.Accepted:
                 labels, pattern, tags, excludeTags, keep, reverse = dlg.getData()
@@ -3129,7 +3154,7 @@
             self.__plugin.getPreferences("ConsoleCommand")
         )[1]
         if consoleCmd:
-            dlg = DjangoRunTestServerDataDialog(self, self.__ui)
+            dlg = DjangoRunTestServerDataDialog(self, parent=self.__ui)
             if dlg.exec() == QDialog.DialogCode.Accepted:
                 fixtures = dlg.getData()
 
@@ -3262,7 +3287,9 @@
         args.append("clearsessions")
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("Expired sessions cleared successfully.")
+            title,
+            msgSuccess=self.tr("Expired sessions cleared successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, wd)
         if res:
@@ -3357,7 +3384,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalog initialized successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalog initialized successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, wd)
         if res:
@@ -3407,7 +3436,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs updated successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs updated successfully."),
+            parent=self.__ui,
         )
         res = dia.startBatchProcesses(argsLists, wd)
         if res:
@@ -3451,7 +3482,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs updated successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs updated successfully."),
+            parent=self.__ui,
         )
         res = dia.startBatchProcesses(argsLists, wd)
         if res:
@@ -3484,7 +3517,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs updated successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs updated successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, wd)
         if res:
@@ -3516,7 +3551,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs updated successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs updated successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, wd)
         if res:
@@ -3562,7 +3599,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs compiled successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs compiled successfully."),
+            parent=self.__ui,
         )
         res = dia.startBatchProcesses(argsLists, wd, mergedOutput=True)
         if res:
@@ -3601,7 +3640,9 @@
             return
 
         dia = DjangoDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs compiled successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs compiled successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(args, wd, mergedOutput=True)
         if res:
@@ -3656,6 +3697,7 @@
             path,
             self.getRecentApplications(),
             self.__plugin.getPreferences("CheckDeployMode"),
+            parent=self.__ui,
         )
         if dlg.exec() == QDialog.DialogCode.Accepted:
             deploy, tags, appsStr, settingsFile = dlg.getData()
@@ -3677,7 +3719,7 @@
                     args.append("--settings={0}".format(settingsFile))
             args += apps
 
-            dia = DjangoDialog(self.tr("Check Project"))
+            dia = DjangoDialog(self.tr("Check Project"), parent=self.__ui)
             res = dia.startProcess(args, path, mergedOutput=True)
             if res:
                 dia.exec()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoCheckOptionsDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,83 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoCheckOptionsDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoCheckOptionsDialog(object):
+    def setupUi(self, DjangoCheckOptionsDialog):
+        DjangoCheckOptionsDialog.setObjectName("DjangoCheckOptionsDialog")
+        DjangoCheckOptionsDialog.resize(500, 450)
+        DjangoCheckOptionsDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(DjangoCheckOptionsDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.deployCheckBox = QtWidgets.QCheckBox(DjangoCheckOptionsDialog)
+        self.deployCheckBox.setObjectName("deployCheckBox")
+        self.verticalLayout.addWidget(self.deployCheckBox)
+        self.label = QtWidgets.QLabel(DjangoCheckOptionsDialog)
+        self.label.setWordWrap(True)
+        self.label.setObjectName("label")
+        self.verticalLayout.addWidget(self.label)
+        self.tagsList = QtWidgets.QListWidget(DjangoCheckOptionsDialog)
+        self.tagsList.setAlternatingRowColors(True)
+        self.tagsList.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.ExtendedSelection)
+        self.tagsList.setObjectName("tagsList")
+        self.verticalLayout.addWidget(self.tagsList)
+        self.label_2 = QtWidgets.QLabel(DjangoCheckOptionsDialog)
+        self.label_2.setWordWrap(True)
+        self.label_2.setObjectName("label_2")
+        self.verticalLayout.addWidget(self.label_2)
+        self.appsComboBox = QtWidgets.QComboBox(DjangoCheckOptionsDialog)
+        self.appsComboBox.setEditable(True)
+        self.appsComboBox.setObjectName("appsComboBox")
+        self.verticalLayout.addWidget(self.appsComboBox)
+        self.settingsFileGroup = QtWidgets.QGroupBox(DjangoCheckOptionsDialog)
+        self.settingsFileGroup.setObjectName("settingsFileGroup")
+        self.horizontalLayout = QtWidgets.QHBoxLayout(self.settingsFileGroup)
+        self.horizontalLayout.setSpacing(0)
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.settingsFileEdit = QtWidgets.QLineEdit(self.settingsFileGroup)
+        self.settingsFileEdit.setClearButtonEnabled(True)
+        self.settingsFileEdit.setObjectName("settingsFileEdit")
+        self.horizontalLayout.addWidget(self.settingsFileEdit)
+        self.settingsFileButton = QtWidgets.QToolButton(self.settingsFileGroup)
+        self.settingsFileButton.setObjectName("settingsFileButton")
+        self.horizontalLayout.addWidget(self.settingsFileButton)
+        self.verticalLayout.addWidget(self.settingsFileGroup)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoCheckOptionsDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoCheckOptionsDialog)
+        self.buttonBox.accepted.connect(DjangoCheckOptionsDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoCheckOptionsDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoCheckOptionsDialog)
+
+    def retranslateUi(self, DjangoCheckOptionsDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoCheckOptionsDialog.setWindowTitle(_translate("DjangoCheckOptionsDialog", "Check Options"))
+        self.deployCheckBox.setToolTip(_translate("DjangoCheckOptionsDialog", "Select to enable checks for deployment mode"))
+        self.deployCheckBox.setText(_translate("DjangoCheckOptionsDialog", "Deployment Mode"))
+        self.label.setText(_translate("DjangoCheckOptionsDialog", "Select type of checks (leave unselected for all checks):"))
+        self.tagsList.setSortingEnabled(True)
+        self.label_2.setText(_translate("DjangoCheckOptionsDialog", "Enter the list of applications separated by spaces (leave empty for all apps):"))
+        self.settingsFileGroup.setTitle(_translate("DjangoCheckOptionsDialog", "Settings module for deployment mode"))
+        self.settingsFileEdit.setToolTip(_translate("DjangoCheckOptionsDialog", "Enter the module name of the deployment settings"))
+        self.settingsFileButton.setToolTip(_translate("DjangoCheckOptionsDialog", "Press to select the settings module file via a file selection dialog"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoCheckOptionsDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoCheckOptionsDialog()
+    ui.setupUi(DjangoCheckOptionsDialog)
+    DjangoCheckOptionsDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,108 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoDialog(object):
+    def setupUi(self, DjangoDialog):
+        DjangoDialog.setObjectName("DjangoDialog")
+        DjangoDialog.resize(593, 499)
+        DjangoDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(DjangoDialog)
+        self.verticalLayout.setContentsMargins(11, 11, 11, 11)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.outputGroup = QtWidgets.QGroupBox(DjangoDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(3)
+        sizePolicy.setHeightForWidth(self.outputGroup.sizePolicy().hasHeightForWidth())
+        self.outputGroup.setSizePolicy(sizePolicy)
+        self.outputGroup.setObjectName("outputGroup")
+        self.vboxlayout = QtWidgets.QVBoxLayout(self.outputGroup)
+        self.vboxlayout.setContentsMargins(6, 6, 6, 6)
+        self.vboxlayout.setSpacing(6)
+        self.vboxlayout.setObjectName("vboxlayout")
+        self.resultbox = QtWidgets.QTextEdit(self.outputGroup)
+        self.resultbox.setAcceptRichText(False)
+        self.resultbox.setObjectName("resultbox")
+        self.vboxlayout.addWidget(self.resultbox)
+        self.verticalLayout.addWidget(self.outputGroup)
+        self.errorGroup = QtWidgets.QGroupBox(DjangoDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(1)
+        sizePolicy.setHeightForWidth(self.errorGroup.sizePolicy().hasHeightForWidth())
+        self.errorGroup.setSizePolicy(sizePolicy)
+        self.errorGroup.setObjectName("errorGroup")
+        self.vboxlayout1 = QtWidgets.QVBoxLayout(self.errorGroup)
+        self.vboxlayout1.setContentsMargins(6, 6, 6, 6)
+        self.vboxlayout1.setSpacing(6)
+        self.vboxlayout1.setObjectName("vboxlayout1")
+        self.errors = QtWidgets.QTextEdit(self.errorGroup)
+        self.errors.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+        self.errors.setReadOnly(True)
+        self.errors.setAcceptRichText(False)
+        self.errors.setObjectName("errors")
+        self.vboxlayout1.addWidget(self.errors)
+        self.verticalLayout.addWidget(self.errorGroup)
+        self.inputGroup = QtWidgets.QGroupBox(DjangoDialog)
+        self.inputGroup.setObjectName("inputGroup")
+        self._2 = QtWidgets.QGridLayout(self.inputGroup)
+        self._2.setContentsMargins(11, 11, 11, 11)
+        self._2.setSpacing(6)
+        self._2.setObjectName("_2")
+        spacerItem = QtWidgets.QSpacerItem(327, 29, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self._2.addItem(spacerItem, 1, 1, 1, 1)
+        self.sendButton = QtWidgets.QPushButton(self.inputGroup)
+        self.sendButton.setObjectName("sendButton")
+        self._2.addWidget(self.sendButton, 1, 2, 1, 1)
+        self.input = QtWidgets.QLineEdit(self.inputGroup)
+        self.input.setClearButtonEnabled(True)
+        self.input.setObjectName("input")
+        self._2.addWidget(self.input, 0, 0, 1, 3)
+        self.passwordCheckBox = QtWidgets.QCheckBox(self.inputGroup)
+        self.passwordCheckBox.setObjectName("passwordCheckBox")
+        self._2.addWidget(self.passwordCheckBox, 1, 0, 1, 1)
+        self.verticalLayout.addWidget(self.inputGroup)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Close|QtWidgets.QDialogButtonBox.StandardButton.Save)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoDialog)
+        QtCore.QMetaObject.connectSlotsByName(DjangoDialog)
+        DjangoDialog.setTabOrder(self.resultbox, self.input)
+        DjangoDialog.setTabOrder(self.input, self.passwordCheckBox)
+        DjangoDialog.setTabOrder(self.passwordCheckBox, self.sendButton)
+
+    def retranslateUi(self, DjangoDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoDialog.setWindowTitle(_translate("DjangoDialog", "Django"))
+        self.outputGroup.setTitle(_translate("DjangoDialog", "Output"))
+        self.errorGroup.setTitle(_translate("DjangoDialog", "Errors"))
+        self.inputGroup.setTitle(_translate("DjangoDialog", "Input"))
+        self.sendButton.setToolTip(_translate("DjangoDialog", "Press to send the input to the manage.py process"))
+        self.sendButton.setText(_translate("DjangoDialog", "&Send"))
+        self.sendButton.setShortcut(_translate("DjangoDialog", "Alt+S"))
+        self.input.setToolTip(_translate("DjangoDialog", "Enter data to be sent to the manage.py process"))
+        self.passwordCheckBox.setToolTip(_translate("DjangoDialog", "Select to switch the input field to password mode"))
+        self.passwordCheckBox.setText(_translate("DjangoDialog", "&Password Mode"))
+        self.passwordCheckBox.setShortcut(_translate("DjangoDialog", "Alt+P"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoDialog()
+    ui.setupUi(DjangoDialog)
+    DjangoDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoDiffsettingsDataDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,64 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoDiffsettingsDataDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoDiffsettingsDataDialog(object):
+    def setupUi(self, DjangoDiffsettingsDataDialog):
+        DjangoDiffsettingsDataDialog.setObjectName("DjangoDiffsettingsDataDialog")
+        DjangoDiffsettingsDataDialog.resize(400, 138)
+        DjangoDiffsettingsDataDialog.setSizeGripEnabled(True)
+        self.gridLayout = QtWidgets.QGridLayout(DjangoDiffsettingsDataDialog)
+        self.gridLayout.setObjectName("gridLayout")
+        self.allCheckBox = QtWidgets.QCheckBox(DjangoDiffsettingsDataDialog)
+        self.allCheckBox.setObjectName("allCheckBox")
+        self.gridLayout.addWidget(self.allCheckBox, 0, 0, 1, 2)
+        self.label = QtWidgets.QLabel(DjangoDiffsettingsDataDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 1, 0, 1, 1)
+        self.defaultEdit = QtWidgets.QLineEdit(DjangoDiffsettingsDataDialog)
+        self.defaultEdit.setClearButtonEnabled(True)
+        self.defaultEdit.setObjectName("defaultEdit")
+        self.gridLayout.addWidget(self.defaultEdit, 1, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(DjangoDiffsettingsDataDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
+        self.formatComboBox = QtWidgets.QComboBox(DjangoDiffsettingsDataDialog)
+        self.formatComboBox.setObjectName("formatComboBox")
+        self.gridLayout.addWidget(self.formatComboBox, 2, 1, 1, 1)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoDiffsettingsDataDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 2)
+
+        self.retranslateUi(DjangoDiffsettingsDataDialog)
+        self.buttonBox.accepted.connect(DjangoDiffsettingsDataDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoDiffsettingsDataDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoDiffsettingsDataDialog)
+
+    def retranslateUi(self, DjangoDiffsettingsDataDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoDiffsettingsDataDialog.setWindowTitle(_translate("DjangoDiffsettingsDataDialog", "diffsettings Command Options"))
+        self.allCheckBox.setToolTip(_translate("DjangoDiffsettingsDataDialog", "Select to show all settings (even if the have the default value)"))
+        self.allCheckBox.setText(_translate("DjangoDiffsettingsDataDialog", "Show all settings"))
+        self.label.setText(_translate("DjangoDiffsettingsDataDialog", "Default Module:"))
+        self.defaultEdit.setToolTip(_translate("DjangoDiffsettingsDataDialog", "Enter the name of the module containing the default settings (1.11.0+ only)"))
+        self.label_2.setText(_translate("DjangoDiffsettingsDataDialog", "Output Format:"))
+        self.formatComboBox.setToolTip(_translate("DjangoDiffsettingsDataDialog", "Select the output format (2.0.0+ only)"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoDiffsettingsDataDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoDiffsettingsDataDialog()
+    ui.setupUi(DjangoDiffsettingsDataDialog)
+    DjangoDiffsettingsDataDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoDumpdataDataDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,119 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoDumpdataDataDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoDumpdataDataDialog(object):
+    def setupUi(self, DjangoDumpdataDataDialog):
+        DjangoDumpdataDataDialog.setObjectName("DjangoDumpdataDataDialog")
+        DjangoDumpdataDataDialog.resize(600, 287)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(DjangoDumpdataDataDialog.sizePolicy().hasHeightForWidth())
+        DjangoDumpdataDataDialog.setSizePolicy(sizePolicy)
+        DjangoDumpdataDataDialog.setSizeGripEnabled(True)
+        self.verticalLayout_4 = QtWidgets.QVBoxLayout(DjangoDumpdataDataDialog)
+        self.verticalLayout_4.setContentsMargins(6, 6, 6, 6)
+        self.verticalLayout_4.setSpacing(6)
+        self.verticalLayout_4.setObjectName("verticalLayout_4")
+        self.applicationsGroup = QtWidgets.QGroupBox(DjangoDumpdataDataDialog)
+        self.applicationsGroup.setObjectName("applicationsGroup")
+        self.verticalLayout = QtWidgets.QVBoxLayout(self.applicationsGroup)
+        self.verticalLayout.setContentsMargins(6, 6, 6, 6)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label = QtWidgets.QLabel(self.applicationsGroup)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+        self.label.setSizePolicy(sizePolicy)
+        self.label.setObjectName("label")
+        self.verticalLayout.addWidget(self.label)
+        self.applicationsCombo = QtWidgets.QComboBox(self.applicationsGroup)
+        self.applicationsCombo.setEditable(True)
+        self.applicationsCombo.setObjectName("applicationsCombo")
+        self.verticalLayout.addWidget(self.applicationsCombo)
+        self.verticalLayout_4.addWidget(self.applicationsGroup)
+        self.excludeGroup = QtWidgets.QGroupBox(DjangoDumpdataDataDialog)
+        self.excludeGroup.setObjectName("excludeGroup")
+        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.excludeGroup)
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.label_2 = QtWidgets.QLabel(self.excludeGroup)
+        self.label_2.setObjectName("label_2")
+        self.verticalLayout_2.addWidget(self.label_2)
+        self.excludeCombo = QtWidgets.QComboBox(self.excludeGroup)
+        self.excludeCombo.setEditable(True)
+        self.excludeCombo.setObjectName("excludeCombo")
+        self.verticalLayout_2.addWidget(self.excludeCombo)
+        self.verticalLayout_4.addWidget(self.excludeGroup)
+        self.formatGroup = QtWidgets.QGroupBox(DjangoDumpdataDataDialog)
+        self.formatGroup.setObjectName("formatGroup")
+        self.gridLayout = QtWidgets.QGridLayout(self.formatGroup)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label_3 = QtWidgets.QLabel(self.formatGroup)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout.addWidget(self.label_3, 0, 0, 1, 1)
+        self.formatCombo = QtWidgets.QComboBox(self.formatGroup)
+        self.formatCombo.setSizeAdjustPolicy(QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToContents)
+        self.formatCombo.setObjectName("formatCombo")
+        self.gridLayout.addWidget(self.formatCombo, 0, 1, 1, 2)
+        spacerItem = QtWidgets.QSpacerItem(374, 19, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridLayout.addItem(spacerItem, 0, 3, 1, 1)
+        self.label_4 = QtWidgets.QLabel(self.formatGroup)
+        self.label_4.setObjectName("label_4")
+        self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1)
+        self.indentationSpinBox = QtWidgets.QSpinBox(self.formatGroup)
+        self.indentationSpinBox.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
+        self.indentationSpinBox.setMinimum(2)
+        self.indentationSpinBox.setMaximum(12)
+        self.indentationSpinBox.setSingleStep(2)
+        self.indentationSpinBox.setProperty("value", 2)
+        self.indentationSpinBox.setObjectName("indentationSpinBox")
+        self.gridLayout.addWidget(self.indentationSpinBox, 1, 1, 1, 1)
+        spacerItem1 = QtWidgets.QSpacerItem(389, 18, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridLayout.addItem(spacerItem1, 1, 2, 1, 2)
+        self.verticalLayout_4.addWidget(self.formatGroup)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoDumpdataDataDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout_4.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoDumpdataDataDialog)
+        self.buttonBox.accepted.connect(DjangoDumpdataDataDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoDumpdataDataDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoDumpdataDataDialog)
+        DjangoDumpdataDataDialog.setTabOrder(self.applicationsCombo, self.excludeCombo)
+        DjangoDumpdataDataDialog.setTabOrder(self.excludeCombo, self.formatCombo)
+        DjangoDumpdataDataDialog.setTabOrder(self.formatCombo, self.indentationSpinBox)
+        DjangoDumpdataDataDialog.setTabOrder(self.indentationSpinBox, self.buttonBox)
+
+    def retranslateUi(self, DjangoDumpdataDataDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoDumpdataDataDialog.setWindowTitle(_translate("DjangoDumpdataDataDialog", "dumpdata Command Options"))
+        self.applicationsGroup.setTitle(_translate("DjangoDumpdataDataDialog", "Applications"))
+        self.label.setText(_translate("DjangoDumpdataDataDialog", "Enter the list of applications separated by spaces. Leave empty for all."))
+        self.excludeGroup.setTitle(_translate("DjangoDumpdataDataDialog", "Exclude Applications"))
+        self.label_2.setText(_translate("DjangoDumpdataDataDialog", "Enter the list of applications separated by spaces."))
+        self.formatGroup.setTitle(_translate("DjangoDumpdataDataDialog", "Dump Format"))
+        self.label_3.setText(_translate("DjangoDumpdataDataDialog", "Serialization Format:"))
+        self.label_4.setText(_translate("DjangoDumpdataDataDialog", "Indentation Level:"))
+        self.indentationSpinBox.setToolTip(_translate("DjangoDumpdataDataDialog", "Enter the indentation level to be used when pretty-printing output"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoDumpdataDataDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoDumpdataDataDialog()
+    ui.setupUi(DjangoDumpdataDataDialog)
+    DjangoDumpdataDataDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoLoaddataDataDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,103 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoLoaddataDataDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoLoaddataDataDialog(object):
+    def setupUi(self, DjangoLoaddataDataDialog):
+        DjangoLoaddataDataDialog.setObjectName("DjangoLoaddataDataDialog")
+        DjangoLoaddataDataDialog.resize(600, 346)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(DjangoLoaddataDataDialog.sizePolicy().hasHeightForWidth())
+        DjangoLoaddataDataDialog.setSizePolicy(sizePolicy)
+        DjangoLoaddataDataDialog.setSizeGripEnabled(True)
+        self.verticalLayout_2 = QtWidgets.QVBoxLayout(DjangoLoaddataDataDialog)
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.gridLayout_2 = QtWidgets.QGridLayout()
+        self.gridLayout_2.setObjectName("gridLayout_2")
+        self.ignoreCheckBox = QtWidgets.QCheckBox(DjangoLoaddataDataDialog)
+        self.ignoreCheckBox.setObjectName("ignoreCheckBox")
+        self.gridLayout_2.addWidget(self.ignoreCheckBox, 0, 0, 1, 2)
+        self.label_2 = QtWidgets.QLabel(DjangoLoaddataDataDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout_2.addWidget(self.label_2, 1, 0, 1, 1)
+        self.appEdit = QtWidgets.QLineEdit(DjangoLoaddataDataDialog)
+        self.appEdit.setClearButtonEnabled(True)
+        self.appEdit.setObjectName("appEdit")
+        self.gridLayout_2.addWidget(self.appEdit, 1, 1, 1, 1)
+        self.verticalLayout_2.addLayout(self.gridLayout_2)
+        self.groupBox = QtWidgets.QGroupBox(DjangoLoaddataDataDialog)
+        self.groupBox.setObjectName("groupBox")
+        self.gridLayout = QtWidgets.QGridLayout(self.groupBox)
+        self.gridLayout.setHorizontalSpacing(0)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(self.groupBox)
+        self.label.setWordWrap(True)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 2)
+        self.fixturesEdit = QtWidgets.QLineEdit(self.groupBox)
+        self.fixturesEdit.setClearButtonEnabled(True)
+        self.fixturesEdit.setObjectName("fixturesEdit")
+        self.gridLayout.addWidget(self.fixturesEdit, 1, 0, 1, 1)
+        self.fixtureFileButton = QtWidgets.QToolButton(self.groupBox)
+        self.fixtureFileButton.setObjectName("fixtureFileButton")
+        self.gridLayout.addWidget(self.fixtureFileButton, 1, 1, 1, 1)
+        self.verticalLayout_2.addWidget(self.groupBox)
+        self.excludeBox = QtWidgets.QGroupBox(DjangoLoaddataDataDialog)
+        self.excludeBox.setObjectName("excludeBox")
+        self.verticalLayout = QtWidgets.QVBoxLayout(self.excludeBox)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label_3 = QtWidgets.QLabel(self.excludeBox)
+        self.label_3.setWordWrap(True)
+        self.label_3.setObjectName("label_3")
+        self.verticalLayout.addWidget(self.label_3)
+        self.excludeEdit = QtWidgets.QLineEdit(self.excludeBox)
+        self.excludeEdit.setClearButtonEnabled(True)
+        self.excludeEdit.setObjectName("excludeEdit")
+        self.verticalLayout.addWidget(self.excludeEdit)
+        self.verticalLayout_2.addWidget(self.excludeBox)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoLoaddataDataDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout_2.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoLoaddataDataDialog)
+        self.buttonBox.accepted.connect(DjangoLoaddataDataDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoLoaddataDataDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoLoaddataDataDialog)
+        DjangoLoaddataDataDialog.setTabOrder(self.ignoreCheckBox, self.appEdit)
+        DjangoLoaddataDataDialog.setTabOrder(self.appEdit, self.fixturesEdit)
+        DjangoLoaddataDataDialog.setTabOrder(self.fixturesEdit, self.fixtureFileButton)
+        DjangoLoaddataDataDialog.setTabOrder(self.fixtureFileButton, self.excludeEdit)
+
+    def retranslateUi(self, DjangoLoaddataDataDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoLoaddataDataDialog.setWindowTitle(_translate("DjangoLoaddataDataDialog", "loaddata Command Options"))
+        self.ignoreCheckBox.setToolTip(_translate("DjangoLoaddataDataDialog", "Select to ignore fields and models that were deleted since the creation of the fixture"))
+        self.ignoreCheckBox.setText(_translate("DjangoLoaddataDataDialog", "Ignore non-existent fields and models"))
+        self.label_2.setText(_translate("DjangoLoaddataDataDialog", "Application Label:"))
+        self.appEdit.setToolTip(_translate("DjangoLoaddataDataDialog", "Enter the label of an application to search for fixtures"))
+        self.groupBox.setTitle(_translate("DjangoLoaddataDataDialog", "Fixtures"))
+        self.label.setText(_translate("DjangoLoaddataDataDialog", "Enter the list of fixture patterns or the path of a fixture file:"))
+        self.fixtureFileButton.setToolTip(_translate("DjangoLoaddataDataDialog", "Select a fixture file via a file selection dialog"))
+        self.excludeBox.setTitle(_translate("DjangoLoaddataDataDialog", "Exclude"))
+        self.label_3.setText(_translate("DjangoLoaddataDataDialog", "Enter the list of applications and models to omit searching for fixtures:"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoLoaddataDataDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoLoaddataDataDialog()
+    ui.setupUi(DjangoLoaddataDataDialog)
+    DjangoLoaddataDataDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoMakeMigrationsDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,89 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoMakeMigrationsDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoMakeMigrationsDialog(object):
+    def setupUi(self, DjangoMakeMigrationsDialog):
+        DjangoMakeMigrationsDialog.setObjectName("DjangoMakeMigrationsDialog")
+        DjangoMakeMigrationsDialog.resize(500, 198)
+        DjangoMakeMigrationsDialog.setSizeGripEnabled(True)
+        self.gridLayout = QtWidgets.QGridLayout(DjangoMakeMigrationsDialog)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(DjangoMakeMigrationsDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.applicationsComboBox = QtWidgets.QComboBox(DjangoMakeMigrationsDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.applicationsComboBox.sizePolicy().hasHeightForWidth())
+        self.applicationsComboBox.setSizePolicy(sizePolicy)
+        self.applicationsComboBox.setEditable(True)
+        self.applicationsComboBox.setObjectName("applicationsComboBox")
+        self.gridLayout.addWidget(self.applicationsComboBox, 0, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(DjangoMakeMigrationsDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.nameEdit = QtWidgets.QLineEdit(DjangoMakeMigrationsDialog)
+        self.nameEdit.setClearButtonEnabled(True)
+        self.nameEdit.setObjectName("nameEdit")
+        self.gridLayout.addWidget(self.nameEdit, 1, 1, 1, 1)
+        self.emptyCheckBox = QtWidgets.QCheckBox(DjangoMakeMigrationsDialog)
+        self.emptyCheckBox.setObjectName("emptyCheckBox")
+        self.gridLayout.addWidget(self.emptyCheckBox, 2, 0, 1, 2)
+        self.mergeCheckBox = QtWidgets.QCheckBox(DjangoMakeMigrationsDialog)
+        self.mergeCheckBox.setObjectName("mergeCheckBox")
+        self.gridLayout.addWidget(self.mergeCheckBox, 3, 0, 1, 2)
+        self.dryrunCheckBox = QtWidgets.QCheckBox(DjangoMakeMigrationsDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.dryrunCheckBox.sizePolicy().hasHeightForWidth())
+        self.dryrunCheckBox.setSizePolicy(sizePolicy)
+        self.dryrunCheckBox.setObjectName("dryrunCheckBox")
+        self.gridLayout.addWidget(self.dryrunCheckBox, 4, 0, 1, 2)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoMakeMigrationsDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 2)
+
+        self.retranslateUi(DjangoMakeMigrationsDialog)
+        self.buttonBox.accepted.connect(DjangoMakeMigrationsDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoMakeMigrationsDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoMakeMigrationsDialog)
+        DjangoMakeMigrationsDialog.setTabOrder(self.applicationsComboBox, self.nameEdit)
+        DjangoMakeMigrationsDialog.setTabOrder(self.nameEdit, self.emptyCheckBox)
+        DjangoMakeMigrationsDialog.setTabOrder(self.emptyCheckBox, self.mergeCheckBox)
+        DjangoMakeMigrationsDialog.setTabOrder(self.mergeCheckBox, self.dryrunCheckBox)
+
+    def retranslateUi(self, DjangoMakeMigrationsDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoMakeMigrationsDialog.setWindowTitle(_translate("DjangoMakeMigrationsDialog", "Make Migrations"))
+        self.label.setText(_translate("DjangoMakeMigrationsDialog", "Applications:"))
+        self.applicationsComboBox.setToolTip(_translate("DjangoMakeMigrationsDialog", "Enter the list of applications separated by spaces."))
+        self.label_2.setText(_translate("DjangoMakeMigrationsDialog", "Name:"))
+        self.nameEdit.setToolTip(_translate("DjangoMakeMigrationsDialog", "Enter a name for the migration"))
+        self.emptyCheckBox.setToolTip(_translate("DjangoMakeMigrationsDialog", "Select to create empty migrations"))
+        self.emptyCheckBox.setText(_translate("DjangoMakeMigrationsDialog", "Create empty migrations"))
+        self.mergeCheckBox.setToolTip(_translate("DjangoMakeMigrationsDialog", "Select to fix migration conflicts"))
+        self.mergeCheckBox.setText(_translate("DjangoMakeMigrationsDialog", "Fix migration conflicts"))
+        self.dryrunCheckBox.setToolTip(_translate("DjangoMakeMigrationsDialog", "Select to perform a dry-run"))
+        self.dryrunCheckBox.setText(_translate("DjangoMakeMigrationsDialog", "Dry-Run only"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoMakeMigrationsDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoMakeMigrationsDialog()
+    ui.setupUi(DjangoMakeMigrationsDialog)
+    DjangoMakeMigrationsDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoMigrationSelectionDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,68 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoMigrationSelectionDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoMigrationSelectionDialog(object):
+    def setupUi(self, DjangoMigrationSelectionDialog):
+        DjangoMigrationSelectionDialog.setObjectName("DjangoMigrationSelectionDialog")
+        DjangoMigrationSelectionDialog.resize(561, 110)
+        DjangoMigrationSelectionDialog.setSizeGripEnabled(True)
+        self.gridLayout = QtWidgets.QGridLayout(DjangoMigrationSelectionDialog)
+        self.gridLayout.setObjectName("gridLayout")
+        self.applicationComboBox = QtWidgets.QComboBox(DjangoMigrationSelectionDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.applicationComboBox.sizePolicy().hasHeightForWidth())
+        self.applicationComboBox.setSizePolicy(sizePolicy)
+        self.applicationComboBox.setObjectName("applicationComboBox")
+        self.gridLayout.addWidget(self.applicationComboBox, 0, 1, 1, 1)
+        self.migrationsComboBox = QtWidgets.QComboBox(DjangoMigrationSelectionDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.migrationsComboBox.sizePolicy().hasHeightForWidth())
+        self.migrationsComboBox.setSizePolicy(sizePolicy)
+        self.migrationsComboBox.setObjectName("migrationsComboBox")
+        self.gridLayout.addWidget(self.migrationsComboBox, 1, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(DjangoMigrationSelectionDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.label = QtWidgets.QLabel(DjangoMigrationSelectionDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoMigrationSelectionDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.gridLayout.addWidget(self.buttonBox, 2, 0, 1, 2)
+
+        self.retranslateUi(DjangoMigrationSelectionDialog)
+        self.buttonBox.accepted.connect(DjangoMigrationSelectionDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoMigrationSelectionDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoMigrationSelectionDialog)
+
+    def retranslateUi(self, DjangoMigrationSelectionDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoMigrationSelectionDialog.setWindowTitle(_translate("DjangoMigrationSelectionDialog", "Select Migration"))
+        self.applicationComboBox.setToolTip(_translate("DjangoMigrationSelectionDialog", "Select the application"))
+        self.migrationsComboBox.setToolTip(_translate("DjangoMigrationSelectionDialog", "Select a migration"))
+        self.label_2.setText(_translate("DjangoMigrationSelectionDialog", "Migration:"))
+        self.label.setText(_translate("DjangoMigrationSelectionDialog", "Application:"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoMigrationSelectionDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoMigrationSelectionDialog()
+    ui.setupUi(DjangoMigrationSelectionDialog)
+    DjangoMigrationSelectionDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoMigrationsListDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,72 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoMigrationsListDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoMigrationsListDialog(object):
+    def setupUi(self, DjangoMigrationsListDialog):
+        DjangoMigrationsListDialog.setObjectName("DjangoMigrationsListDialog")
+        DjangoMigrationsListDialog.resize(550, 500)
+        DjangoMigrationsListDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(DjangoMigrationsListDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.migrationsList = QtWidgets.QTreeWidget(DjangoMigrationsListDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(3)
+        sizePolicy.setHeightForWidth(self.migrationsList.sizePolicy().hasHeightForWidth())
+        self.migrationsList.setSizePolicy(sizePolicy)
+        self.migrationsList.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu)
+        self.migrationsList.setAlternatingRowColors(True)
+        self.migrationsList.setObjectName("migrationsList")
+        self.migrationsList.headerItem().setText(0, "1")
+        self.migrationsList.header().setStretchLastSection(False)
+        self.verticalLayout.addWidget(self.migrationsList)
+        self.errorGroup = QtWidgets.QGroupBox(DjangoMigrationsListDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(1)
+        sizePolicy.setHeightForWidth(self.errorGroup.sizePolicy().hasHeightForWidth())
+        self.errorGroup.setSizePolicy(sizePolicy)
+        self.errorGroup.setObjectName("errorGroup")
+        self.vboxlayout = QtWidgets.QVBoxLayout(self.errorGroup)
+        self.vboxlayout.setContentsMargins(6, 6, 6, 6)
+        self.vboxlayout.setSpacing(6)
+        self.vboxlayout.setObjectName("vboxlayout")
+        self.errors = QtWidgets.QTextEdit(self.errorGroup)
+        self.errors.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
+        self.errors.setReadOnly(True)
+        self.errors.setAcceptRichText(False)
+        self.errors.setObjectName("errors")
+        self.vboxlayout.addWidget(self.errors)
+        self.verticalLayout.addWidget(self.errorGroup)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoMigrationsListDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Close)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoMigrationsListDialog)
+        self.buttonBox.accepted.connect(DjangoMigrationsListDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoMigrationsListDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoMigrationsListDialog)
+
+    def retranslateUi(self, DjangoMigrationsListDialog):
+        _translate = QtCore.QCoreApplication.translate
+        self.errorGroup.setTitle(_translate("DjangoMigrationsListDialog", "Errors"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoMigrationsListDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoMigrationsListDialog()
+    ui.setupUi(DjangoMigrationsListDialog)
+    DjangoMigrationsListDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoRunTestServerDataDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,56 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoRunTestServerDataDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoRunTestServerDataDialog(object):
+    def setupUi(self, DjangoRunTestServerDataDialog):
+        DjangoRunTestServerDataDialog.setObjectName("DjangoRunTestServerDataDialog")
+        DjangoRunTestServerDataDialog.resize(600, 92)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Minimum)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(DjangoRunTestServerDataDialog.sizePolicy().hasHeightForWidth())
+        DjangoRunTestServerDataDialog.setSizePolicy(sizePolicy)
+        DjangoRunTestServerDataDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(DjangoRunTestServerDataDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label = QtWidgets.QLabel(DjangoRunTestServerDataDialog)
+        self.label.setObjectName("label")
+        self.verticalLayout.addWidget(self.label)
+        self.fixturePicker = EricPathPicker(DjangoRunTestServerDataDialog)
+        self.fixturePicker.setFocusPolicy(QtCore.Qt.FocusPolicy.WheelFocus)
+        self.fixturePicker.setObjectName("fixturePicker")
+        self.verticalLayout.addWidget(self.fixturePicker)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoRunTestServerDataDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoRunTestServerDataDialog)
+        self.buttonBox.accepted.connect(DjangoRunTestServerDataDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoRunTestServerDataDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoRunTestServerDataDialog)
+
+    def retranslateUi(self, DjangoRunTestServerDataDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoRunTestServerDataDialog.setWindowTitle(_translate("DjangoRunTestServerDataDialog", "testserver Command Options"))
+        self.label.setText(_translate("DjangoRunTestServerDataDialog", "Enter the list of fixture patterns or the path of a fixture file."))
+from eric7.EricWidgets.EricPathPicker import EricPathPicker
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoRunTestServerDataDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoRunTestServerDataDialog()
+    ui.setupUi(DjangoRunTestServerDataDialog)
+    DjangoRunTestServerDataDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoSendTestEmailDataDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,60 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoSendTestEmailDataDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoSendTestEmailDataDialog(object):
+    def setupUi(self, DjangoSendTestEmailDataDialog):
+        DjangoSendTestEmailDataDialog.setObjectName("DjangoSendTestEmailDataDialog")
+        DjangoSendTestEmailDataDialog.resize(400, 350)
+        DjangoSendTestEmailDataDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(DjangoSendTestEmailDataDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.managersCheckBox = QtWidgets.QCheckBox(DjangoSendTestEmailDataDialog)
+        self.managersCheckBox.setObjectName("managersCheckBox")
+        self.verticalLayout.addWidget(self.managersCheckBox)
+        self.adminsCheckBox = QtWidgets.QCheckBox(DjangoSendTestEmailDataDialog)
+        self.adminsCheckBox.setObjectName("adminsCheckBox")
+        self.verticalLayout.addWidget(self.adminsCheckBox)
+        self.label = QtWidgets.QLabel(DjangoSendTestEmailDataDialog)
+        self.label.setObjectName("label")
+        self.verticalLayout.addWidget(self.label)
+        self.recipientsEdit = QtWidgets.QPlainTextEdit(DjangoSendTestEmailDataDialog)
+        self.recipientsEdit.setObjectName("recipientsEdit")
+        self.verticalLayout.addWidget(self.recipientsEdit)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoSendTestEmailDataDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(DjangoSendTestEmailDataDialog)
+        self.buttonBox.accepted.connect(DjangoSendTestEmailDataDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoSendTestEmailDataDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoSendTestEmailDataDialog)
+
+    def retranslateUi(self, DjangoSendTestEmailDataDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoSendTestEmailDataDialog.setWindowTitle(_translate("DjangoSendTestEmailDataDialog", "sendtestemail Command Options"))
+        self.managersCheckBox.setToolTip(_translate("DjangoSendTestEmailDataDialog", "Select to send a test email to the defined managers"))
+        self.managersCheckBox.setText(_translate("DjangoSendTestEmailDataDialog", "Send to Managers"))
+        self.adminsCheckBox.setToolTip(_translate("DjangoSendTestEmailDataDialog", "Select to send a test email to the defined administrators"))
+        self.adminsCheckBox.setText(_translate("DjangoSendTestEmailDataDialog", "Send to Administrators"))
+        self.label.setText(_translate("DjangoSendTestEmailDataDialog", "Recipients (one per line):"))
+        self.recipientsEdit.setToolTip(_translate("DjangoSendTestEmailDataDialog", "Enter email addresses one per line"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoSendTestEmailDataDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoSendTestEmailDataDialog()
+    ui.setupUi(DjangoSendTestEmailDataDialog)
+    DjangoSendTestEmailDataDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoSquashMigrationSelectionDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,99 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoSquashMigrationSelectionDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoSquashMigrationSelectionDialog(object):
+    def setupUi(self, DjangoSquashMigrationSelectionDialog):
+        DjangoSquashMigrationSelectionDialog.setObjectName("DjangoSquashMigrationSelectionDialog")
+        DjangoSquashMigrationSelectionDialog.resize(561, 202)
+        DjangoSquashMigrationSelectionDialog.setSizeGripEnabled(True)
+        self.gridLayout = QtWidgets.QGridLayout(DjangoSquashMigrationSelectionDialog)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(DjangoSquashMigrationSelectionDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.applicationComboBox = QtWidgets.QComboBox(DjangoSquashMigrationSelectionDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.applicationComboBox.sizePolicy().hasHeightForWidth())
+        self.applicationComboBox.setSizePolicy(sizePolicy)
+        self.applicationComboBox.setObjectName("applicationComboBox")
+        self.gridLayout.addWidget(self.applicationComboBox, 0, 1, 1, 1)
+        self.startLabel = QtWidgets.QLabel(DjangoSquashMigrationSelectionDialog)
+        self.startLabel.setObjectName("startLabel")
+        self.gridLayout.addWidget(self.startLabel, 1, 0, 1, 1)
+        self.startMigrationComboBox = QtWidgets.QComboBox(DjangoSquashMigrationSelectionDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.startMigrationComboBox.sizePolicy().hasHeightForWidth())
+        self.startMigrationComboBox.setSizePolicy(sizePolicy)
+        self.startMigrationComboBox.setObjectName("startMigrationComboBox")
+        self.gridLayout.addWidget(self.startMigrationComboBox, 1, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(DjangoSquashMigrationSelectionDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1)
+        self.endMigrationComboBox = QtWidgets.QComboBox(DjangoSquashMigrationSelectionDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.endMigrationComboBox.sizePolicy().hasHeightForWidth())
+        self.endMigrationComboBox.setSizePolicy(sizePolicy)
+        self.endMigrationComboBox.setObjectName("endMigrationComboBox")
+        self.gridLayout.addWidget(self.endMigrationComboBox, 2, 1, 1, 1)
+        self.label_3 = QtWidgets.QLabel(DjangoSquashMigrationSelectionDialog)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout.addWidget(self.label_3, 3, 0, 1, 1)
+        self.nameEdit = QtWidgets.QLineEdit(DjangoSquashMigrationSelectionDialog)
+        self.nameEdit.setClearButtonEnabled(True)
+        self.nameEdit.setObjectName("nameEdit")
+        self.gridLayout.addWidget(self.nameEdit, 3, 1, 1, 1)
+        self.noOptimizeCheckBox = QtWidgets.QCheckBox(DjangoSquashMigrationSelectionDialog)
+        self.noOptimizeCheckBox.setObjectName("noOptimizeCheckBox")
+        self.gridLayout.addWidget(self.noOptimizeCheckBox, 4, 0, 1, 2)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoSquashMigrationSelectionDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 2)
+
+        self.retranslateUi(DjangoSquashMigrationSelectionDialog)
+        self.buttonBox.accepted.connect(DjangoSquashMigrationSelectionDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoSquashMigrationSelectionDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoSquashMigrationSelectionDialog)
+        DjangoSquashMigrationSelectionDialog.setTabOrder(self.applicationComboBox, self.startMigrationComboBox)
+        DjangoSquashMigrationSelectionDialog.setTabOrder(self.startMigrationComboBox, self.endMigrationComboBox)
+        DjangoSquashMigrationSelectionDialog.setTabOrder(self.endMigrationComboBox, self.nameEdit)
+        DjangoSquashMigrationSelectionDialog.setTabOrder(self.nameEdit, self.noOptimizeCheckBox)
+
+    def retranslateUi(self, DjangoSquashMigrationSelectionDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoSquashMigrationSelectionDialog.setWindowTitle(_translate("DjangoSquashMigrationSelectionDialog", "Squash Migrations"))
+        self.label.setText(_translate("DjangoSquashMigrationSelectionDialog", "Application:"))
+        self.applicationComboBox.setToolTip(_translate("DjangoSquashMigrationSelectionDialog", "Select the application"))
+        self.startLabel.setText(_translate("DjangoSquashMigrationSelectionDialog", "Start Migration:"))
+        self.startMigrationComboBox.setToolTip(_translate("DjangoSquashMigrationSelectionDialog", "Select the start migration (1.9.0+ only)"))
+        self.label_2.setText(_translate("DjangoSquashMigrationSelectionDialog", "End Migration:"))
+        self.endMigrationComboBox.setToolTip(_translate("DjangoSquashMigrationSelectionDialog", "Select a migration"))
+        self.label_3.setText(_translate("DjangoSquashMigrationSelectionDialog", "Migration Name:"))
+        self.nameEdit.setToolTip(_translate("DjangoSquashMigrationSelectionDialog", "Enter an optional name for the migration (2.0.0+ only)"))
+        self.noOptimizeCheckBox.setToolTip(_translate("DjangoSquashMigrationSelectionDialog", "Select to not optimize the squashed migration"))
+        self.noOptimizeCheckBox.setText(_translate("DjangoSquashMigrationSelectionDialog", "Dont\' optimize"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoSquashMigrationSelectionDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoSquashMigrationSelectionDialog()
+    ui.setupUi(DjangoSquashMigrationSelectionDialog)
+    DjangoSquashMigrationSelectionDialog.show()
+    sys.exit(app.exec())
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectDjango/Ui_DjangoTestDataDialog.py	Mon Oct 28 16:24:54 2024 +0100
@@ -0,0 +1,88 @@
+# Form implementation generated from reading ui file '/home/detlev/Development/Python/Eric/eric7_plugins/Plugin_Project_Django/ProjectDjango/DjangoTestDataDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.4.0
+#
+# 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_DjangoTestDataDialog(object):
+    def setupUi(self, DjangoTestDataDialog):
+        DjangoTestDataDialog.setObjectName("DjangoTestDataDialog")
+        DjangoTestDataDialog.resize(598, 232)
+        DjangoTestDataDialog.setSizeGripEnabled(True)
+        self.gridLayout = QtWidgets.QGridLayout(DjangoTestDataDialog)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(DjangoTestDataDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.labelsComboBox = QtWidgets.QComboBox(DjangoTestDataDialog)
+        self.labelsComboBox.setEditable(True)
+        self.labelsComboBox.setObjectName("labelsComboBox")
+        self.gridLayout.addWidget(self.labelsComboBox, 0, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(DjangoTestDataDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.testFilePatternsEdit = QtWidgets.QLineEdit(DjangoTestDataDialog)
+        self.testFilePatternsEdit.setClearButtonEnabled(True)
+        self.testFilePatternsEdit.setObjectName("testFilePatternsEdit")
+        self.gridLayout.addWidget(self.testFilePatternsEdit, 1, 1, 1, 1)
+        self.label_3 = QtWidgets.QLabel(DjangoTestDataDialog)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
+        self.tagsComboBox = QtWidgets.QComboBox(DjangoTestDataDialog)
+        self.tagsComboBox.setEditable(True)
+        self.tagsComboBox.setObjectName("tagsComboBox")
+        self.gridLayout.addWidget(self.tagsComboBox, 2, 1, 1, 1)
+        self.label_4 = QtWidgets.QLabel(DjangoTestDataDialog)
+        self.label_4.setObjectName("label_4")
+        self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
+        self.excludeTagsComboBox = QtWidgets.QComboBox(DjangoTestDataDialog)
+        self.excludeTagsComboBox.setEditable(True)
+        self.excludeTagsComboBox.setObjectName("excludeTagsComboBox")
+        self.gridLayout.addWidget(self.excludeTagsComboBox, 3, 1, 1, 1)
+        self.keepCheckBox = QtWidgets.QCheckBox(DjangoTestDataDialog)
+        self.keepCheckBox.setObjectName("keepCheckBox")
+        self.gridLayout.addWidget(self.keepCheckBox, 4, 0, 1, 2)
+        self.reverseCheckBox = QtWidgets.QCheckBox(DjangoTestDataDialog)
+        self.reverseCheckBox.setObjectName("reverseCheckBox")
+        self.gridLayout.addWidget(self.reverseCheckBox, 5, 0, 1, 2)
+        self.buttonBox = QtWidgets.QDialogButtonBox(DjangoTestDataDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.gridLayout.addWidget(self.buttonBox, 6, 0, 1, 2)
+
+        self.retranslateUi(DjangoTestDataDialog)
+        self.buttonBox.accepted.connect(DjangoTestDataDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DjangoTestDataDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DjangoTestDataDialog)
+
+    def retranslateUi(self, DjangoTestDataDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DjangoTestDataDialog.setWindowTitle(_translate("DjangoTestDataDialog", "Django Test Data"))
+        self.label.setText(_translate("DjangoTestDataDialog", "Test Labels:"))
+        self.labelsComboBox.setToolTip(_translate("DjangoTestDataDialog", "Enter the tests to be performed separated by space"))
+        self.label_2.setText(_translate("DjangoTestDataDialog", "Test File Pattern:"))
+        self.testFilePatternsEdit.setToolTip(_translate("DjangoTestDataDialog", "Enter the test file pattern"))
+        self.label_3.setText(_translate("DjangoTestDataDialog", "Tags:"))
+        self.tagsComboBox.setToolTip(_translate("DjangoTestDataDialog", "Enter the test tags to be run separated by space"))
+        self.label_4.setText(_translate("DjangoTestDataDialog", "Exclude Tags:"))
+        self.excludeTagsComboBox.setToolTip(_translate("DjangoTestDataDialog", "Enter the test tags to be skipped separated by space"))
+        self.keepCheckBox.setToolTip(_translate("DjangoTestDataDialog", "Select to keep the test database"))
+        self.keepCheckBox.setText(_translate("DjangoTestDataDialog", "Keep Test Database"))
+        self.reverseCheckBox.setToolTip(_translate("DjangoTestDataDialog", "Select to run the tests in reverse order"))
+        self.reverseCheckBox.setText(_translate("DjangoTestDataDialog", "Run Tests in Reverse Order"))
+
+
+if __name__ == "__main__":
+    import sys
+    app = QtWidgets.QApplication(sys.argv)
+    DjangoTestDataDialog = QtWidgets.QDialog()
+    ui = Ui_DjangoTestDataDialog()
+    ui.setupUi(DjangoTestDataDialog)
+    DjangoTestDataDialog.show()
+    sys.exit(app.exec())

eric ide

mercurial