diff options
| author | Xavier Morel <xmo@odoo.com> | 2019-07-25 12:10:18 +0000 |
|---|---|---|
| committer | Xavier Morel <xmo@odoo.com> | 2019-07-25 12:10:18 +0000 |
| commit | fce64e7d94a40333a6c2eb369ee5a94f9bd987c3 (patch) | |
| tree | 36d41571f3b575ffca83e48f3601b020f362b0d1 /odoo/modules/loading.py | |
| parent | f9e6c76168467d46eab377304e74d13b124dda27 (diff) | |
[FIX] core: auto_install modules being very sticky
An unintended side-effect of #29431 is apparently that auto_install
applications automatically get reinstalled when uninstalled, which was
not the goal.
Move the auto_install selection back into db.py, this version seems to
work even though the previous attempt was apparently unsuccessful.
closes odoo/odoo#35180
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Diffstat (limited to 'odoo/modules/loading.py')
| -rw-r--r-- | odoo/modules/loading.py | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/odoo/modules/loading.py b/odoo/modules/loading.py index e256711e06f..c9ff470833f 100644 --- a/odoo/modules/loading.py +++ b/odoo/modules/loading.py @@ -377,22 +377,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False): _check_module_names(cr, itertools.chain(tools.config['init'], tools.config['update'])) - # auto-install module second pass: recursive bit in db.py handles - # auto_install modules with no dependencies or where all - # dependencies are auto_install, couldn't get it to work with - # non-required auto_install deps so here - cr.execute(""" - SELECT m.name FROM ir_module_module m - WHERE m.auto_install - AND m.state != 'installed' - AND NOT EXISTS ( - SELECT 1 FROM ir_module_module_dependency d - JOIN ir_module_module mdep ON (d.name = mdep.name) - WHERE d.module_id = m.id - AND d.auto_install_required - AND mdep.state NOT IN ('installed', 'to install') - )""") - module_names = [k for k, v in tools.config['init'].items() if v] + [x[0] for x in cr.fetchall()] + module_names = [k for k, v in tools.config['init'].items() if v] if module_names: modules = Module.search([('state', '=', 'uninstalled'), ('name', 'in', module_names)]) if modules: |
