summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse/models.py')
-rw-r--r--archaeological_warehouse/models.py32
1 files changed, 6 insertions, 26 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index a93a0917d..3dba70355 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -35,7 +35,8 @@ from ishtar_common.models import Document, GeneralType, get_external_id, \
document_attached_changed, SearchAltName, DynamicRequest, GeoItem, \
QRCodeItem, SearchVectorConfig, DocumentItem
from ishtar_common.model_merging import merge_model_objects
-from ishtar_common.utils import cached_label_changed, post_save_geo, task
+from ishtar_common.utils import cached_label_changed, \
+ cached_label_and_geo_changed
class WarehouseType(GeneralType):
@@ -80,6 +81,8 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem,
),
}
GEO_LABEL = "name"
+ DOWN_MODEL_UPDATE = ["containers"]
+ CACHED_LABELS = []
objects = ExternalIdManager()
@@ -327,30 +330,12 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem,
self._cached_label_checked = False
self.save()
return
- if not settings.USE_BACKGROUND_TASK:
- update_containers(self)
- else:
- update_containers.delay(self.pk)
-
-
-@task()
-def update_containers(warehouse):
- if not settings.USE_BACKGROUND_TASK:
- for container in warehouse.containers.all():
- cached_label_changed(Container, instance=container)
- return
- try:
- warehouse = Warehouse.objects.get(pk=warehouse)
- except Warehouse.DoesNotExist:
- return
- for container in warehouse.containers.all():
- cached_label_changed(Container, instance=container)
m2m_changed.connect(document_attached_changed,
sender=Warehouse.documents.through)
-post_save.connect(post_save_geo, sender=Warehouse)
+post_save.connect(cached_label_and_geo_changed, sender=Warehouse)
class Collection(LightHistorizedItem):
@@ -875,12 +860,7 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,
loca.delete()
-def container_post_save(sender, **kwargs):
- cached_label_changed(sender=sender, **kwargs)
- post_save_geo(sender=sender, **kwargs)
-
-
-post_save.connect(container_post_save, sender=Container)
+post_save.connect(cached_label_and_geo_changed, sender=Container)
m2m_changed.connect(document_attached_changed,
sender=Container.documents.through)