diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-04 14:39:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-13 18:26:03 +0200 |
commit | d3af6e3cce1a22853dd3cc9d25474af4718dc2eb (patch) | |
tree | 1d18a58f60f84b57c509e912a7ef52b63dafcab9 /archaeological_operations/models.py | |
parent | b83bc8404f77600e8d313d9cdd6672d8208de01f (diff) | |
download | Ishtar-d3af6e3cce1a22853dd3cc9d25474af4718dc2eb.tar.bz2 Ishtar-d3af6e3cce1a22853dd3cc9d25474af4718dc2eb.zip |
Parcel: add cached label field
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 2c51c262b..9565bf144 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -303,14 +303,7 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, 'end_after': 'excavation_end_date__gte', 'towns__numero_insee__startswith': 'towns__numero_insee__startswith', - 'parcel_0': ('parcels__section', - 'associated_file__parcels__section'), - 'parcel_1': ( - 'parcels__parcel_number', - 'associated_file__parcels__parcel_number'), - 'parcel_2': ( - 'parcels__public_domain', - 'associated_file__parcels__public_domain'), + 'parcel': 'parcels__cached_label__iexact', 'history_creator': 'history_creator__ishtaruser__person__pk', 'history_modifier': @@ -1405,6 +1398,8 @@ class Parcel(LightHistorizedItem): auto_external_id = models.BooleanField( _(u"External ID is set automatically"), default=False) address = models.TextField(_(u"Address - Locality"), null=True, blank=True) + cached_label = models.TextField(_(u"Cached name"), null=True, blank=True, + db_index=True) class Meta: verbose_name = _(u"Parcel") @@ -1447,6 +1442,11 @@ class Parcel(LightHistorizedItem): parcel.delete() """ + def _generate_cached_label(self): + if self.public_domain: + return u"DP" + return u"{}{}".format(self.section or u"", self.parcel_number or u"") + @classmethod def grouped_parcels(cls, parcels): sortkeyfn = lambda s: (getattr(s, 'town_id'), @@ -1553,6 +1553,8 @@ def parcel_post_save(sender, **kwargs): parcel = kwargs['instance'] created = kwargs.get('created', None) + cached_label_changed(sender, **kwargs) + updated = False # remove when the parcel is linked to nothing if not getattr(parcel, '_updated_id', None) and not created \ |