Wed, 01 Jan 2020 11:58:57 +0100
Updated copyright for 2020.
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
145
104b14713e9e
Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
142
diff
changeset
|
3 | # Copyright (c) 2013 - 2020 Detlev Offenbach <detlev@die-offenbachs.de> |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to enter the data for the 'loaddata' command. |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
47
19da3417eb3d
Added the Python2 compatibility flag.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
44
diff
changeset
|
10 | from __future__ import unicode_literals |
26
2dd206cd1aa2
Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2
diff
changeset
|
11 | |
51
0b60dbff8e9a
Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
47
diff
changeset
|
12 | from PyQt5.QtCore import pyqtSlot |
0b60dbff8e9a
Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
47
diff
changeset
|
13 | from PyQt5.QtWidgets import QDialog, QDialogButtonBox |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from E5Gui import E5FileDialog |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .Ui_DjangoLoaddataDataDialog import Ui_DjangoLoaddataDataDialog |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | import Utilities |
79
aa7cee37a274
Added some eye-candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
63
diff
changeset
|
20 | import UI.PixmapCache |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | class DjangoLoaddataDataDialog(QDialog, Ui_DjangoLoaddataDataDialog): |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Class implementing a dialog to enter the data for the 'loaddata' command. |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | def __init__(self, project, parent=None): |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Constructor |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @param project reference to the Django project object |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | @param parent reference to the parent widget (QWidget) |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
26
2dd206cd1aa2
Python 2 compatibility for Eric 5.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2
diff
changeset
|
34 | super(DjangoLoaddataDataDialog, self).__init__(parent) |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | self.setupUi(self) |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
79
aa7cee37a274
Added some eye-candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
63
diff
changeset
|
37 | self.fixtureFileButton.setIcon(UI.PixmapCache.getIcon("open.png")) |
aa7cee37a274
Added some eye-candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
63
diff
changeset
|
38 | |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.__project = project |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | |
125
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
41 | if project.getDjangoVersion() < (1, 11, 0): |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
42 | self.excludeBox.setEnabled(False) |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
43 | |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False) |
44
ae62ba409285
Fixed a window sizing issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
45 | |
ae62ba409285
Fixed a window sizing issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
46 | msh = self.minimumSizeHint() |
ae62ba409285
Fixed a window sizing issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
31
diff
changeset
|
47 | self.resize(max(self.width(), msh.width()), msh.height()) |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | @pyqtSlot(str) |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | def on_fixturesEdit_textChanged(self, txt): |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | Private slot to handle a change of the fixtures text. |
29
76d04dd67367
Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
26
diff
changeset
|
53 | |
76d04dd67367
Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
26
diff
changeset
|
54 | @param txt text of the line edit (string) |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(bool(txt)) |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | @pyqtSlot() |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | def on_fixtureFileButton_clicked(self): |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | Private slot to select a fixture file via a file selection dialog. |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
51
0b60dbff8e9a
Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
47
diff
changeset
|
63 | fileFilters = self.tr("JSON Files (*.json);;XML Files (*.xml);;") |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | try: |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | import yaml # __IGNORE_WARNING__ |
51
0b60dbff8e9a
Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
47
diff
changeset
|
66 | fileFilters += self.tr("YAML Files (*.yaml);;") |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | except ImportError: |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | pass |
51
0b60dbff8e9a
Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
47
diff
changeset
|
69 | fileFilters += self.tr("All Files (*)") |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | fixtureFiles = E5FileDialog.getOpenFileNames( |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | self, |
51
0b60dbff8e9a
Ported to PyQt5 and eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
47
diff
changeset
|
73 | self.tr("Select fixture file"), |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.__project.getProjectPath(), |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | fileFilters) |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | if fixtureFiles: |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | self.fixturesEdit.setText(" ".join( |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | [Utilities.toNativeSeparators(f) for f in fixtureFiles])) |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | def getData(self): |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | Public method to get the data entered into the dialog. |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | |
125
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
85 | @return tuple containing the list of fixtures, list of apps to exclude, |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
86 | application to search in and a flag indicating to ignore |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
87 | non-existing fields and models |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
88 | @rtype tuple of (list of str, list of str, str, bool) |
2
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | """ |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | fixturesStr = self.fixturesEdit.text() |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | fixtures = fixturesStr.split() |
1e97424fda0c
Continued porting the Django project plug-in from eric4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
125
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
93 | excludeStr = self.excludeEdit.text() |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
94 | excludes = excludeStr.split() |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
95 | |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
96 | return (fixtures, excludes, self.appEdit.text(), |
d280acf98fb5
- additions for Django > 1.9.0
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
121
diff
changeset
|
97 | self.ignoreCheckBox.isChecked()) |