From 1d981f22f36b748c4c7b548e9db33284e7eefc6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Fri, 13 Mar 2020 15:16:10 +0000 Subject: [PATCH] [FIX] website: perf - prefetch website.menu's mega_menu_content Since this field is not sanitized, it is safe (perf wise) to prefetch it. It should not be CPU heavy, plus whenever we access a `website.menu`, it is most likely we will read that field. with following structure, 5 SQL queries will be avoided: - Top menu - Home - Contact us - Sub Contact us - Sub Sub Contact us Related to #47257 task-2211013 X-original-commit: 20cddcd899e7a119fa9f365e62527499f8e5ff7d --- addons/website/models/website_menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/website/models/website_menu.py b/addons/website/models/website_menu.py index 1eaa513fb4d..bed9fb8cf26 100644 --- a/addons/website/models/website_menu.py +++ b/addons/website/models/website_menu.py @@ -44,7 +44,7 @@ class Menu(models.Model): group_ids = fields.Many2many('res.groups', string='Visible Groups', help="User need to be at least in one of these groups to see the menu") is_mega_menu = fields.Boolean(compute=_compute_field_is_mega_menu, inverse=_set_field_is_mega_menu) - mega_menu_content = fields.Html(translate=html_translate, sanitize=False) + mega_menu_content = fields.Html(translate=html_translate, sanitize=False, prefetch=True) mega_menu_classes = fields.Char() def name_get(self):