diff options
| author | Étienne Loks <etienne.loks@proxience.com> | 2015-03-06 17:30:32 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@proxience.com> | 2015-05-06 16:08:19 +0200 | 
| commit | 6984db0ef7eccfcc5fd18d822f1535d50cf636a2 (patch) | |
| tree | b7d84812f9cc2b6a7b3c2657d0affa62f2a8dca4 /ishtar_common/data_importer.py | |
| parent | 3cbc3abd69b2b9f60f5e1dda0fec8eb3e6853656 (diff) | |
| download | Ishtar-6984db0ef7eccfcc5fd18d822f1535d50cf636a2.tar.bz2 Ishtar-6984db0ef7eccfcc5fd18d822f1535d50cf636a2.zip | |
Data importer: prevent stop of importation on bad message error
Diffstat (limited to 'ishtar_common/data_importer.py')
| -rw-r--r-- | ishtar_common/data_importer.py | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index b70e76ffc..2f1d09199 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -687,8 +687,8 @@ class Importer(object):          if 'history_modifier' in \                         self.OBJECT_CLS._meta.get_all_field_names():              data['history_modifier'] = self.history_modifier -        obj, created = self.get_object(self.OBJECT_CLS, data) +        obj, created = self.get_object(self.OBJECT_CLS, data)          if self.import_instance and hasattr(obj, 'imports'):              obj.imports.add(self.import_instance) @@ -923,8 +923,17 @@ class Importer(object):                      for v in values:                          getattr(obj, attr).add(v)              except IntegrityError as e: -                raise ImporterError("Erreur d'import %s, contexte : %s, erreur : %s" \ -                        % (unicode(cls), unicode(data), e.message.decode('utf-8'))) +                message = e.message +                try: +                    message = unicode(e.message.decode('utf-8')) +                except (UnicodeDecodeError, UnicodeDecodeError): +                    message = '' +                try: +                    data = unicode(data) +                except UnicodeDecodeError: +                    data = '' +                raise ImporterError(u"Erreur d'import %s, contexte : %s, erreur : %s" \ +                        % (unicode(cls), data, message))              return obj, created          return data | 
