diff --git a/bin/addons/base/__openerp__.py b/bin/addons/base/__openerp__.py index 09e5fc23ace..11632498e20 100644 --- a/bin/addons/base/__openerp__.py +++ b/bin/addons/base/__openerp__.py @@ -49,6 +49,7 @@ 'module/module_data.xml', 'module/module_report.xml', 'module/wizard/base_module_import_view.xml', + 'module/wizard/base_module_update_view.xml', 'res/res_request_view.xml', 'res/res_lang_view.xml', 'res/res_log_view.xml', diff --git a/bin/addons/base/module/module_wizard.xml b/bin/addons/base/module/module_wizard.xml index b7653eb30d9..c8d4ce5d54b 100644 --- a/bin/addons/base/module/module_wizard.xml +++ b/bin/addons/base/module/module_wizard.xml @@ -5,7 +5,7 @@ Update Modules List module.module.update - + diff --git a/bin/addons/base/module/wizard/__init__.py b/bin/addons/base/module/wizard/__init__.py index 69215e90c8c..c6b34de2936 100644 --- a/bin/addons/base/module/wizard/__init__.py +++ b/bin/addons/base/module/wizard/__init__.py @@ -19,7 +19,7 @@ # ############################################################################## -import wizard_update_module +import wizard_update_module # base_module_update import wizard_module_upgrade import wizard_configuration import wizard_module_lang_install @@ -29,6 +29,7 @@ import wizard_import_lang import wizard_update_translations import base_module_import +import base_module_update # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/bin/addons/base/module/wizard/base_module_import.py b/bin/addons/base/module/wizard/base_module_import.py index fc28452c6dd..cd916482279 100644 --- a/bin/addons/base/module/wizard/base_module_import.py +++ b/bin/addons/base/module/wizard/base_module_import.py @@ -40,6 +40,55 @@ class base_module_import(osv.osv_memory): 'module_file': fields.binary('Module .ZIP file', required=True), } + def importzip(self, cr, uid, ids, context): + module_obj= self.pool.get('ir.module.module') + active_ids = context and context.get('active_ids', False) + data = self.browse(cr, uid, ids , context=context)[0] + module_data = data.module_file + + val =base64.decodestring(module_data) + fp = StringIO() + fp.write(val) + fdata = zipfile.ZipFile(fp, 'r') + fname = fdata.namelist()[0] + module_name = os.path.split(fname)[0] + + ad = tools.config['addons_path'] + + fname = os.path.join(ad,module_name+'.zip') + try: + fp = file(fname, 'wb') + fp.write(val) + fp.close() + except IOError, e: + raise osv.except_osv(_('Error !'), _('Can not create the module file: %s !') % (fname,) ) + + module_obj.update_list(cr, uid,{'module_name': module_name,}) + data_obj = self.pool.get('ir.model.data') + id2 = data_obj._get_id(cr, uid, 'base', 'view_base_module_import_msg') + if id2: + id2 = data_obj.browse(cr, uid, id2, context=context).res_id + + module_name = module_obj.browse(cr, uid, ids, context=context) + return { + 'domain': str([('name', '=', module_name)]), + 'name': 'Message', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'base.module.import.msg', + 'views': [(id2, 'form')], + 'view_id': False, + 'type': 'ir.actions.act_window', + 'target': 'new', + } + +base_module_import() + +class base_module_import_msg(osv.osv_memory): + """ message """ + _name = "base.module.import.msg" + _description = "Message" + def action_module_open(self, cr, uid, ids, context): module_obj = self.pool.get('base.module.import') data = module_obj.browse(cr, uid, ids , context=context)[0] @@ -61,5 +110,5 @@ class base_module_import(osv.osv_memory): 'type': 'ir.actions.act_window', } -base_module_import() +base_module_import_msg() \ No newline at end of file diff --git a/bin/addons/base/module/wizard/base_module_import_view.xml b/bin/addons/base/module/wizard/base_module_import_view.xml index 818a7317c61..f46c7ebf293 100644 --- a/bin/addons/base/module/wizard/base_module_import_view.xml +++ b/bin/addons/base/module/wizard/base_module_import_view.xml @@ -15,7 +15,7 @@