summaryrefslogtreecommitdiff
path: root/bin/addons/base/module/wizard/base_module_import.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/addons/base/module/wizard/base_module_import.py')
-rw-r--r--bin/addons/base/module/wizard/base_module_import.py51
1 files changed, 50 insertions, 1 deletions
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