summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_treatments.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_treatments.py')
-rw-r--r--archaeological_finds/models_treatments.py33
1 files changed, 31 insertions, 2 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index a826d2a4a..e0fb8683c 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -108,6 +108,7 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms):
container = models.ForeignKey(Container, verbose_name=_(u"Container"),
blank=True, null=True)
target_is_basket = models.BooleanField(_(u"Target a basket"), default=False)
+ cached_label = models.TextField(_(u"Cached name"), null=True, blank=True)
history = HistoricalRecords()
class Meta:
@@ -128,6 +129,12 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms):
lbl += u" %s %s" % (_(u"by"), unicode(self.person))
return lbl
+ def _generate_cached_label(self):
+ items = [unicode(getattr(self, k))
+ for k in ['year', 'index', 'other_reference', 'label'] if
+ getattr(self, k)]
+ return settings.JOINT.join(items)
+
def treatment_types_lbl(self):
"""
Treatment types label
@@ -185,6 +192,8 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms):
return "-".join([str(slugify(getattr(self, attr)))
for attr in ('year', 'index', 'label')])
+post_save.connect(cached_label_changed, sender=Treatment)
+
def pre_delete_treatment(sender, **kwargs):
treatment = kwargs.get('instance')
@@ -428,12 +437,32 @@ post_save.connect(cached_label_changed, sender=TreatmentFile)
class TreatmentSource(Source):
+ treatment = models.ForeignKey(
+ Treatment, verbose_name=_(u"Treatment"), related_name="source")
+ BOOL_FIELDS = ['duplicate']
+ TABLE_COLS = ['treatment__cached_label'] + Source.TABLE_COLS
+ SHOW_URL = 'show-treatmentsource'
+
class Meta:
verbose_name = _(u"Treatment documentation")
verbose_name_plural = _(u"Treament documentations")
- treatment = models.ForeignKey(
- Treatment, verbose_name=_(u"Treatment"), related_name="source")
@property
def owner(self):
return self.treatment
+
+
+class TreatmentFileSource(Source):
+ treatment_file = models.ForeignKey(
+ TreatmentFile, verbose_name=_(u"Treatment file"), related_name="source")
+ BOOL_FIELDS = ['duplicate']
+ TABLE_COLS = ['treatment_file__cached_label'] + Source.TABLE_COLS
+ SHOW_URL = 'show-treatmentfilesource'
+
+ class Meta:
+ verbose_name = _(u"Treatment file documentation")
+ verbose_name_plural = _(u"Treament file documentations")
+
+ @property
+ def owner(self):
+ return self.treatment_file