diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-03-18 16:08:35 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2024-03-18 16:08:35 +0100 |
commit | a5ab1b0ccf6d93d63b0a9fa88579a4c83b9abbd3 (patch) | |
tree | 635c27f241e1ed353ce9de0e42fc5f92940ef4c5 | |
parent | 51607bdc9697bb036c0e2c0d86e6802c6ff7abc7 (diff) | |
download | Ishtar-a5ab1b0ccf6d93d63b0a9fa88579a4c83b9abbd3.tar.bz2 Ishtar-a5ab1b0ccf6d93d63b0a9fa88579a4c83b9abbd3.zip |
🐛 import group: copy CSV settings to sub-imports - fix import group deletion (refs #5698)
-rw-r--r-- | ishtar_common/models_imports.py | 51 | ||||
-rw-r--r-- | ishtar_common/views.py | 4 |
2 files changed, 42 insertions, 13 deletions
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 @@ -1323,6 +1323,15 @@ def delayed_import(import_pk): @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: imp = Import.objects.get(pk=import_pk) @@ -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, diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 84d038440..ea5a3c4d2 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2284,6 +2284,10 @@ class ImportGroupDeleteView(ImportPermissionMixin, IshtarMixin, LoginRequiredMix permission_full = "delete_import" permission_own = "delete_own_import" + def dispatch(self, request, *args, **kwargs): + self.kwargs['group'] = True + return super().dispatch(request, *args, **kwargs) + def get_success_url(self): return reverse("current_imports") |