ProjectDjango/DjangoMigrationSelectionDialog.py

Sun, 30 Mar 2025 15:25:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 30 Mar 2025 15:25:10 +0200
branch
eric7
changeset 206
4dfd8f6f2503
parent 199
5dfb03b8ee4c
permissions
-rw-r--r--

Created global tag <release-10.4.0>.

74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
197
2667e16a3379 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
3 # Copyright (c) 2016 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to select an application and migration.
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
172
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
12 from PyQt6.QtCore import pyqtSlot
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
13 from PyQt6.QtGui import QIcon
ea7980ded4f3 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 169
diff changeset
14 from PyQt6.QtWidgets import QDialog
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
16 from .Ui_DjangoMigrationSelectionDialog import Ui_DjangoMigrationSelectionDialog
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
19 class DjangoMigrationSelectionDialog(QDialog, Ui_DjangoMigrationSelectionDialog):
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing a dialog to select an application and migration.
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
23
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
24 def __init__(self, migrations, migrationRequired=False, suffix="", parent=None):
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Constructor
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
27
75
0165ce437462 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
28 @param migrations dictionary containing the available migrations
0165ce437462 Continued adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 74
diff changeset
29 @type dict
77
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
30 @param migrationRequired flag indicating that a migration must be
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
31 selected
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
32 @type bool
148
4cb7aa43845d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
33 @param suffix icon suffix
4cb7aa43845d Replaced pixmap icons by vector icons.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
34 @type str
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param parent reference to the parent widget
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @type QWidget
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
169
b8f263e05c39 - implemented some code simplifications
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
38 super().__init__(parent)
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.setupUi(self)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
40
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
41 self.__appliedIcon = QIcon(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
42 os.path.join(
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
43 os.path.dirname(__file__), "icons", "applied-{0}".format(suffix)
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
44 )
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
45 )
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
46
77
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
47 self.__migrationRequired = migrationRequired
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
48
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__migrations = migrations
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.applicationComboBox.addItems(sorted(self.__migrations.keys()))
199
5dfb03b8ee4c Corrected some slots that used the non-existent 'activated(str)' signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
51 self.on_applicationComboBox_currentTextChanged(
5dfb03b8ee4c Corrected some slots that used the non-existent 'activated(str)' signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
52 self.applicationComboBox.currentText()
5dfb03b8ee4c Corrected some slots that used the non-existent 'activated(str)' signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
53 )
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
54
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 msh = self.minimumSizeHint()
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.resize(max(self.width(), msh.width()), msh.height())
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
57
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @pyqtSlot(str)
199
5dfb03b8ee4c Corrected some slots that used the non-existent 'activated(str)' signal.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 197
diff changeset
59 def on_applicationComboBox_currentTextChanged(self, app):
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 Private slot to update the migrations combo box.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
62
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @param app name of the selected application
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @type str
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.migrationsComboBox.clear()
77
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
67 if not self.__migrationRequired:
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
68 self.migrationsComboBox.addItem("")
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 for applied, migration in self.__migrations[app]:
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 if applied:
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.migrationsComboBox.addItem(self.__appliedIcon, migration)
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 else:
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.migrationsComboBox.addItem(migration)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
74
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 def getData(self):
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Public method to get the selected data.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
78
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 @return tuple containing the selected application name and migration
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 @rtype tuple of two str
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
82 return (
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
83 self.applicationComboBox.currentText(),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
84 self.migrationsComboBox.currentText(),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
85 )

eric ide

mercurial