summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-16 19:44:31 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:24 +0100
commit62ebb037781a1df38191823cc44a06726bc28683 (patch)
treed4597cfe77cc7854749d41f980e2bde18b3134af /archaeological_finds/models_finds.py
parent9c62a2b2019a0c30fadf7413652b8d0b1fc7f748 (diff)
downloadIshtar-62ebb037781a1df38191823cc44a06726bc28683.tar.bz2
Ishtar-62ebb037781a1df38191823cc44a06726bc28683.zip
Improve document generation perf
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index c7065166e..bab3dae9f 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -712,11 +712,15 @@ class FindBasket(Basket, MainItem, ValueGetter):
)
def get_values(self, prefix='', no_values=False, filtr=None, **kwargs):
+ base_exclude = kwargs["exclude"][:] if "exclude" in kwargs else []
+ base_exclude.append(prefix + "items")
+ kw = kwargs.copy()
+ kw["exclude"] = base_exclude
values = super(FindBasket, self).get_values(
- prefix=prefix, no_values=no_values, filtr=filtr, **kwargs)
+ prefix=prefix, no_values=no_values, filtr=filtr, **kw)
if not filtr or prefix + "items" in filtr:
values[prefix + "items"] = [
- item.get_values(no_values=True, filtr=None, **kwargs)
+ item.get_values(no_values=True, filtr=filtr, **kwargs)
for item in self.items.distinct().all()
]
return values
@@ -1529,11 +1533,11 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem,
'remarkabilities', 'communicabilities', 'preservation_to_considers',
'alterations', 'alteration_causes', "cultural_attributions"
]
- GET_VALUES_EXTRA_TYPES = (
+ GET_VALUES_EXTRA_TYPES = ValueGetter.GET_VALUES_EXCLUDE_FIELDS + [
'material_types', 'object_types', 'integrities',
'remarkabilities', 'communicabilities', 'preservation_to_considers',
'alterations', 'alteration_causes'
- )
+ ]
CACHED_LABELS = ['cached_label', 'cached_periods',
'cached_object_types', 'cached_materials']
objects = UUIDModelManager()