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, 11 insertions, 4 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index fa2d5b430..d4e175d55 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -21,9 +21,11 @@ from django.conf import settings
from django.contrib.gis.db import models
from django.core.urlresolvers import reverse
from django.db.models import Q
-from django.db.models.signals import post_delete
+from django.db.models.signals import post_delete, post_save
from django.utils.translation import ugettext_lazy as _, ugettext, pgettext
+from ishtar_common.utils import cached_label_changed
+
from ishtar_common.models import GeneralType, BaseHistorizedItem, \
HistoricalRecords, OwnPerms, ShortMenuItem, Source, GeneralRelationType,\
GeneralRecordRelations, post_delete_record_relation, get_external_id, \
@@ -178,6 +180,7 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
'ContextRecord', through='RecordRelations', blank=True, null=True)
point = models.PointField(_(u"Point"), blank=True, null=True, dim=3)
polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True)
+ cached_label = models.TextField(_(u"Cached name"), null=True, blank=True)
history = HistoricalRecords()
class Meta:
@@ -194,6 +197,7 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
("delete_own_contextrecord",
ugettext(u"Can delete own Context Record")),
)
+ ordering = ('cached_label',)
@property
def name(self):
@@ -232,9 +236,6 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
def full_label(self):
return unicode(self)
- if not self.operation:
- return unicode(self)
- return self._real_label() or self._temp_label()
def _real_label(self):
if not self.operation.code_patriarche:
@@ -249,6 +250,9 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
self.operation.year, self.operation.operation_code, self.label]
if lbl])
+ def _generate_cached_label(self):
+ return self.full_label()
+
@property
def reference(self):
if not self.operation:
@@ -327,6 +331,9 @@ class ContextRecord(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
return returned
+post_save.connect(cached_label_changed, sender=ContextRecord)
+
+
class RelationType(GeneralRelationType):
inverse_relation = models.ForeignKey(
'RelationType', verbose_name=_(u"Inverse relation"), blank=True,