240 |
240 |
241 def determineCapability(self): |
241 def determineCapability(self): |
242 """ |
242 """ |
243 Public method to determine the availability of flask-migrate. |
243 Public method to determine the availability of flask-migrate. |
244 """ |
244 """ |
245 available = self.__flaskMigrateAvailable() |
245 if self.__project.getData("flask", "flask_migrate_override"): |
|
246 available = self.__project.getData("flask", |
|
247 "flask_migrate_available") |
|
248 else: |
|
249 available = self.__flaskMigrateAvailable() |
246 self.__project.setCapability("flask-migrate", available) |
250 self.__project.setCapability("flask-migrate", available) |
247 |
251 |
248 self.migrateConfigAct.setEnabled(available) |
|
249 self.migrateInstallAct.setEnabled(not available) |
252 self.migrateInstallAct.setEnabled(not available) |
250 |
253 |
251 self.migrateInitAct.setEnabled(available) |
254 for act in (self.migrateConfigAct, self.migrateInitAct, |
|
255 self.migrateCreateAct, |
|
256 self.upgradeDatabaseAct, self.downgradeDatabaseAct, |
|
257 self.migrationSummaryAct, self.migrationHistoryAct, |
|
258 ): |
|
259 act.setEnabled(available) |
252 |
260 |
253 def __flaskMigrateAvailable(self): |
261 def __flaskMigrateAvailable(self): |
254 """ |
262 """ |
255 Private method to check, if the 'flask-babel' package is available. |
263 Private method to check, if the 'flask-babel' package is available. |
256 |
264 |
340 def __installFlaskMigrate(self): |
348 def __installFlaskMigrate(self): |
341 """ |
349 """ |
342 Private slot to install the flask-migrate extension into the configured |
350 Private slot to install the flask-migrate extension into the configured |
343 environment. |
351 environment. |
344 """ |
352 """ |
345 # TODO: get interpreter from self.__project |
353 venvName = self.__project.getVirtualEnvironment() |
346 language = e5App().getObject("Project").getProjectLanguage() |
|
347 if language == "Python3": |
|
348 venvName = self.__plugin.getPreferences( |
|
349 "VirtualEnvironmentNamePy3") |
|
350 else: |
|
351 venvName = "" |
|
352 if venvName: |
354 if venvName: |
353 interpreter = self.__project.getFullCommand("python") |
355 interpreter = self.__project.getFullCommand("python") |
354 pip = e5App().getObject("Pip") |
356 pip = e5App().getObject("Pip") |
355 pip.installPackages(["flask-migrate"], interpreter=interpreter) |
357 pip.installPackages(["flask-migrate"], interpreter=interpreter) |
356 self.determineCapability() |
358 self.determineCapability() |