From dc1d0da3544d2ec9adb4c792c357fe06eaf752a7 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Fri, 27 Jan 2023 17:31:00 +0100 Subject: Add custom cached_label configuration for each main item --- archaeological_operations/models.py | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'archaeological_operations/models.py') diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 191918237..d5110df9c 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -36,7 +36,7 @@ from django.db.models import Q, Count, Sum, Max, Avg from django.db.models.signals import post_save, m2m_changed, post_delete from django.forms import ValidationError from django.urls import reverse -from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy +from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy, get_generated_id from ishtar_common.models import ( Area, @@ -532,13 +532,6 @@ class ArchaeologicalSite( blank=True, null=True, ) - cached_label = models.TextField( - _("Cached name"), - blank=True, - default="", - db_index=True, - help_text=_("Generated automatically - do not edit"), - ) cached_towns_label = models.TextField( _("Cached town label"), blank=True, @@ -574,7 +567,7 @@ class ArchaeologicalSite( ] def __str__(self): - return self.cached_label or self._generate_cached_label() or "" + return self.cached_label or "" @property def short_class_name(self): @@ -707,6 +700,9 @@ class ArchaeologicalSite( return cls._return_get_owns(owns, values, get_short_menu_class) def _generate_cached_label(self): + label = self._profile_generate_cached_label() + if label: + return label name = self.reference if self.name: name += " %s %s" % (settings.JOINT, self.name) @@ -1424,14 +1420,6 @@ class Operation( blank=True, null=True, ) - cached_label = models.CharField( - _("Cached name"), - max_length=500, - help_text=_("Generated automatically - do not edit"), - null=True, - blank=True, - db_index=True, - ) archaeological_sites = models.ManyToManyField( ArchaeologicalSite, verbose_name=_("Archaeological sites"), @@ -1724,6 +1712,9 @@ class Operation( # return None def _generate_cached_label(self): + label = self._profile_generate_cached_label() + if label: + return label items = [self.get_town_label(), self.get_reference(full=True)] if self.common_name: items.append(self.common_name) @@ -3090,6 +3081,9 @@ class Parcel(LightHistorizedItem): """ def _generate_cached_label(self): + label = get_generated_id("parcel_cached_label", self) + if label: + return label if self.public_domain: return "DP" return "{}{}".format(self.section or "", self.parcel_number or "") -- cgit v1.2.3