diff options
| author | tpa-odoo <tpa@tinyerp.com> | 2014-05-22 15:51:51 +0530 |
|---|---|---|
| committer | tpa-odoo <tpa@tinyerp.com> | 2014-05-22 15:51:51 +0530 |
| commit | 41147025b8a634f746ad14c80b7c764ff494a501 (patch) | |
| tree | 7d40ca04b652bf85121774300a7567675bd39426 /addons/base_import_module/controllers/main.py | |
| parent | b27a3351af1cad72b852788a2a59a79256e6e644 (diff) | |
[ADD] add wizard to import zipped module
Diffstat (limited to 'addons/base_import_module/controllers/main.py')
| -rw-r--r-- | addons/base_import_module/controllers/main.py | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/addons/base_import_module/controllers/main.py b/addons/base_import_module/controllers/main.py index cbfbd75894b..4707deffca5 100644 --- a/addons/base_import_module/controllers/main.py +++ b/addons/base_import_module/controllers/main.py @@ -1,14 +1,8 @@ # -*- coding: utf-8 -*- import functools -import os -import zipfile -from os.path import join as opj - import openerp from openerp.http import Controller, route, request, Response -MAX_FILE_SIZE = 100 * 1024 * 1024 # in megabytes - def webservice(f): @functools.wraps(f) def wrap(*args, **kw): @@ -42,32 +36,4 @@ class ImportModule(Controller): @webservice def upload(self, mod_file=None, **kw): self.check_user() - imm = request.registry['ir.module.module'] - - if not mod_file: - raise Exception("No file sent.") - if not zipfile.is_zipfile(mod_file): - raise Exception("Not a zipfile.") - - success = [] - errors = dict() - with zipfile.ZipFile(mod_file, "r") as z: - for zf in z.filelist: - if zf.file_size > MAX_FILE_SIZE: - raise Exception("File '%s' exceed maximum allowed file size" % zf.filename) - - with openerp.tools.osutil.tempdir() as module_dir: - z.extractall(module_dir) - dirs = [d for d in os.listdir(module_dir) if os.path.isdir(opj(module_dir, d))] - for mod_name in dirs: - try: - # assert mod_name.startswith('theme_') - path = opj(module_dir, mod_name) - imm.import_module(request.cr, request.uid, mod_name, path, context=request.context) - success.append(mod_name) - except Exception, e: - errors[mod_name] = str(e) - r = ["Successfully imported module '%s'" % mod for mod in success] - for mod, error in errors.items(): - r.append("Error while importing module '%s': %r" % (mod, error)) - return '\n'.join(r) + return request.registry['ir.module.module'].import_zipfile(request.cr, request.uid, mod_file, context=request.context) |
