Rajout du gestionnaire OpenERP master
authorSébastien CHAZALLET <s.chazallet@gmail.com>
Fri, 14 Jun 2013 09:04:31 +0000 (11:04 +0200)
committerSébastien CHAZALLET <s.chazallet@gmail.com>
Fri, 14 Jun 2013 09:04:31 +0000 (11:04 +0200)
oestarter/__init__.py
oestarter/manager.py

index 9d16732..f03959d 100644 (file)
@@ -1,12 +1,26 @@
 from ihm import GladeWindowManager
 from ihm import MainWindow
 
-from manager import test_action_on_start_button
+from manager import OEManager
 
+# Rajout de notre IHM dans le gestionnaire de fichiers Glade
 GladeWindowManager.append("OpenERPEasyStarter.glade")
+# Création de notre IHM
 appli = MainWindow()
 
+# Création d'un gestionnaire OpenERP de test
+manager = OEManager(
+    "/home/openerp/server/7.0/openerp-server"
+    ','.join([
+     "/home/openerp/addons/7.0/"
+     "/home/openerp/web/7.0/addons/"
+     "/media/sf_partage/code/src/"
+    ])
+)
+
+# Connection entre le gestionnaire OpenERP et l'IHM
+appli.set_action_on_start_button(manager.action)
+
 if __name__ == "__main__":
     # Test de l'application.
-    appli.set_action_on_start_button(test_action_on_start_button)
     appli.start()
index be7a746..faea1d5 100644 (file)
@@ -1,14 +1,46 @@
 #!/usr/bin/python3
 #-*- coding: utf-8 -*-
 
+import subprocess
 
-def test_action_on_start_button(action, modules, bases, scripts):
-    print("""Éléments récupérés :
-modules :
-%s
-bases
-%s
-scripts
-%s
-action
-%s""" % (modules, bases, scripts, action))
+class OEManager:
+    def __init__(self, path_server, path_addons):
+        self.path_server = path_server
+        self.path_addons = path_addons
+
+    def action(self, action, modules, bases, scripts):
+        option, base = '', bases[0]
+
+        if action == 'Réinstaller':
+            # Supprimer et recréer la base
+            self.new_database(base)
+            # Passer les scripts
+            self.call_scripts(scripts)
+            # Gérer l'option de réinstallation
+            option = '-i'
+        elif action == 'Mettre à jour':
+            # Gérer l'option de mise à jour
+            option = '-u'
+
+        # Paramétrer correctement l'option -i ou -u
+        if option:
+            option += ' ' + ','.join(modules) + ' '
+
+        self.start_openerp(option, base)
+
+    def new_database(self, base):
+        subprocess.getstatusoutput("dropdb %s" % base)
+        subprocess.getstatusoutput("createdb %s" % base)
+
+    def call_scripts(self, scripts):
+        for script in scripts:
+            subprocess.getstatusoutput(script)
+
+    def start_openerp(self, option, base):
+        commande = '%s --addons-path=%s %s-d %s' % (
+            self.path_server,
+            self.path_addons,
+            option,
+            base
+        )
+        subprocess.getstatusoutput(commande)