summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
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
commitee4daac3b1d22e3ff3890efee015253f3e4b9e7a (patch)
tree7a9d79d049c6214b519f57a6f429f7081fe50fc5 /ishtar_common/models_imports.py
parent9bce419add91a8ac4d4ac8ac5e78cab456204836 (diff)
downloadIshtar-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.py39
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(