diff options
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/models_finds.py | 1 | ||||
-rw-r--r-- | archaeological_finds/urls.py | 13 | ||||
-rw-r--r-- | archaeological_finds/views.py | 2 | ||||
-rw-r--r-- | archaeological_finds/views_api.py | 16 |
4 files changed, 31 insertions, 1 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 2218cb011..5570af0d5 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -1758,6 +1758,7 @@ class Find( "cached_object_types", "cached_materials", ] + SERIALIZE_PROPERTIES = ["external_id"] objects = UUIDModelManager() # fields diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index 532e22ab0..518a2af7e 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -18,6 +18,7 @@ # See the file COPYING for details. from django.conf.urls import url +from django.urls import path from ishtar_common.utils import check_rights, get_urls_for_model @@ -613,6 +614,18 @@ urlpatterns = [ name="api-get-geo-points", kwargs={"get_polygons": False}, ), + url( + r"api/facets/find/$", views_api.FacetFindAPIView.as_view(), + name="api-facets-find" + ), + url( + r"api/search/find/$", views_api.SearchFindAPI.as_view(), + name="api-search-find" + ), + path( + "api/get/find/<int:pk>/", views_api.GetFindAPI.as_view(), + name="api-get-find" + ), ] urlpatterns += get_urls_for_model(models.Find, views, own=True, autocomplete=True) diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index db8c4b04e..d8fd48353 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -195,6 +195,8 @@ def show_find_extra(request, find): if not request.user or not request.user.ishtaruser: return {} user = request.user.ishtaruser + if isinstance(find, dict): + return {"baskets": []} q = ( models.FindBasket.objects.filter(items__pk=find.pk) .filter( diff --git a/archaeological_finds/views_api.py b/archaeological_finds/views_api.py index 66cadeb5e..64831de57 100644 --- a/archaeological_finds/views_api.py +++ b/archaeological_finds/views_api.py @@ -2,9 +2,10 @@ from rest_framework import authentication, permissions from rest_framework.views import APIView from rest_framework.response import Response +from ishtar_common.rest import SearchAPIView, FacetAPIView, GetAPIView from ishtar_common.serializers import PublicSerializer -from archaeological_finds import models +from archaeological_finds import models, forms class PublicFindAPI(APIView): @@ -38,3 +39,16 @@ class PublicFindAPI(APIView): def get(self, request, format=None): serializer = PublicSerializer(self.get_queryset(), many=True) return Response(serializer.data) + + +class FacetFindAPIView(FacetAPIView): + models = [models.Find] + select_forms = [forms.FindSelect] + + +class SearchFindAPI(SearchAPIView): + model = models.Find + + +class GetFindAPI(GetAPIView): + model = models.Find |