summaryrefslogtreecommitdiff
path: root/ishtar_common/models_imports.py
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-24 18:32:22 +0200
commit06f450605295458ae3166b1a112125cac3b059f9 (patch)
tree0b92b21d38409b9278e6475ac30dc815ea1d1f26 /ishtar_common/models_imports.py
parentc159a968011f8d5fe74faaceb82d8ee23f6653fd (diff)
downloadIshtar-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.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