diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-03-07 13:42:42 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-03-08 11:39:56 +0100 | 
| commit | ee4daac3b1d22e3ff3890efee015253f3e4b9e7a (patch) | |
| tree | 7a9d79d049c6214b519f57a6f429f7081fe50fc5 /ishtar_common/models_imports.py | |
| parent | 9bce419add91a8ac4d4ac8ac5e78cab456204836 (diff) | |
| download | Ishtar-ee4daac3b1d22e3ff3890efee015253f3e4b9e7a.tar.bz2 Ishtar-ee4daac3b1d22e3ff3890efee015253f3e4b9e7a.zip | |
Make background task not mandatory (refs #3951)
Diffstat (limited to 'ishtar_common/models_imports.py')
| -rw-r--r-- | ishtar_common/models_imports.py | 39 | 
1 files changed, 28 insertions, 11 deletions
| diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 4436d4c52..e0a144adc 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -17,7 +17,6 @@  # See the file COPYING for details. -from background_task import background  import csv  import datetime  from importlib import import_module @@ -45,6 +44,11 @@ from ishtar_common.data_importer import Importer, ImportFormater, \      IntegerFormater, FloatFormater, UnicodeFormater, DateFormater, \      TypeFormater, YearFormater, StrToBoolean, FileFormater, InseeFormater +if settings.USE_BACKGROUND_TASK: +    from background_task import background +else: +    background = lambda x: x +  logger = logging.getLogger(__name__)  IMPORTER_CLASSES = {} @@ -769,14 +773,17 @@ ENCODINGS = [(settings.ENCODING, settings.ENCODING),               (settings.ALT_ENCODING, settings.ALT_ENCODING),               ('utf-8', 'utf-8')] +delayed_import = None + -@background(schedule=1) -def delayed_import(import_pk, session_key): -    try: -        imp = Import.objects.get(pk=import_pk) -    except Import.DoesNotExist: -        pass -    imp.importation(session_key=session_key) +if settings.USE_BACKGROUND_TASK: +    @background(schedule=1) +    def delayed_import(import_pk, session_key): +        try: +            imp = Import.objects.get(pk=import_pk) +        except Import.DoesNotExist: +            pass +        imp.importation(session_key=session_key)  class Import(models.Model): @@ -854,11 +861,9 @@ class Import(models.Model):          if self.state == 'A':              actions.append(('A', _(u"Re-analyse")))              actions.append(('I', _(u"Launch import"))) -            actions.append(('ID', _(u"Launch import as background task")))          if self.state in ('F', 'FE'):              actions.append(('A', _(u"Re-analyse")))              actions.append(('I', _(u"Re-import"))) -            actions.append(('ID', _(u"Re-import as background task")))              actions.append(('AC', _(u"Archive")))          if self.state == 'AC':              actions.append(('A', _(u"Unarchive"))) @@ -924,6 +929,8 @@ class Import(models.Model):          self.save()      def delayed_importation(self, session_key): +        if not settings.USE_BACKGROUND_TASK: +            return self.importation(session_key=session_key)          put_session_message(session_key,                              unicode(_(u"Import added to the queue")),                              "warning") @@ -940,7 +947,9 @@ class Import(models.Model):          except IOError:              if session_key:                  put_session_message( -                    session_key, unicode(_(u"Error on imported file")), +                    session_key, +                    unicode(_(u"Error on imported file: {}")).format( +                        self.imported_file),                      "warning"                  )              self.state = 'FE' @@ -960,9 +969,17 @@ class Import(models.Model):                  error_file,                  ContentFile(importer.get_csv_errors().encode('utf-8'))              ) +            msg = unicode(_(u"Import {} finished with errors")).format( +                self.imported_file) +            msg_cls = "warning"          else:              self.state = 'F'              self.error_file = None +            msg = unicode(_(u"Import {} finished with no errors")).format( +                self.imported_file) +            msg_cls = "primary" +        if session_key: +            put_session_message(session_key, msg, msg_cls)          if importer.match_table:              match_file = filename + "_match_%s.csv" % now              self.match_file.save( | 
