summaryrefslogtreecommitdiff
path: root/archaeological_warehouse/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-01-20 11:46:57 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-01-20 11:46:57 +0100
commit47f4eaa7509693e0a64ad3ee69b7a312df541127 (patch)
tree5232bf428003effb1dcad3b23c3d49a976c39894 /archaeological_warehouse/models.py
parentf5a0acf2638ce5bb31e1e9750f30fbc52cae1577 (diff)
downloadIshtar-47f4eaa7509693e0a64ad3ee69b7a312df541127.tar.bz2
Ishtar-47f4eaa7509693e0a64ad3ee69b7a312df541127.zip
Warehouse: new slug field to prevent ID change when name is changed
Diffstat (limited to 'archaeological_warehouse/models.py')
-rw-r--r--archaeological_warehouse/models.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py
index 3f4913d4b..5d96e6863 100644
--- a/archaeological_warehouse/models.py
+++ b/archaeological_warehouse/models.py
@@ -320,6 +320,7 @@ class Warehouse(
}
GEO_LABEL = "name"
DOWN_MODEL_UPDATE = ["containers"]
+ FORCE_CASCADE_UPDATE = True
CACHED_LABELS = ["cached_town_label"]
QA_EDIT = QuickAction(
@@ -346,6 +347,7 @@ class Warehouse(
uuid = models.UUIDField(default=uuid.uuid4)
name = models.CharField(_("Name"), max_length=200)
+ slug = models.SlugField(_("Textual ID"), blank=True, default="", max_length=200)
warehouse_type = models.ForeignKey(
WarehouseType, verbose_name=_("Warehouse type"), on_delete=models.PROTECT
)
@@ -658,15 +660,20 @@ class Warehouse(
self.update_search_vector()
super(Warehouse, self).save(*args, **kwargs)
- self.skip_history_when_saving = True
+ updated = False
+ if not self.slug and self.name:
+ self.slug = slugify(self.name)[:200]
+ updated = True
if not self.external_id or self.auto_external_id:
external_id = get_generated_id("warehouse_external_id", self)
if external_id != self.external_id:
- self.auto_external_id = True
self.external_id = external_id
- self._cached_label_checked = False
- self.save()
- return
+ updated = True
+ if updated:
+ self.skip_history_when_saving = True
+ self._cached_label_checked = False
+ self.force_update = True
+ self.save()
m2m_changed.connect(document_attached_changed, sender=Warehouse.documents.through)