diff options
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( |