summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2022-02-14 14:44:10 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:21:00 +0100
commit5ecc278a4beded9d64b02744c8b80f39c8c04e19 (patch)
tree3787c9f7d0ea6e05ffcce26552bd17f55b78d6de /ishtar_common/admin.py
parent39551b72a41b5ad00f8d200db2b49e4f3e02515f (diff)
downloadIshtar-5ecc278a4beded9d64b02744c8b80f39c8c04e19.tar.bz2
Ishtar-5ecc278a4beded9d64b02744c8b80f39c8c04e19.zip
Geodata redesign: model adaptation - admin
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index e1f823d75..0ef72991f 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -1145,6 +1145,9 @@ general_models = [
models.LicenseType,
models.Language,
models.PersonType,
+ models_common.GeoProviderType,
+ models_common.GeoDataType,
+ models_common.GeoOriginType,
]
for model in general_models:
admin_site.register(model, GeneralTypeAdmin)
@@ -2407,3 +2410,41 @@ class ApiSheetFilterAdmin(admin.ModelAdmin):
admin_site.register(models_rest.ApiSheetFilter, ApiSheetFilterAdmin)
+
+
+class GeoVectorDataForm(forms.ModelForm):
+ class Meta:
+ model = models_common.GeoVectorData
+ exclude = []
+
+ def clean(self):
+ fields = [
+ "x",
+ "point_2d",
+ "point_3d",
+ "multi_points",
+ "multi_line",
+ "multi_polygon",
+ ]
+ non_empty = [f for f in fields if self.cleaned_data.get(f, None)]
+ if len(non_empty) > 1:
+ raise forms.ValidationError(
+ _(
+ "Only one type of geographic data is accepted. "
+ "Create different objects if you have many."
+ )
+ )
+ if bool(self.cleaned_data.get("x", None)) != bool(
+ self.cleaned_data.get("y", None)
+ ):
+ raise forms.ValidationError(
+ _("You cannot set only x or only y coordinate.")
+ )
+ return self.cleaned_data
+
+
+class GeoVectorDataAdmin(admin.ModelAdmin):
+ model = models_common.GeoVectorData
+
+
+admin_site.register(models_common.GeoVectorData, GeoVectorDataAdmin) \ No newline at end of file