summaryrefslogtreecommitdiff
path: root/archaeological_context_records/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r--archaeological_context_records/models.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 4da7e35e2..87300b899 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -27,7 +27,7 @@ from django.contrib.postgres.indexes import GinIndex
from django.contrib.sites.models import Site
from django.db import transaction, OperationalError, IntegrityError
from django.db.models import Q
-from django.db.models.signals import post_delete, post_save, m2m_changed
+from django.db.models.signals import m2m_changed, pre_delete, post_delete, post_save
from django.urls import reverse, reverse_lazy
from ishtar_common.utils import get_generated_id, gettext_lazy as _, pgettext_lazy, \
@@ -59,6 +59,7 @@ from ishtar_common.models import (
RelationItem,
Town,
get_current_profile,
+ geo_item_pre_delete,
document_attached_changed,
HistoryModel,
GeoItem,
@@ -1485,10 +1486,11 @@ class ContextRecord(
Return sub object list that will be deleted
:return: {"Sub object type": ["Sub object 1", "Sub object 2", ...]}
"""
+ data = super().get_deleted_data()
if not self.base_finds.count():
- return {}
+ return data
lbl = str(_("Base finds"))
- data = {lbl: []}
+ data[lbl] = []
for item in self.base_finds.all():
data[lbl].append(str(item))
for key, value in item.get_deleted_data().items():
@@ -1514,11 +1516,11 @@ class ContextRecord(
def context_record_post_save(sender, **kwargs):
- cached_label_changed(sender=sender, **kwargs)
- post_save_geo(sender=sender, **kwargs)
instance = kwargs.get("instance", None)
- if not instance or not instance.pk:
+ if not instance or not instance.pk or getattr(instance, "__delete", False):
return
+ cached_label_changed(sender=sender, **kwargs)
+ post_save_geo(sender=sender, **kwargs)
profile = get_current_profile()
if profile.parent_relations_engine == "T":
ContextRecordTree._update_self_relation(instance.pk) # on creation: manage self relation
@@ -1532,6 +1534,7 @@ def context_record_post_save(sender, **kwargs):
cached_label_changed(Find, instance=f)
+pre_delete.connect(geo_item_pre_delete, sender=ContextRecord)
post_save.connect(context_record_post_save, sender=ContextRecord)
m2m_changed.connect(document_attached_changed, sender=ContextRecord.documents.through)
m2m_changed.connect(geodata_attached_changed, sender=ContextRecord.geodata.through)