diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-06-09 16:43:27 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-06-09 16:43:27 +0200 |
| commit | cc38b93ab2a6daf9c5badbc387cff20d1a01ddee (patch) | |
| tree | d5d9942c4101f836a247e609266d3d39f1eeb4ee /addons/base_import_module | |
| parent | fb504f3cbd41dc52a81d76aa54d83117730671d0 (diff) | |
| parent | 49f819a7a797f0c046337118847f143197714e03 (diff) | |
[MERGE] forward port branch saas-15 up to 49f819a7a79
Diffstat (limited to 'addons/base_import_module')
| -rw-r--r-- | addons/base_import_module/models/ir_module.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/addons/base_import_module/models/ir_module.py b/addons/base_import_module/models/ir_module.py index 43eb8f08d6e..889ddf7bb7b 100644 --- a/addons/base_import_module/models/ir_module.py +++ b/addons/base_import_module/models/ir_module.py @@ -100,18 +100,23 @@ class IrModule(models.Model): raise UserError(_("File '%s' exceed maximum allowed file size") % zf.filename) with 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: - module_names.append(mod_name) - try: - # assert mod_name.startswith('theme_') - path = opj(module_dir, mod_name) - self._import_module(mod_name, path, force=force) - success.append(mod_name) - except Exception as e: - _logger.exception('Error while importing module') - errors[mod_name] = exception_to_unicode(e) + import odoo.modules as addons + try: + addons.module.ad_paths.append(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: + module_names.append(mod_name) + try: + # assert mod_name.startswith('theme_') + path = opj(module_dir, mod_name) + self._import_module(mod_name, path, force=force) + success.append(mod_name) + except Exception as e: + _logger.exception('Error while importing module') + errors[mod_name] = exception_to_unicode(e) + finally: + addons.module.ad_paths.remove(module_dir) 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)) |
