From c5c2a66a604e992fe655ddb6c68bf84480503e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Tue, 10 Mar 2020 14:31:45 +0100 Subject: [PATCH] wcs: reduce querysets on page detail for user (#40675) --- combo/profile/__init__.py | 11 +++++++---- tests/test_wcs.py | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/combo/profile/__init__.py b/combo/profile/__init__.py index e34e80f2..b6527cb5 100644 --- a/combo/profile/__init__.py +++ b/combo/profile/__init__.py @@ -22,10 +22,13 @@ from django.utils.translation import ugettext_lazy as _ def user_get_name_id(user): - saml_identifier = user.saml_identifiers.first() - if saml_identifier: - return saml_identifier.name_id - return None + if not hasattr(user, '_name_id'): + user._name_id = None + saml_identifier = user.saml_identifiers.first() + if saml_identifier: + user._name_id = saml_identifier.name_id + + return user._name_id class AppConfig(django.apps.AppConfig): diff --git a/tests/test_wcs.py b/tests/test_wcs.py index 0da50ced..a1c4ab67 100644 --- a/tests/test_wcs.py +++ b/tests/test_wcs.py @@ -1228,7 +1228,7 @@ def test_view_page_with_wcs_cells_num_queries(app, admin_user): app.get('/') # load once to populate caches with CaptureQueriesContext(connection) as ctx: app.get('/') - assert len(ctx.captured_queries) == 160 + assert len(ctx.captured_queries) == 61 @wcs_present