summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commitd3af6e3cce1a22853dd3cc9d25474af4718dc2eb (patch)
tree1d18a58f60f84b57c509e912a7ef52b63dafcab9
parentb83bc8404f77600e8d313d9cdd6672d8208de01f (diff)
downloadIshtar-d3af6e3cce1a22853dd3cc9d25474af4718dc2eb.tar.bz2
Ishtar-d3af6e3cce1a22853dd3cc9d25474af4718dc2eb.zip
Parcel: add cached label field
-rw-r--r--archaeological_operations/forms.py6
-rw-r--r--archaeological_operations/migrations/0033_parcel_cached_label.py20
-rw-r--r--archaeological_operations/models.py18
-rw-r--r--ishtar_common/migrations/0061_auto_20180704_1225.py20
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'),
+ ),
+ ]