From: Sébastien CHAZALLET Date: Fri, 14 Jun 2013 09:04:31 +0000 (+0200) Subject: Rajout du gestionnaire OpenERP X-Git-Url: http://git.inspyration.org/?p=oegtk%2Feasy_starter.git;a=commitdiff_plain Rajout du gestionnaire OpenERP --- diff --git a/oestarter/__init__.py b/oestarter/__init__.py index 9d16732..f03959d 100644 --- a/oestarter/__init__.py +++ b/oestarter/__init__.py @@ -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() diff --git a/oestarter/manager.py b/oestarter/manager.py index be7a746..faea1d5 100644 --- a/oestarter/manager.py +++ b/oestarter/manager.py @@ -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)