diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-09-12 12:39:40 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-09-13 13:34:27 +0200 |
commit | 296ee1376450adf58a040a9da816a100fa5d2ec9 (patch) | |
tree | bf7d12d69c5c3b8670f28a58e524200db008e8a0 /archaeological_operations | |
parent | c8a27a7f986adb1e3d0eb911acffa02d030cc85f (diff) | |
download | Ishtar-296ee1376450adf58a040a9da816a100fa5d2ec9.tar.bz2 Ishtar-296ee1376450adf58a040a9da816a100fa5d2ec9.zip |
⚡️ improve performance - external ID: prevent double save - user UPDATE query instead of save - remove dead code "BulkUpdatedItem"
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/models.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index e847429a0..4220e6cc2 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -2434,12 +2434,19 @@ def operation_post_save(sender, **kwargs): for parcel in operation.parcels.all(): parcel.copy_to_file() - # external id update + # external id, cached_labels update for parcel in operation.parcels.all(): - parcel.update_external_id(save=True) + cached_label_changed(Parcel, instance=parcel) + ContextRecord = apps.get_model("archaeological_context_records", "ContextRecord") + BaseFind = apps.get_model("archaeological_finds", "BaseFind") + Find = apps.get_model("archaeological_finds", "Find") for cr in operation.context_record.all(): - cr.update_external_id(save=True) + cached_label_changed(ContextRecord, instance=cr) + for bf in cr.base_finds.all(): + cached_label_changed(BaseFind, instance=bf) + for f in bf.find.all(): + cached_label_changed(Find, instance=f) post_save.connect(operation_post_save, sender=Operation) @@ -3127,6 +3134,7 @@ def strip_zero(value): class Parcel(LightHistorizedItem): + SLUG = "parcel" EXTERNAL_ID_KEY = "parcel_external_id" BASE_SEARCH_VECTORS = [ SearchVectorConfig("section"), |