diff options
-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 | ||||
-rw-r--r-- | ishtar_common/migrations/0061_auto_20180704_1225.py | 20 |
4 files changed, 51 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 \ diff --git a/ishtar_common/migrations/0061_auto_20180704_1225.py b/ishtar_common/migrations/0061_auto_20180704_1225.py new file mode 100644 index 000000000..55eaea837 --- /dev/null +++ b/ishtar_common/migrations/0061_auto_20180704_1225.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-07-04 12:25 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ishtar_common', '0060_auto_20180613_1848'), + ] + + operations = [ + migrations.AlterField( + model_name='document', + name='item_number', + field=models.IntegerField(default=1, verbose_name='Number of items'), + ), + ] |