summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-07-29 08:46:56 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-07-29 08:49:03 +0200
commite027200e47ed93b25e2cca5f3392ba7879ad69a1 (patch)
tree3f64f33f003791399c8ca410a1cf2574405ae191
parent9c2af62f11698af2d1ec71ae7bb80cff0c0463d0 (diff)
downloadIshtar-e027200e47ed93b25e2cca5f3392ba7879ad69a1.tar.bz2
Ishtar-e027200e47ed93b25e2cca5f3392ba7879ad69a1.zip
✨ GIS API: get data sources list
-rw-r--r--ishtar_common/models_imports.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py
index db5bff219..38ac41d38 100644
--- a/ishtar_common/models_imports.py
+++ b/ishtar_common/models_imports.py
@@ -266,6 +266,12 @@ class ImporterType(models.Model):
self.__class__.objects.filter(pk=self.pk, users__pk=ishtar_user.pk).count()
)
+ def clean(self):
+ if self.type == "qgs" and not self.is_template:
+ raise ValidationError(
+ "QGIS importers should at least can be exported. Check the \"Can be "
+ "exported\" case.")
+
@classmethod
def q_qgis_importers(cls, ishtaruser):
"""
@@ -280,6 +286,19 @@ class ImporterType(models.Model):
q = q.filter(users__pk=ishtaruser.pk)
return q
+ @classmethod
+ def q_qgis_importers(cls, ishtaruser):
+ """
+ Return QGIS importer query
+ """
+ # filter available according to permissions
+ q = cls.objects.filter(type="qgs", is_template=True, available=True)
+ if not ishtaruser.is_superuser and not ishtaruser.has_permission("change_gis_importer"):
+ if not ishtaruser.has_permission("change_own_gis_importer"):
+ return q.filter(pk__isnull=True)
+ q = q.filter(users__pk=ishtaruser.pk)
+ return q
+
@property
def type_label(self):
if self.type in IMPORT_TYPES_DICT: