diff options
Diffstat (limited to 'archaeological_context_records/models.py')
-rw-r--r-- | archaeological_context_records/models.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 1ae661524..08c6f1d93 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -34,7 +34,7 @@ from ishtar_common.models import GeneralType, BaseHistorizedItem, \ HistoricalRecords, OwnPerms, ShortMenuItem, Source, GeneralRelationType,\ GeneralRecordRelations, post_delete_record_relation, get_image_path, \ post_save_cache, ValueGetter, BulkUpdatedItem, IshtarImage, RelationItem, \ - ThroughImage + Town, ThroughImage from archaeological_operations.models import Operation, Period, Parcel, \ ArchaeologicalSite @@ -264,6 +264,9 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, parcel = models.ForeignKey( Parcel, verbose_name=_(u"Parcel"), related_name='context_record', blank=True, null=True) + town = models.ForeignKey( + Town, verbose_name=_(u"Town"), related_name='context_record', + blank=True, null=True) operation = models.ForeignKey(Operation, verbose_name=_(u"Operation"), related_name='context_record') archaeological_site = models.ForeignKey( @@ -557,6 +560,14 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, """ Dating.fix_dating_association(self) + def save(self, *args, **kwargs): + super(ContextRecord, self).save(*args, **kwargs) + if (not self.town and self.parcel) or ( + self.parcel and self.parcel.town != self.town): + self.town = self.parcel.town + self.skip_history_when_saving = True + self.save() + post_save.connect(cached_label_changed, sender=ContextRecord) |