From d6e79554718fb618425b3c7085427d170ecf79f0 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 22 Sep 2024 10:51:51 +0200 Subject: ✨ imports: manage post processing of linked items - post importer for Parcel: set_parcel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archaeological_operations/models.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'archaeological_operations') 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,) -- cgit v1.2.3