diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-03-19 19:29:50 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-06-17 13:21:27 +0200 |
commit | 7234d8595a792fdcaf5849c2a1e66f8a5f1d96be (patch) | |
tree | 706eeda5cdb1258cdf0267ad3c5d5ec86bdaacff /ishtar_common | |
parent | 461575f1116b04f049ea7880192583bd4d588b97 (diff) | |
download | Ishtar-7234d8595a792fdcaf5849c2a1e66f8a5f1d96be.tar.bz2 Ishtar-7234d8595a792fdcaf5849c2a1e66f8a5f1d96be.zip |
Manage import in background mode
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/data_importer.py | 1 | ||||
-rw-r--r-- | ishtar_common/models_imports.py | 25 | ||||
-rw-r--r-- | ishtar_common/views.py | 4 |
3 files changed, 17 insertions, 13 deletions
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 7088eee08..72b42dd71 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -922,6 +922,7 @@ class Importer(object): getattr(item, func)(context, value) except ImporterError as msg: self.errors.append((idx_line, None, msg)) + print("OK - post - {}".format(item)) return item def initialize(self, table, output='silent', choose_default=False, 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: diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 1109b2dc9..7fa69eb66 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -1107,7 +1107,9 @@ class ImportListView(IshtarMixin, LoginRequiredMixin, ListView): session_key=request.session.session_key) elif action == 'I': if settings.USE_BACKGROUND_TASK: - imprt.delayed_importation(request.session.session_key) + imprt.delayed_importation( + request, request.session.session_key + ) else: imprt.importation() elif action == 'CH': |