From a61ba018a7160a8d64f536b7d9f92b35dd3aa332 Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Mon, 21 Feb 2022 23:07:12 +0000 Subject: [PATCH] [IMP] website: avoid query on website table when serving empty page Getting the `res.company` record by browsing the `company_id` cached value from `website` instead of reading it directly on the website record will avoid a read on the website table. While this might seems unusual and not elegant, since this is a very low level method used to render every view, it seems fine. task-2774979 X-original-commit: bc643a573a7339c82661cbcff2cc59bdd0eec3e3 Part-of: odoo/odoo#85456 --- addons/website/models/ir_ui_view.py | 2 +- addons/website/tests/test_performance.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index 7b9d9614fee..b284c0dce9d 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -464,7 +464,7 @@ class View(models.Model): main_object=self, website=request.website, is_view_active=request.website.is_view_active, - res_company=request.website.company_id.sudo(), + res_company=request.env['res.company'].browse(request.website._get_cached('company_id')).sudo(), translatable=translatable, editable=editable, )) diff --git a/addons/website/tests/test_performance.py b/addons/website/tests/test_performance.py index 47cc12c7711..af62b4da66b 100644 --- a/addons/website/tests/test_performance.py +++ b/addons/website/tests/test_performance.py @@ -116,7 +116,7 @@ class TestWebsitePerformance(UtilPerf): # website.page with no call to layout templates self.page.arch = '
I am a blank page
' self.assertEqual(self._get_url_hot_query(self.page.url), 5) - self.assertEqual(self._get_url_hot_query(self.page.url, cache=False), 6) + self.assertEqual(self._get_url_hot_query(self.page.url, cache=False), 5) def test_40_perf_sql_queries_page_multi_level_menu(self): # menu structure should not impact SQL requests