diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2015-11-11 13:30:47 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2015-11-11 13:30:47 +0100 |
commit | bdea19f94e7243c18042adba7e0c0e0ebfd22006 (patch) | |
tree | 3edb8a2d4c1b2eec0eb28727741d322910cac377 /archaeological_files/models.py | |
parent | 04e37f4e48cf801d8c499a5736db13c22c8c8c02 (diff) | |
download | Ishtar-bdea19f94e7243c18042adba7e0c0e0ebfd22006.tar.bz2 Ishtar-bdea19f94e7243c18042adba7e0c0e0ebfd22006.zip |
Add accessors for arcahaeological files
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, |