diff options
| -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, | 
