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-24 18:35:22 +0200 | 
| commit | 91a3df4ddd70e395174cd9d1699bfe61f443cb81 (patch) | |
| tree | c146c9180a6a4df04554756d9c8738d776413bea /ishtar_common/models_imports.py | |
| parent | 41f648b73cc9aa4322a6d82d68e3e1fde9d4a85e (diff) | |
| download | Ishtar-91a3df4ddd70e395174cd9d1699bfe61f443cb81.tar.bz2 Ishtar-91a3df4ddd70e395174cd9d1699bfe61f443cb81.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): | 
