summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r--ishtar_common/models_imports.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index e0a144adc..b6b68d5a6 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -39,7 +39,8 @@ from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _, pgettext_lazy
from ishtar_common.utils import create_slug, \
- get_all_related_m2m_objects_with_model, put_session_message
+ get_all_related_m2m_objects_with_model, put_session_message, \
+ put_session_var, get_session_var
from ishtar_common.data_importer import Importer, ImportFormater, \
IntegerFormater, FloatFormater, UnicodeFormater, DateFormater, \
TypeFormater, YearFormater, StrToBoolean, FileFormater, InseeFormater
@@ -822,8 +823,8 @@ class Import(models.Model):
help_text=_(u'If set to true, do not overload existing values.'))
creation_date = models.DateTimeField(
_(u"Creation date"), auto_now_add=True, blank=True, null=True)
- end_date = models.DateTimeField(_(u"End date"), blank=True,
- null=True, editable=False)
+ end_date = models.DateTimeField(_(u"End date"), auto_now_add=True,
+ blank=True, null=True, editable=False)
seconds_remaining = models.IntegerField(
_(u"Remaining seconds"), blank=True, null=True, editable=False)
@@ -922,24 +923,29 @@ class Import(models.Model):
def initialize(self, user=None):
self.state = 'AP'
+ self.end_date = datetime.datetime.now()
self.save()
self.get_importer_instance().initialize(self.data_table,
user=user, output='db')
self.state = 'A'
+ self.end_date = datetime.datetime.now()
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")
+ put_session_message(
+ session_key,
+ unicode(_(u"Import {} added to the queue")).format(self.name),
+ "info")
self.state = 'IQ'
+ self.end_date = datetime.datetime.now()
self.save()
return delayed_import(self.pk, session_key)
def importation(self, session_key=None):
self.state = 'IP'
+ self.end_date = datetime.datetime.now()
self.save()
importer = self.get_importer_instance()
try:
@@ -952,6 +958,11 @@ class Import(models.Model):
self.imported_file),
"warning"
)
+ ids = get_session_var(session_key, 'current_import_id')
+ if not ids:
+ ids = []
+ ids.append(self.pk)
+ put_session_var(session_key, 'current_import_id', ids)
self.state = 'FE'
self.save()
return
@@ -970,26 +981,32 @@ class Import(models.Model):
ContentFile(importer.get_csv_errors().encode('utf-8'))
)
msg = unicode(_(u"Import {} finished with errors")).format(
- self.imported_file)
+ self.name)
msg_cls = "warning"
else:
self.state = 'F'
self.error_file = None
msg = unicode(_(u"Import {} finished with no errors")).format(
- self.imported_file)
+ self.name)
msg_cls = "primary"
if session_key:
put_session_message(session_key, msg, msg_cls)
+ ids = self.request.session['current_import_id'] \
+ if 'current_import_id' in self.request.session else []
+ ids.append(self.pk)
+ put_session_var(session_key, 'current_import_id', ids)
if importer.match_table:
match_file = filename + "_match_%s.csv" % now
self.match_file.save(
match_file,
ContentFile(importer.get_csv_matches().encode('utf-8'))
)
+ self.end_date = datetime.datetime.now()
self.save()
def archive(self):
self.state = 'AC'
+ self.end_date = datetime.datetime.now()
self.save()
def get_all_imported(self):