From 3adbd561ced57cb9c950af2d6d7d25f57f8799e0 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 19 Mar 2025 11:54:38 +0100 Subject: 🚑️ fix huge performance problems on permissions when too many items are attached MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archaeological_operations/models.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'archaeological_operations') diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 9119a5c72..42325d8be 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -856,32 +856,39 @@ class ArchaeologicalSite( q = ( cls._construct_query_own( + cls, "operations__context_record__base_finds__find__container__responsible__", Warehouse._get_query_owns_dicts(ishtaruser), ) | cls._construct_query_own( + cls, "operations__context_record__base_finds__find__basket__", [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}], ) | cls._construct_query_own( + cls, "operations__context_record__base_finds__find__container__location__", Warehouse._get_query_owns_dicts(ishtaruser), ) | cls._construct_query_own( + cls, "top_operations__context_record__base_finds__find__container__responsible__", Warehouse._get_query_owns_dicts(ishtaruser), ) | cls._construct_query_own( + cls, "top_operations__context_record__base_finds__find__container__location__", Warehouse._get_query_owns_dicts(ishtaruser), ) | cls._construct_query_own( + cls, "operations__", Operation._get_query_owns_dicts(ishtaruser, no_rel=True) ) | cls._construct_query_own( + cls, "top_operations__", Operation._get_query_owns_dicts(ishtaruser) ) - | cls._construct_query_own("", cls._get_query_owns_dicts(ishtaruser)) + | cls._construct_query_own(cls, "", cls._get_query_owns_dicts(ishtaruser)) ) return q @@ -2294,18 +2301,21 @@ class Operation( q = ( cls._construct_query_own( + cls, "context_record__base_finds__find__container__responsible__", Warehouse._get_query_owns_dicts(ishtaruser), ) | cls._construct_query_own( + cls, "context_record__base_finds__find__container__location__", Warehouse._get_query_owns_dicts(ishtaruser), ) | cls._construct_query_own( + cls, "context_record__base_finds__find__basket__", [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}], ) - | cls._construct_query_own("", cls._get_query_owns_dicts(ishtaruser)) + | cls._construct_query_own(cls, "", cls._get_query_owns_dicts(ishtaruser)) ) return q -- cgit v1.2.3