diff options
Diffstat (limited to 'ishtar_common/models_imports.py')
-rw-r--r-- | ishtar_common/models_imports.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 2b568df21..3d8cce882 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -1683,7 +1683,8 @@ class BaseImport(models.Model, OwnPerms, SheetItem): def get_imported_images(self): return self.imported_images - def delayed_importation(self, request, session_key): + def delayed_importation(self, request): + session_key = request.session.session_key if request else None if not settings.USE_BACKGROUND_TASK: return self.importation(request=request, session_key=session_key) put_session_message( @@ -2989,6 +2990,24 @@ class Import(BaseImport): continue ImportLineError.objects.get_or_create(import_item=self, line=idx) + def start_import(self, request=None): + if settings.USE_BACKGROUND_TASK: + self.delayed_importation(request) + return + try: + self.importation() + except ImporterError as e: + self.state = "FE" + self.end_date = timezone.now() + self.save() + if request: + put_session_message( + request.session.session_key, + f"{self} - {e}", + "warning", + ) + + def save(self, *args, **kwargs): maj_imported_file = False if getattr(self, "_maj_imported_file", False): @@ -3013,7 +3032,7 @@ class Import(BaseImport): self.initialize() if not self.pre_import_form_is_valid or self.need_matching(): return - self.importation() + self.start_import() def pre_delete_import(sender, **kwargs): |