diff options
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 |
commit | e027200e47ed93b25e2cca5f3392ba7879ad69a1 (patch) | |
tree | 3f64f33f003791399c8ca410a1cf2574405ae191 | |
parent | 9c2af62f11698af2d1ec71ae7bb80cff0c0463d0 (diff) | |
download | Ishtar-e027200e47ed93b25e2cca5f3392ba7879ad69a1.tar.bz2 Ishtar-e027200e47ed93b25e2cca5f3392ba7879ad69a1.zip |
✨ GIS API: get data sources list
-rw-r--r-- | ishtar_common/models_imports.py | 19 |
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: |