summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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: