From 01ae8944b920f2a8d3204cf8e4cbb4721c7f74b9 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 19 Mar 2019 19:29:50 +0100 Subject: Manage import in background mode --- ishtar_common/models_imports.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'ishtar_common/models_imports.py') diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 20c3bf9c4..5b1493173 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -856,20 +856,20 @@ delayed_check = None if settings.USE_BACKGROUND_TASK: @task() - def delayed_import(import_pk, session_key): + def delayed_import(import_pk): try: imp = Import.objects.get(pk=import_pk) except Import.DoesNotExist: pass - imp.importation(session_key=session_key) + imp.importation() @task() - def delayed_check(import_pk, session_key): + def delayed_check(import_pk): try: imp = Import.objects.get(pk=import_pk) except Import.DoesNotExist: pass - imp.check_modified(session_key=session_key) + imp.check_modified() class Import(models.Model): @@ -1132,7 +1132,7 @@ class Import(models.Model): self.state = 'HQ' self.end_date = datetime.datetime.now() self.save() - return delayed_check(self.pk, session_key) + return delayed_check.delay(self.pk) def check_modified(self, session_key=None): self.state = 'HP' @@ -1191,9 +1191,9 @@ class Import(models.Model): self.changed_checked = True self.save() - def delayed_importation(self, session_key): + def delayed_importation(self, request, session_key): if not settings.USE_BACKGROUND_TASK: - return self.importation(session_key=session_key) + return self.importation(request=request, session_key=session_key) put_session_message( session_key, str(_(u"Import {} added to the queue")).format(self.name), @@ -1201,10 +1201,11 @@ class Import(models.Model): self.state = 'IQ' self.end_date = datetime.datetime.now() self.save() - return delayed_import(self.pk, session_key) + return delayed_import.delay(self.pk) def importation(self, session_key=None, line_to_process=None, - simulate=False, return_importer_and_data=False): + simulate=False, return_importer_and_data=False, + request=None): self.state = 'IP' self.end_date = datetime.datetime.now() self.save() @@ -1261,10 +1262,10 @@ class Import(models.Model): msg = str(_(u"Import {} finished with no errors")).format( self.name) msg_cls = "primary" - if session_key: + if session_key and request: 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 = request.session['current_import_id'] \ + if 'current_import_id' in request.session else [] ids.append(self.pk) put_session_var(session_key, 'current_import_id', ids) if importer.match_table: -- cgit v1.2.3