From 1e1623931a3cf7e881de8ea30a71170966065c02 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 18 Mar 2024 16:08:35 +0100 Subject: 🐛 import group: copy CSV settings to sub-imports - fix import group deletion (refs #5698) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ishtar_common/models_imports.py | 51 ++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 13 deletions(-) (limited to 'ishtar_common/models_imports.py') diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 9ed746e4f..b25fdc684 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -1322,6 +1322,15 @@ def delayed_import(import_pk): imp.importation() +@task() +def delayed_import_group(import_pk): + try: + imp = ImportGroup.objects.get(pk=import_pk) + except ImportGroup.DoesNotExist: + return + imp.importation() + + @task() def delayed_check(import_pk): try: @@ -1496,6 +1505,32 @@ class BaseImport(models.Model, OwnPerms, SheetItem): def get_imported_images(self): return self.imported_images + def delayed_importation(self, request, session_key): + if not settings.USE_BACKGROUND_TASK: + return self.importation(request=request, session_key=session_key) + put_session_message( + session_key, + str(_("Import {} added to the queue")).format(self.name), + "info", + ) + self.state = "IQ" + self.end_date = datetime.datetime.now() + self.save() + if self.SLUG == "import": + return delayed_import.delay(self.pk) + else: + return delayed_import_group.delay(self.pk) + + def importation( + self, + session_key=None, + line_to_process=None, + simulate=False, + return_importer_and_data=False, + request=None, + ): + raise NotImplemented() + def save(self, *args, **kwargs): super().save(*args, **kwargs) if ( @@ -1843,6 +1878,9 @@ class ImportGroup(BaseImport): name=name, importer_type=importer_type, group=self, + encoding=self.encoding, + csv_sep=self.csv_sep, + skip_lines=self.skip_lines, ) imports.append(imp) modified = False @@ -2532,19 +2570,6 @@ class Import(BaseImport): self.changed_checked = True self.save() - def delayed_importation(self, request, session_key): - if not settings.USE_BACKGROUND_TASK: - return self.importation(request=request, session_key=session_key) - put_session_message( - session_key, - str(_("Import {} added to the queue")).format(self.name), - "info", - ) - self.state = "IQ" - self.end_date = datetime.datetime.now() - self.save() - return delayed_import.delay(self.pk) - def importation( self, session_key=None, -- cgit v1.2.3