summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commita5ab1b0ccf6d93d63b0a9fa88579a4c83b9abbd3 (patch)
tree635c27f241e1ed353ce9de0e42fc5f92940ef4c5
parent51607bdc9697bb036c0e2c0d86e6802c6ff7abc7 (diff)
downloadIshtar-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.py51
-rw-r--r--ishtar_common/views.py4
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")