diff options
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 |
commit | b353953794c5cd16b2e7259eb58ef2ffa996ff8d (patch) | |
tree | 5d7a1c436713f6bc829a903d8e8dc47030f5dec5 | |
parent | a812abf051da001ab9f35a217fb65a496b315682 (diff) | |
download | Ishtar-b353953794c5cd16b2e7259eb58ef2ffa996ff8d.tar.bz2 Ishtar-b353953794c5cd16b2e7259eb58ef2ffa996ff8d.zip |
🐛 imports - manage post-import errors
-rw-r--r-- | ishtar_common/data_importer.py | 8 | ||||
-rw-r--r-- | ishtar_common/models.py | 8 |
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}) |