From 99787182e4a677410b78dabd507f00a96b450e7a Mon Sep 17 00:00:00 2001 From: Ivan Yelizariev Date: Tue, 10 Aug 2021 13:10:33 +0000 Subject: [PATCH] [FIX] base: skip unneeded update_list call `update_list` is an expensive operation and could be avoided when no modules are updated. Particually, it speeds up initial theme installation on website, which has following code: ``` themes.filtered(lambda m: m.state == 'installed').button_upgrade() ``` Benchmark for Odoo 15: `/website/configurator_apply` spends 1.3 sec for unneeded `update_list` call. closes odoo/odoo#75140 X-original-commit: 82ba4994e54fc46cc55a463629727e840349bb6e Signed-off-by: Raphael Collet (rco) Signed-off-by: Ivan Yelizariev // IEL --- odoo/addons/base/models/ir_module.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/odoo/addons/base/models/ir_module.py b/odoo/addons/base/models/ir_module.py index 1e00a70f921..89af11a06ae 100644 --- a/odoo/addons/base/models/ir_module.py +++ b/odoo/addons/base/models/ir_module.py @@ -663,6 +663,8 @@ class Module(models.Model): @assert_log_admin_access def button_upgrade(self): + if not self: + return Dependency = self.env['ir.module.module.dependency'] self.update_list()