diff options
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 |
commit | 4640d3649bd73b62dd2b1c301f7f1ebacba8fe4f (patch) | |
tree | d4597cfe77cc7854749d41f980e2bde18b3134af /archaeological_finds/models_finds.py | |
parent | 06790f9bb9dc079d170a30ab10414f790e97edc0 (diff) | |
download | Ishtar-4640d3649bd73b62dd2b1c301f7f1ebacba8fe4f.tar.bz2 Ishtar-4640d3649bd73b62dd2b1c301f7f1ebacba8fe4f.zip |
Improve document generation perf
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 12 |
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() |