summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-08-05 12:17:37 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-10-15 19:33:00 +0200
commitfcede4c0e567733a04d4105ec95bccc81cf6bfbf (patch)
treedd2ba4983fd9f580a84203a9dea1373d5a6c8cee
parent9534f3630badba462ed94ba27fa0522eed8a28c0 (diff)
downloadIshtar-fcede4c0e567733a04d4105ec95bccc81cf6bfbf.tar.bz2
Ishtar-fcede4c0e567733a04d4105ec95bccc81cf6bfbf.zip
✨ GIS API: manage "import immediatly"
-rw-r--r--ishtar_common/models_imports.py20
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