diff options
Diffstat (limited to 'archaeological_operations')
| -rw-r--r-- | archaeological_operations/forms.py | 6 | ||||
| -rw-r--r-- | archaeological_operations/migrations/0033_parcel_cached_label.py | 20 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 18 | 
3 files changed, 31 insertions, 13 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 4e01a492a..29a86cc2e 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -484,7 +484,7 @@ class OperationSelect(TableSelect):              widget=OAWidget,              label="Code PATRIARCHE")      towns = get_town_field() -    parcel = ParcelField(label=_("Parcel (section/number/public domain)")) +    parcel = forms.CharField(label=_(u"Parcel"))      if settings.ISHTAR_DPTS:          towns__numero_insee__startswith = forms.ChoiceField(              label=_(u"Department"), choices=[]) @@ -598,10 +598,6 @@ class OperationSelect(TableSelect):      def get_input_ids(self):          ids = super(OperationSelect, self).get_input_ids() -        ids.pop(ids.index('parcel')) -        ids.append('parcel_0') -        ids.append('parcel_1') -        ids.append('parcel_2')          ids.pop(ids.index('relation_types'))          for idx, c in enumerate(self.fields['relation_types'].choices):              ids.append('relation_types_{}'.format(idx)) diff --git a/archaeological_operations/migrations/0033_parcel_cached_label.py b/archaeological_operations/migrations/0033_parcel_cached_label.py new file mode 100644 index 000000000..2455faa69 --- /dev/null +++ b/archaeological_operations/migrations/0033_parcel_cached_label.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-07-04 12:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('archaeological_operations', '0032_auto_20180601_1555'), +    ] + +    operations = [ +        migrations.AddField( +            model_name='parcel', +            name='cached_label', +            field=models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached name'), +        ), +    ] 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 \  | 
