summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-10-14 16:20:05 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-10-14 16:20:05 +0200
commitb353953794c5cd16b2e7259eb58ef2ffa996ff8d (patch)
tree5d7a1c436713f6bc829a903d8e8dc47030f5dec5
parenta812abf051da001ab9f35a217fb65a496b315682 (diff)
downloadIshtar-b353953794c5cd16b2e7259eb58ef2ffa996ff8d.tar.bz2
Ishtar-b353953794c5cd16b2e7259eb58ef2ffa996ff8d.zip
🐛 imports - manage post-import errors
-rw-r--r--ishtar_common/data_importer.py8
-rw-r--r--ishtar_common/models.py8
2 files changed, 10 insertions, 6 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index f6e43c683..d9d7a4bac 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -1493,8 +1493,12 @@ class Importer(object):
for formater, val in self._post_processing:
formater.post_process(obj, data, val, owner=self.history_modifier)
-
- self.post_processing(idx_line, obj)
+ try:
+ self.post_processing(idx_line, obj)
+ except ImporterError as import_error:
+ msg = str(import_error)
+ if not any(1 for error in self.IGNORE_ERRORS if error in msg):
+ self.errors.append((self.idx_line, None, msg))
return data
def _row_processing(self, c_row, idx_col, idx_line, val, data):
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 8ffc2ff2f..95dd5cac2 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -80,7 +80,7 @@ from django.template.defaultfilters import slugify
from django.urls import reverse
from django.utils.functional import lazy
from django.utils.safestring import mark_safe
-from ishtar_common.data_importer import post_importer_action
+from ishtar_common.data_importer import ImporterError, post_importer_action
from ishtar_common.utils import (
ugettext_lazy as _,
ugettext,
@@ -5908,11 +5908,11 @@ class Document(
Container = apps.get_model("archaeological_warehouse", "Container")
try:
container = Container.objects.get(code=code)
- except DoesNotExist:
- raise ImportError(
+ except ObjectDoesNotExist:
+ raise ImporterError(
str(_("Container with code {} not found.")).format(code))
except MultipleObjectsReturned:
- raise ImportError(
+ raise ImporterError(
str(_("Multiple containers with code {} found.")).format(code))
self.__class__.objects.filter(pk=self.id).update(
**{target: container.pk})