diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-10-14 18:07:32 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-10-15 19:34:46 +0200 |
commit | 08a3f83a4c00a5f7698225b2980fd184da9819e6 (patch) | |
tree | 04588dcfc69c8eb7a49cf2cc5dbd9441201e81d1 /ishtar_common/models_imports.py | |
parent | 6f5c46f73606fd4afb957f73c355bc61a3f7f393 (diff) | |
download | Ishtar-08a3f83a4c00a5f7698225b2980fd184da9819e6.tar.bz2 Ishtar-08a3f83a4c00a5f7698225b2980fd184da9819e6.zip |
✨ GIS API: manage delayed imports - send error messages from imports
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): |