diff options
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index b9a2e0863..4be807478 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -90,10 +90,10 @@ post_delete.connect(post_save_cache, sender=ReportState) class ArchaeologicalSite(BaseHistorizedItem): SHOW_URL = 'show-site' - TABLE_COLS = ['reference', 'name', 'periods', 'remains'] + TABLE_COLS = ['reference', 'name', 'towns', 'periods', 'remains'] SLUG = 'site' BASE_SEARCH_VECTORS = ["reference", "name"] - M2M_SEARCH_VECTORS = ["periods__name", "remains__name"] + M2M_SEARCH_VECTORS = ["periods__name", "remains__name", "towns__name"] PARENT_SEARCH_VECTORS = ['operations'] reference = models.CharField(_(u"Reference"), max_length=200, unique=True) name = models.CharField(_(u"Name"), max_length=200, @@ -102,6 +102,8 @@ class ArchaeologicalSite(BaseHistorizedItem): blank=True) remains = models.ManyToManyField("RemainType", verbose_name=_(u'Remains'), blank=True) + towns = models.ManyToManyField(Town, verbose_name=_(u"Towns"), + related_name='sites', blank=True) class Meta: verbose_name = _(u"Archaeological site") @@ -123,13 +125,13 @@ class ArchaeologicalSite(BaseHistorizedItem): name = self.reference if self.name: name += u" %s %s" % (settings.JOINT, self.name) - if self.remains.count(): - name += u" {} {}".format( - settings.JOINT, - u", ".join([unicode(remain) for remain in self.remains.all()])) - if self.periods.count(): - name += u" [{}]".format( - u", ".join([unicode(period) for period in self.periods.all()])) + keys = [('towns', u" - {}"), ('remains', u" - {}"), + ('periods', u" [{}]")] + for k, lbl in keys: + if getattr(self, k).count(): + name += lbl.format(u", ".join([ + unicode(v) for v in getattr(self, k).all() + ])) return name @property |