diff options
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r-- | archaeological_operations/models.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index f4430a8f1..f8c8f20a0 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -20,6 +20,7 @@ from collections import OrderedDict import datetime from itertools import groupby +import re import uuid from django.apps import apps @@ -34,6 +35,7 @@ from django.db.models import Q, Count, Sum, Max, Avg from django.db.models.signals import post_save, m2m_changed, post_delete from django.forms import ValidationError from django.urls import reverse +from ishtar_common.data_importer import post_importer_action from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy, get_generated_id from ishtar_common.models import ( @@ -3345,6 +3347,22 @@ class Parcel(LightHistorizedItem): def __str__(self): return self.short_label + @post_importer_action + def set_parcel(self, __, value): + """ + Set section and parcel number from a string + """ + RE_PARCEL = re.compile(r"([A-Za-z]{1,4})(\d+)") + m = RE_PARCEL.match(value) + if not m: + return + self.section, self.parcel_number = m.groups() + self.__class__.objects.filter(pk=self.pk).update( + section=self.section, parcel_number=self.parcel_number + ) + + set_parcel.post_save = True + def natural_key(self): return (self.uuid,) |