diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-03-15 09:52:32 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-03-27 17:52:07 +0200 | 
| commit | 54daa385a241ad272abe9e06a63a0da36ff17749 (patch) | |
| tree | a4071ff51a08618ad9d8c3f4fec1d0dc7869ca11 /ishtar_common/models_imports.py | |
| parent | 96ce026e838b0f391d995a69d7eaca3abaf1912b (diff) | |
| download | Ishtar-54daa385a241ad272abe9e06a63a0da36ff17749.tar.bz2 Ishtar-54daa385a241ad272abe9e06a63a0da36ff17749.zip | |
Step by step import - WIP - refs #3975
Diffstat (limited to 'ishtar_common/models_imports.py')
| -rw-r--r-- | ishtar_common/models_imports.py | 28 | 
1 files changed, 18 insertions, 10 deletions
| diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index c3fbaa92d..10124b024 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -170,7 +170,7 @@ class ImporterType(models.Model):                  if column.export_field_name:                      LINE_EXPORT_FORMAT.append(                          ImportFormater(column.export_field_name, -                                        label=column.label) +                                       label=column.label)                      )                  continue              force_news = [] @@ -196,6 +196,7 @@ class ImporterType(models.Model):              formater_kwargs['label'] = column.label              formater_kwargs['required'] = column.required              formater_kwargs['force_new'] = force_news +            formater_kwargs['comment'] = column.description              if column.export_field_name:                  formater_kwargs['export_field_name'] = [                      column.export_field_name] @@ -865,9 +866,11 @@ class Import(models.Model):          if self.state == 'A':              actions.append(('A', _(u"Re-analyse")))              actions.append(('I', _(u"Launch import"))) +            actions.append(('IS', _(u"Step by step import")))          if self.state in ('F', 'FE'):              actions.append(('A', _(u"Re-analyse")))              actions.append(('I', _(u"Re-import"))) +            actions.append(('IS', _(u"Step by step import")))              actions.append(('AC', _(u"Archive")))          if self.state == 'AC':              actions.append(('A', _(u"Unarchive"))) @@ -946,21 +949,22 @@ class Import(models.Model):          self.save()          return delayed_import(self.pk, session_key) -    def importation(self, session_key=None): +    def importation(self, session_key=None, line_to_process=None, +                    simulate=False, return_importer_and_data=False):          self.state = 'IP'          self.end_date = datetime.datetime.now()          self.save()          importer = self.get_importer_instance()          try: -            importer.importation(self.data_table, user=self.user) +            data = importer.importation( +                self.data_table, user=self.user, +                line_to_process=line_to_process, simulate=simulate)          except IOError: +            error_message = unicode(_(u"Error on imported file: {}")).format( +                self.imported_file) +            importer.errors = [error_message]              if session_key: -                put_session_message( -                    session_key, -                    unicode(_(u"Error on imported file: {}")).format( -                        self.imported_file), -                    "warning" -                ) +                put_session_message(session_key, error_message, "warning")                  ids = get_session_var(session_key, 'current_import_id')                  if not ids:                      ids = [] @@ -968,7 +972,9 @@ class Import(models.Model):                  put_session_var(session_key, 'current_import_id', ids)              self.state = 'FE'              self.save() -            return +            if not return_importer_and_data: +                return +            return importer, None          # result file          filename = slugify(self.importer_type.name)          now = datetime.datetime.now().isoformat('-').replace(':', '') @@ -1006,6 +1012,8 @@ class Import(models.Model):              )          self.end_date = datetime.datetime.now()          self.save() +        if return_importer_and_data: +            return importer, data      def archive(self):          self.state = 'AC' | 
