ProjectDjango/DjangoMigrationsListDialog.py

Sat, 28 Dec 2024 16:01:22 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 28 Dec 2024 16:01:22 +0100
branch
eric7
changeset 203
07abb6af9048
parent 197
2667e16a3379
child 204
ef2a6680ad2a
permissions
-rw-r--r--

Added code to automatically add generated migrations to the eric project.

72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
197
2667e16a3379 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
3 # Copyright (c) 2016 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog show a list of all available migrations.
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
188
b08c2cb2e0a0 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
10 from PyQt6.QtCore import QPoint, QProcess, Qt, QTimer, pyqtSlot
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
11 from PyQt6.QtWidgets import (
188
b08c2cb2e0a0 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
12 QAbstractButton,
b08c2cb2e0a0 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
13 QAbstractItemView,
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
14 QDialog,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
15 QDialogButtonBox,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
16 QHeaderView,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
17 QInputDialog,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
18 QLineEdit,
188
b08c2cb2e0a0 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
19 QMenu,
b08c2cb2e0a0 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
20 QTreeWidgetItem,
161
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
21 )
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
181
2f5c3487139c Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
23 from eric7 import Preferences
2f5c3487139c Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 180
diff changeset
24 from eric7.EricWidgets import EricMessageBox
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 from .Ui_DjangoMigrationsListDialog import Ui_DjangoMigrationsListDialog
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 class DjangoMigrationsListDialog(QDialog, Ui_DjangoMigrationsListDialog):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Class implementing a dialog show a list of all available migrations.
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
33
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 MigrationsListMode = "L"
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 MigrationsPlanMode = "P"
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
36
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
37 def __init__(self, mode, django, parent=None):
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Constructor
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
40
75
0165ce437462 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 73
diff changeset
41 @param mode mode of the dialog
0165ce437462 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 73
diff changeset
42 @type str
0165ce437462 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 73
diff changeset
43 @param django reference to the Django project object
0165ce437462 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 73
diff changeset
44 @type Project
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @param parent reference to the parent widget
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @type QWidget
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
169
b8f263e05c39 - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
48 super().__init__(parent)
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.setupUi(self)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
50
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
51 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
52 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
53
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.ioEncoding = Preferences.getSystem("IOEncoding")
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
55
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
56 self.proc = QProcess()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
57 self.proc.finished.connect(self.__procFinished)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
58 self.proc.readyReadStandardOutput.connect(self.__readStdout)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
59 self.proc.readyReadStandardError.connect(self.__readStderr)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
60
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
61 self.__pyExe = ""
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
62 self.__sitePath = ""
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
63
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
64 self.__django = django
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
65
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.__mode = mode
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.setWindowTitle(self.tr("Available Migrations"))
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
69 self.migrationsList.setHeaderLabels(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
70 [
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
71 self.tr("Name"),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
72 ]
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
73 )
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
74 self.migrationsList.setSelectionMode(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
75 QAbstractItemView.SelectionMode.ExtendedSelection
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
76 )
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 else:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.setWindowTitle(self.tr("Migrations Plan"))
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
79 self.migrationsList.setHeaderLabels(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
80 [
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
81 self.tr("Migration"),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
82 self.tr("Dependencies"),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
83 ]
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
84 )
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
85 self.migrationsList.setSelectionMode(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
86 QAbstractItemView.SelectionMode.SingleSelection
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
87 )
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
88
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
89 self.refreshButton = self.buttonBox.addButton(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
90 self.tr("&Refresh"), QDialogButtonBox.ButtonRole.ActionRole
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
91 )
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
92 self.refreshButton.setToolTip(self.tr("Press to refresh the list"))
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
93 self.refreshButton.setEnabled(False)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
94
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @pyqtSlot(QAbstractButton)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 def on_buttonBox_clicked(self, button):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 Private slot called by a button of the button box clicked.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
99
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 @param button button that was clicked
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @type QAbstractButton
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
103 if button == self.buttonBox.button(QDialogButtonBox.StandardButton.Close):
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.close()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
105 elif button == self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel):
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 self.__finish()
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
107 elif button == self.refreshButton:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
108 self.on_refreshButton_clicked()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
109
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 def __finish(self):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 Private slot called when the process finished or the user pressed the
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 button.
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
161
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
115 if (
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
116 self.proc is not None
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
117 and self.proc.state() != QProcess.ProcessState.NotRunning
161
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
118 ):
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.proc.terminate()
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 QTimer.singleShot(2000, self.proc.kill)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.proc.waitForFinished(3000)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
122
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
123 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(True)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
124 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(False)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
125 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
126
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
127 self.refreshButton.setEnabled(True)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
128
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 self.__resizeColumns()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
130
192
a4b66a1acea6 Corrected some code style issues and converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
131 def __procFinished(self, exitCode, exitStatus): # noqa: U100
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 Private slot connected to the finished signal.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
134
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
135 @param exitCode exit code of the process
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
136 @type int
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
137 @param exitStatus exit status of the process
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
138 @type QProcess.ExitStatus
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 self.__finish()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
141
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 def __resizeColumns(self):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 Private method to resize the list columns.
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 self.migrationsList.header().resizeSections(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
147 QHeaderView.ResizeMode.ResizeToContents
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
148 )
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.migrationsList.header().setStretchLastSection(True)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
151
125
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
152 def start(self, pythonExecutable, sitePath, databaseName):
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 Public slot used to start the process.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
155
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @param pythonExecutable Python executable to be used
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 @type str
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @param sitePath path of the site
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @type str
125
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
160 @param databaseName name of the database to be used
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
161 @type str
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
162 @return flag indicating a successful start of the process
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
163 @rtype bool
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 """
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
165 self.__pyExe = pythonExecutable
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
166 self.__sitePath = sitePath
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
167
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
168 self.errorGroup.hide()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
169 self.migrationsList.clear()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
170
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.__lastTopItem = None
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
172
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 if sitePath:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 self.proc.setWorkingDirectory(sitePath)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
175
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 args = []
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 args.append("manage.py")
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 args.append("showmigrations")
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 args.append("--list")
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 else:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 args.append("--plan")
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 args.append("--verbosity")
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 args.append("2")
125
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
185 if databaseName:
d280acf98fb5 - additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 121
diff changeset
186 args.append("--database={0}".format(databaseName))
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
187
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 self.proc.start(pythonExecutable, args)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 procStarted = self.proc.waitForStarted()
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 if not procStarted:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 self.buttonBox.setFocus()
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
192 EricMessageBox.critical(
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 self,
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
194 self.tr("Process Generation Error"),
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 self.tr(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
196 "The process {0} could not be started. "
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
197 "Ensure, that it is in the search path."
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
198 ).format(pythonExecutable),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
199 )
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 return procStarted
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
201
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 def __readStdout(self):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 Private slot to handle the readyReadStdout signal.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
205
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 It reads the output of the process, formats it and inserts it into
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 the contents pane.
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 while self.proc.canReadLine():
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
210 s = str(self.proc.readLine(), self.ioEncoding, "replace").rstrip()
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 self.__createListItem(s)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 else:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 self.__createPlanItem(s)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
215
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 def __createListItem(self, line):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 Private method to create an item for list mode.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
219
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 @param line line of text
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 @type str
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 if not line.startswith(" "):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 # application name
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
225 self.__lastTopItem = QTreeWidgetItem(self.migrationsList, [line.strip()])
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self.__lastTopItem.setExpanded(True)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 else:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 # migration name
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 line = line.strip()
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
230 if line.startswith("["):
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
231 applied = line[:3]
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
232 name = line[3:].strip()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
233 if self.__lastTopItem:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
234 itm = QTreeWidgetItem(self.__lastTopItem, [name])
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
235 else:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
236 itm = QTreeWidgetItem(self.migrationsList, [name])
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
237 if applied[1] == " ":
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
238 itm.setCheckState(0, Qt.CheckState.Unchecked)
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
239 else:
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
240 itm.setCheckState(0, Qt.CheckState.Checked)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
241
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 def __createPlanItem(self, line):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 Private method to create an item for plan mode.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
245
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 @param line line of text
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 @type str
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 line = line.strip()
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 applied = line[:3]
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 parts = line[3:].strip().split(None, 2)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 if len(parts) == 3:
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
253 dependencies = "\n".join(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
254 [d.strip() for d in parts[2].strip()[1:-1].split(",")]
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
255 )
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
256 itm = QTreeWidgetItem(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
257 self.migrationsList,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
258 [
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
259 parts[0].strip(),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
260 dependencies,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
261 ],
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
262 )
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 else:
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
264 itm = QTreeWidgetItem(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
265 self.migrationsList,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
266 [
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
267 parts[0].strip(),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
268 "",
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
269 ],
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
270 )
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 if applied[1] != " ":
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
272 itm.setCheckState(0, Qt.CheckState.Checked)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
273
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 def __readStderr(self):
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 Private slot to handle the readyReadStderr signal.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
277
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 It reads the error output of the process and inserts it into the
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 error pane.
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 """
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 if self.proc is not None:
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 self.errorGroup.show()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
283 s = str(self.proc.readAllStandardError(), self.ioEncoding, "replace")
72
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 self.errors.insertPlainText(s)
0f95786f7868 Did some adjustments to Djange >= 1.9.0, added support for the eric web browser and started adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 self.errors.ensureCursorVisible()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
286
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
287 @pyqtSlot()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
288 def on_refreshButton_clicked(self):
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
289 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
290 Private slot to refresh the log.
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
291 """
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
292 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setEnabled(False)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
293 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setEnabled(True)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
294 self.buttonBox.button(QDialogButtonBox.StandardButton.Cancel).setDefault(True)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
295
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
296 self.refreshButton.setEnabled(False)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
297
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
298 self.start(self.__pyExe, self.__sitePath)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
299
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
300 @pyqtSlot(QPoint)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
301 def on_migrationsList_customContextMenuRequested(self, pos):
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
302 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
303 Private slot to show the context menu.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
304
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
305 @param pos position the context menu was requested at
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
306 @type QPoint
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
307 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
308 menu = QMenu(self.migrationsList)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
309 menu.addAction(self.tr("Apply All Migrations"), self.__applyAllMigrations)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
310
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
311 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
312 selItems = self.migrationsList.selectedItems()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
313 if len(selItems) > 0:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
314 selApps = []
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
315 for itm in selItems:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
316 if itm.parent() is None:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
317 selApps.append(itm)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
318
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
319 menu.addAction(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
320 self.tr("Apply Selected Migrations"), self.__applyMigration
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
321 ).setEnabled(len(selItems) == 1)
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
322 menu.addAction(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
323 self.tr("Unapply Migrations"), self.__unapplyMigration
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
324 ).setEnabled(len(selApps) == 1)
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
325 menu.addSeparator()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
326 menu.addAction(
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
327 self.tr("Make Migrations"), self.__makeMigrations
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
328 ).setEnabled(len(selApps) > 0)
161
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
329 act = menu.addAction(
104
4cd211a73b3e Added functionality to create an empty migration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
330 self.tr("Make Empty Migrations"),
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
331 lambda: self.__makeMigrations(empty=True),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
332 )
161
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
333 act.setEnabled(len(selApps) > 0)
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
334 act = menu.addAction(
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
335 self.tr("Make Migrations (dry-run)"),
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
336 lambda: self.__makeMigrations(dryRun=True),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
337 )
161
208fced62e00 Removed support for Python2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
338 act.setEnabled(len(selApps) > 0)
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
339 else:
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
340 menu.addAction(self.tr("Apply Selected Migrations"), self.__applyMigration)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
341
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
342 menu.popup(self.migrationsList.mapToGlobal(pos))
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
343
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
344 def __applyAllMigrations(self):
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
345 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
346 Private slot to apply all migrations.
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
347 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
348 self.__django.applyMigrations()
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
349 self.on_refreshButton_clicked()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
350
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
351 def __applyMigration(self):
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
352 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
353 Private slot to apply the selected migrations.
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
354 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
355 itm = self.migrationsList.selectedItems()[0]
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
356 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
357 if itm.parent() is None:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
358 # app item
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
359 app = itm.text(0)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
360 migration = None
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
361 else:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
362 migration = itm.text(0)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
363 app = itm.parent().text(0)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
364 else:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
365 app, migration = itm.text(0).split(".", 1)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
366
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
367 self.__django.applyMigrations(app=app, migration=migration)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
368
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
369 self.on_refreshButton_clicked()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
370
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
371 def __unapplyMigration(self):
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
372 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
373 Private slot to unapply the selected migrations.
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
374 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
375 if self.__mode == DjangoMigrationsListDialog.MigrationsListMode:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
376 itm = self.migrationsList.selectedItems()[0]
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
377 if itm.parent() is None:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
378 # only valid for app entries
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
379 app = itm.text(0)
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
380 self.__django.applyMigrations(app=app, migration="zero")
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
381
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
382 self.on_refreshButton_clicked()
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
383
104
4cd211a73b3e Added functionality to create an empty migration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
384 def __makeMigrations(self, dryRun=False, empty=False):
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
385 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
386 Private slot to make migrations for the selected apps.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
387
104
4cd211a73b3e Added functionality to create an empty migration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
388 @param dryRun flag indicating a dry-run
4cd211a73b3e Added functionality to create an empty migration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
389 @type bool
4cd211a73b3e Added functionality to create an empty migration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 93
diff changeset
390 @param empty flag indicating an empty migration
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
391 @type bool
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
392 """
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
393 apps = []
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
394 for itm in self.migrationsList.selectedItems():
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
395 if itm.parent() is None:
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
396 apps.append(itm.text(0))
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
397
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
398 if apps:
169
b8f263e05c39 - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
399 migration, ok = QInputDialog.getText(
b8f263e05c39 - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
400 self,
b8f263e05c39 - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
401 self.tr("Make Migrations"),
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
402 self.tr(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
403 "Enter a name for the migrations (leave empty to"
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
404 " use system supplied name):"
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
405 ),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
406 QLineEdit.EchoMode.Normal,
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
407 )
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
408
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
409 if ok:
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
410 self.__django.makeMigrations(apps, migration, dryRun, empty, True)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
411
73
8a4ccc4f1359 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 72
diff changeset
412 self.on_refreshButton_clicked()

eric ide

mercurial