ProjectFlask/Project.py

changeset 29
a8817ea36587
parent 27
b73e9af0d496
child 30
76c86fe13f36
diff -r 71cd3bbf825f -r a8817ea36587 ProjectFlask/Project.py
--- a/ProjectFlask/Project.py	Tue Nov 24 18:03:40 2020 +0100
+++ b/ProjectFlask/Project.py	Tue Nov 24 19:23:28 2020 +0100
@@ -23,12 +23,10 @@
 import UI.PixmapCache
 import Utilities
 
-from .FlaskCommandDialog import FlaskCommandDialog
-
 from .FlaskBabelExtension.PyBabelProjectExtension import PyBabelProject
+from .FlaskMigrateExtension.MigrateProjectExtension import MigrateProject
 
 
-# TODO: move database related code to a separate package (FlaskMigrateExtension)
 class Project(QObject):
     """
     Class implementing the Flask project support.
@@ -76,6 +74,7 @@
         self.__capabilities = {}
         
         self.__pybabelProject = PyBabelProject(self.__plugin, self, self)
+        self.__migrateProject = MigrateProject(self.__plugin, self, self)
     
     def initActions(self):
         """
@@ -168,26 +167,6 @@
         self.actions.append(self.showRoutesAct)
         
         ##################################
-        ## database action below        ##
-        ##################################
-        
-        # TODO: replace this with 'flask-migrate'
-        self.initDatabaseAct = E5Action(
-            self.tr('Initialize Database'),
-            self.tr('&Initialize Database'),
-            0, 0,
-            self, 'flask_init_database')
-        self.initDatabaseAct.setStatusTip(self.tr(
-            'Shows a dialog with the result of the database creation'))
-        self.initDatabaseAct.setWhatsThis(self.tr(
-            """<b>Initialize Database</b>"""
-            """<p>Shows a dialog with the result of the database"""
-            """ creation.</p>"""
-        ))
-        self.initDatabaseAct.triggered.connect(self.__initDatabase)
-        self.actions.append(self.initDatabaseAct)
-        
-        ##################################
         ## documentation action below   ##
         ##################################
         
@@ -224,6 +203,7 @@
         self.actions.append(self.aboutFlaskAct)
         
         self.__pybabelProject.initActions()
+        self.__migrateProject.initActions()
     
     def initMenu(self):
         """
@@ -235,6 +215,7 @@
         self.__menus = {}   # clear menus references
         
         self.__menus["pybabel"] = self.__pybabelProject.initMenu()
+        self.__menus["migrate"] = self.__migrateProject.initMenu()
         
         menu = QMenu(self.tr('&Flask'), self.__ui)
         menu.setTearOffEnabled(True)
@@ -247,7 +228,7 @@
         menu.addSeparator()
         menu.addAction(self.showRoutesAct)
         menu.addSeparator()
-        menu.addAction(self.initDatabaseAct)
+        menu.addMenu(self.__menus["migrate"])
         menu.addSeparator()
         menu.addMenu(self.__menus["pybabel"])
         menu.addSeparator()
@@ -659,7 +640,7 @@
         self.__pybabelProject.determineCapability()
         
         # 2. support for flask-migrate
-        # TODO: add support for flask-migrate
+        self.__migrateProject.determineCapability()
     
     def hasCapability(self, key):
         """
@@ -808,13 +789,3 @@
         if dlg.showRoutes():
             dlg.show()
             self.__routesDialog = dlg
-    
-    # TODO: replace this by commands made by flask-migrate (flask db ...)
-    @pyqtSlot()
-    def __initDatabase(self):
-        """
-        Private slot showing the result of the database creation.
-        """
-        dlg = FlaskCommandDialog(self)
-        if dlg.startCommand("init-db"):
-            dlg.exec()

eric ide

mercurial