summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-19 11:54:38 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-03-19 12:44:45 +0100
commitb0c2ded8e95dcf61b36685fec4b40d9bcf82bef0 (patch)
tree72a8ac0ec7b8c779516bd2d22bb057163b64243d /archaeological_operations
parentc1fa91b2acb68aff15ca1dfbabaf51d8ea83e166 (diff)
downloadIshtar-b0c2ded8e95dcf61b36685fec4b40d9bcf82bef0.tar.bz2
Ishtar-b0c2ded8e95dcf61b36685fec4b40d9bcf82bef0.zip
🚑️ fix huge performance problems on permissions when too many items are attached
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/models.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 171b60513..d933944d1 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -889,32 +889,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
@@ -2378,18 +2385,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