summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-22 10:51:51 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-09-22 10:51:51 +0200
commitd6e79554718fb618425b3c7085427d170ecf79f0 (patch)
tree46aa30bd3d9f466611159632a214911bda162837 /archaeological_operations/models.py
parentdeaf4b714e0f26caeac743ad88937f1c92de6b48 (diff)
downloadIshtar-d6e79554718fb618425b3c7085427d170ecf79f0.tar.bz2
Ishtar-d6e79554718fb618425b3c7085427d170ecf79f0.zip
✨ imports: manage post processing of linked items - post importer for Parcel: set_parcel
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py18
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,)