summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-02 19:57:14 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-02 19:57:14 +0200
commit50bbd5bbddd28d0c80eacd2665126945a44dff27 (patch)
tree53a8427c73b93d301a381a74dfca4769eccac850
parent2d004a024300d7c33111e57c5c9365db67af6224 (diff)
downloadIshtar-50bbd5bbddd28d0c80eacd2665126945a44dff27.tar.bz2
Ishtar-50bbd5bbddd28d0c80eacd2665126945a44dff27.zip
Import: do not stop post processing on first error
-rw-r--r--ishtar_common/data_importer.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index b88fbff2f..9caebb2dd 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -868,7 +868,7 @@ class Importer(object):
self.history_modifier = User.objects.filter(
is_superuser=True).order_by('pk')[0]
- def post_processing(self, item, data):
+ def post_processing(self, idx_line, item):
# force django based post-processing for the item
item.save()
if hasattr(item, 'RELATED_POST_PROCESS'):
@@ -876,7 +876,10 @@ class Importer(object):
for related in getattr(item, related_key).all():
related.save()
for func, context, value in self._item_post_processing:
- getattr(item, func)(context, value)
+ try:
+ getattr(item, func)(context, value)
+ except ImporterError as msg:
+ self.errors.append((idx_line, None, msg))
return item
def initialize(self, table, output='silent', choose_default=False,
@@ -1153,7 +1156,7 @@ class Importer(object):
for formater, val in self._post_processing:
formater.post_process(obj, data, val, owner=self.history_modifier)
- self.post_processing(obj, data)
+ self.post_processing(idx_line, obj)
def _row_processing(self, c_row, idx_col, idx_line, val, data):
if idx_col >= len(self.line_format):