summaryrefslogtreecommitdiff
path: root/archaeological_context_records/models.py
diff options
context:
space:
mode:
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
commitdc1d0da3544d2ec9adb4c792c357fe06eaf752a7 (patch)
treedc2627a86507fe03bf42b21bcc5fe21183573cf4 /archaeological_context_records/models.py
parente448e19f9a472f8bb9ce41b085d175e91e0b873b (diff)
downloadIshtar-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.py25
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):