ProjectDjango/DjangoMigrationSelectionDialog.py

Sat, 23 Dec 2023 15:48:51 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Dec 2023 15:48:51 +0100
branch
eric7
changeset 191
7b03dfe583e3
parent 190
f394b11f9f31
child 197
2667e16a3379
permissions
-rw-r--r--

Updated copyright for 2024.

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
191
7b03dfe583e3 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 190
diff changeset
3 # Copyright (c) 2016 - 2024 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()))
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
51 self.on_applicationComboBox_activated(self.applicationComboBox.currentText())
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
52
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 msh = self.minimumSizeHint()
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 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
55
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @pyqtSlot(str)
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def on_applicationComboBox_activated(self, app):
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 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
60
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 @param app name of the selected application
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @type str
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.migrationsComboBox.clear()
77
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
65 if not self.__migrationRequired:
f8e92eaaba6e Finished adding support for the various migration commands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 75
diff changeset
66 self.migrationsComboBox.addItem("")
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 for applied, migration in self.__migrations[app]:
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 if applied:
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.migrationsComboBox.addItem(self.__appliedIcon, migration)
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 else:
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.migrationsComboBox.addItem(migration)
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
72
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 def getData(self):
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 Public method to get the selected data.
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
76
74
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 @return tuple containing the selected application name and migration
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @rtype tuple of two str
f33822c3eb47 Added some forgotten files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
180
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
80 return (
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
81 self.applicationComboBox.currentText(),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
82 self.migrationsComboBox.currentText(),
64339135bd61 Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 175
diff changeset
83 )

eric ide

mercurial