diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-01-27 17:31:00 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2023-01-27 17:31:00 +0100 |
commit | dc1d0da3544d2ec9adb4c792c357fe06eaf752a7 (patch) | |
tree | dc2627a86507fe03bf42b21bcc5fe21183573cf4 /archaeological_context_records/models.py | |
parent | e448e19f9a472f8bb9ce41b085d175e91e0b873b (diff) | |
download | Ishtar-dc1d0da3544d2ec9adb4c792c357fe06eaf752a7.tar.bz2 Ishtar-dc1d0da3544d2ec9adb4c792c357fe06eaf752a7.zip |
Add custom cached_label configuration for each main item
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 074bc3358..bfdda4bfe 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -838,9 +838,6 @@ class ContextRecord( blank=True, null=True, ) - cached_label = models.TextField( - _("Cached name"), blank=True, default="", db_index=True - ) cached_periods = models.TextField( _("Cached periods label"), blank=True, @@ -997,6 +994,25 @@ class ContextRecord( def cached_label_bulk_update( cls, operation_id=None, parcel_id=None, transaction_id=None ): + profile = get_current_profile() + if profile.contextrecord_cached_label: + # no bulk possible + q = cls.objects + if operation_id: + q = q.filter(operation_id=operation_id) + elif parcel_id: + q = q.filter(parcel_id=parcel_id) + else: + return + for cr in q.all(): + cr.skip_history_when_saving = True + cr._no_move = True + cr.save() + cls._meta.get_field("base_finds").related_model.cached_label_bulk_update( + operation_id=operation_id, parcel_id=parcel_id, + transaction_id=transaction_id + ) + return transaction_id, is_recursion = cls.bulk_recursion( transaction_id, [operation_id, parcel_id] ) @@ -1186,6 +1202,9 @@ class ContextRecord( ) def _generate_cached_label(self): + label = self._profile_generate_cached_label() + if label: + return label return self.full_label() def _generate_cached_periods(self): |