diff options
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 |
commit | acbcf670ff45881da68897112d82aeb392dc9363 (patch) | |
tree | 53a8427c73b93d301a381a74dfca4769eccac850 | |
parent | 1ca193f4acc8c7f51e5313458cf984e6279f17b9 (diff) | |
download | Ishtar-acbcf670ff45881da68897112d82aeb392dc9363.tar.bz2 Ishtar-acbcf670ff45881da68897112d82aeb392dc9363.zip |
Import: do not stop post processing on first error
-rw-r--r-- | ishtar_common/data_importer.py | 9 |
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): |