diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-08-05 12:17:37 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-10-24 18:32:22 +0200 |
| commit | 06f450605295458ae3166b1a112125cac3b059f9 (patch) | |
| tree | 0b92b21d38409b9278e6475ac30dc815ea1d1f26 /ishtar_common/models_imports.py | |
| parent | c159a968011f8d5fe74faaceb82d8ee23f6653fd (diff) | |
| download | Ishtar-06f450605295458ae3166b1a112125cac3b059f9.tar.bz2 Ishtar-06f450605295458ae3166b1a112125cac3b059f9.zip | |
✨ GIS API: manage "import immediatly"
Diffstat (limited to 'ishtar_common/models_imports.py')
| -rw-r--r-- | ishtar_common/models_imports.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index 130a692fd..399866a89 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -1593,8 +1593,6 @@ class BaseImport(models.Model, OwnPerms, SheetItem): @classmethod def get_permissions_for_actions(cls, user): - if not hasattr(user, "ishtaruser") or not user.ishtaruser: - return False, False, False, False permissions = { "can_view_own": False, "can_edit_own": False, @@ -1603,7 +1601,13 @@ class BaseImport(models.Model, OwnPerms, SheetItem): "can_view_all": False, "can_delete_all": False, } - ishtaruser = user.ishtaruser + IshtarUser = apps.get_model("ishtar_common", "IshtarUser") + if isinstance(user, IshtarUser): + ishtaruser = user + else: + if not hasattr(user, "ishtaruser") or not user.ishtaruser: + return permissions + ishtaruser = user.ishtaruser if ishtaruser.has_permission("ishtaradmin"): permissions["can_view_all"] = True permissions["can_edit_all"] = True @@ -3005,6 +3009,16 @@ class Import(BaseImport): self._maj_imported_file = True self.save() + if not self.import_immediatly or self.state != "C": + return + permissions = self.get_permissions_for_actions(self.user) + if not permissions["can_edit_all"] and not permissions["can_edit_own"]: + return + self.initialize() + if not self.pre_import_form_is_valid or self.need_matching(): + return + self.importation() + def pre_delete_import(sender, **kwargs): # deleted imported items when an import is delete |
