From 70311de86d82af629b8dc93514bc33dbac76b55a Mon Sep 17 00:00:00 2001 From: Floris272 Date: Tue, 6 May 2025 15:10:02 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=90=9B=20[#570]=20remove=20geo=20widg?= =?UTF-8?q?et?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/objects/conf/base.py | 7 ------- src/objects/core/admin.py | 7 +++++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/objects/conf/base.py b/src/objects/conf/base.py index 95264c15..ee77df00 100644 --- a/src/objects/conf/base.py +++ b/src/objects/conf/base.py @@ -230,10 +230,3 @@ ) NOTIFICATIONS_API_GET_DOMAIN = "objects.utils.get_domain" - -# -# Needed for geo widget -# -CSP_SCRIPT_SRC = CSP_SCRIPT_SRC + ["cdn.jsdelivr.net"] -CSP_STYLE_SRC = CSP_STYLE_SRC + ["cdn.jsdelivr.net"] -CSP_IMG_SRC = CSP_IMG_SRC + ["tile.openstreetmap.org"] diff --git a/src/objects/core/admin.py b/src/objects/core/admin.py index a30faf96..22f68e3c 100644 --- a/src/objects/core/admin.py +++ b/src/objects/core/admin.py @@ -1,7 +1,8 @@ import logging from django.contrib import admin -from django.contrib.gis.admin.options import GeoModelAdminMixin +from django.contrib.gis import forms +from django.contrib.gis.db.models import GeometryField from django.http import JsonResponse from django.urls import path @@ -46,7 +47,7 @@ def versions_view(self, request, objecttype_id): return JsonResponse(versions, safe=False) -class ObjectRecordInline(GeoModelAdminMixin, admin.TabularInline): +class ObjectRecordInline(admin.TabularInline): model = ObjectRecord extra = 1 readonly_fields = ("index", "registration_at", "end_at", "get_corrected_by") @@ -62,6 +63,8 @@ class ObjectRecordInline(GeoModelAdminMixin, admin.TabularInline): "correct", ) + formfield_overrides = {GeometryField: {"widget": forms.Textarea}} + def has_delete_permission(self, request, obj=None): return False From c9831b395c2e1b114d5fc46c1c5310bcec0f2ad4 Mon Sep 17 00:00:00 2001 From: Floris272 Date: Tue, 6 May 2025 15:24:48 +0200 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=90=9B=20[#570]=20fix=20non=5Ffield?= =?UTF-8?q?=5Ferrors=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/objects/core/utils.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/objects/core/utils.py b/src/objects/core/utils.py index eb86c60d..ff6e65ca 100644 --- a/src/objects/core/utils.py +++ b/src/objects/core/utils.py @@ -22,7 +22,7 @@ def get_objecttype_version_response(): return client.get_objecttype_version(object_type.uuid, version) except (requests.RequestException, requests.JSONDecodeError): raise ValidationError( - {"non_field_errors": "Object type version can not be retrieved."}, + "Object type version can not be retrieved.", code="invalid", ) @@ -31,15 +31,11 @@ def get_objecttype_version_response(): jsonschema.validate(data, vesion_data["jsonSchema"]) except KeyError: raise ValidationError( - { - "non_field_errors": f"{object_type.versions_url} does not appear to be a valid objecttype." - }, + f"{object_type.versions_url} does not appear to be a valid objecttype.", code="invalid_key", ) except jsonschema.exceptions.ValidationError as exc: - raise ValidationError( - {"non_field_errors": exc.args[0]}, code="invalid_jsonschema" - ) + raise ValidationError(exc.args[0], code="invalid_jsonschema") def can_connect_to_objecttypes() -> bool: From edb2038445951114e14ce05c123ee6a238993c78 Mon Sep 17 00:00:00 2001 From: Floris272 Date: Thu, 8 May 2025 15:20:52 +0200 Subject: [PATCH 3/3] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20[#570]=20add=20geometr?= =?UTF-8?q?y=20format=20to=20admin=20help=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/objects/core/admin.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/objects/core/admin.py b/src/objects/core/admin.py index 22f68e3c..6947a9ea 100644 --- a/src/objects/core/admin.py +++ b/src/objects/core/admin.py @@ -1,12 +1,13 @@ import logging +from django import forms from django.contrib import admin -from django.contrib.gis import forms from django.contrib.gis.db.models import GeometryField from django.http import JsonResponse from django.urls import path import requests +from vng_api_common.utils import get_help_text from objects.utils.client import get_objecttypes_client @@ -47,7 +48,19 @@ def versions_view(self, request, objecttype_id): return JsonResponse(versions, safe=False) +class ObjectRecordForm(forms.ModelForm): + + class Meta: + model: ObjectRecord + help_texts = { + "geometry": get_help_text("core.ObjectRecord", "geometry") + + "\n\n format: SRID=4326;POINT|LINESTRING|POLYGON (LAT LONG, ...)" + } + fields = "__all__" + + class ObjectRecordInline(admin.TabularInline): + form = ObjectRecordForm model = ObjectRecord extra = 1 readonly_fields = ("index", "registration_at", "end_at", "get_corrected_by")