diff options
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r-- | archaeological_files/models.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 0499efce6..1d8822a3b 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -175,6 +175,13 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, blank=True) history = HistoricalRecords() + GET_VALUES_EXTRA = [ + 'general_contractor_address_1', + 'general_contractor_address_2', + 'general_contractor_address_3', + 'get_locality', + ] + class Meta: verbose_name = _(u"Archaeological file") verbose_name_plural = _(u"Archaeological files") @@ -222,6 +229,59 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem, return val return self.update_has_admin_act(cache_key) + @property + def get_locality(self): + return " - ".join( + [getattr(self, k) for k in ('locality', 'address') + if getattr(self, k)]) + + @property + def general_contractor_address_1(self): + address = '' + if self.general_contractor: + if self.general_contractor.name: + address = u" ".join([ + getattr(self.general_contractor, key) + for key in ('title', 'surname', 'name') + if getattr(self.general_contractor, key)]) + elif self.general_contractor.raw_name: + address = self.general_contractor.raw_name + if not address and self.corporation_general_contractor and\ + self.corporation_general_contractor.name: + address = self.corporation_general_contractor.name + return address + + @property + def general_contractor_address_2(self): + address = '' + if self.general_contractor and self.general_contractor.address: + address = self.general_contractor.address + if self.general_contractor.address_complement: + address += u" " + self.general_contractor.address_complement + if not address and self.corporation_general_contractor and\ + self.corporation_general_contractor.address: + address = self.corporation_general_contractor.address + if self.corporation_general_contractor.address_complement: + address += u" " + \ + self.corporation_general_contractor.address_complement + return address + + @property + def general_contractor_address_3(self): + address = '' + if self.general_contractor and self.general_contractor.postal_code: + address = u" ".join([ + getattr(self.general_contractor, key) + for key in ('postal_code', 'town') + if getattr(self.general_contractor, key)]) + if not address and self.corporation_general_contractor and\ + self.corporation_general_contractor.address: + address = u" ".join([ + getattr(self.corporation_general_contractor, key) + for key in ('postal_code', 'town') + if getattr(self.corporation_general_contractor, key)]) + return address + def update_has_admin_act(self, cache_key=None): if not cache_key: cache_key, val = get_cache(self.__class__, [self.pk, |