diff options
-rw-r--r-- | archaeological_finds/views.py | 25 | ||||
-rw-r--r-- | ishtar_common/serializers.py | 2 |
2 files changed, 26 insertions, 1 deletions
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index cab774073..694a1e0ad 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -20,6 +20,9 @@ from collections import OrderedDict import json +from rest_framework.views import APIView +from rest_framework.response import Response + from django.conf import settings from django.core.exceptions import PermissionDenied from django.core.urlresolvers import reverse @@ -30,6 +33,7 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView from django.views.generic.edit import CreateView, FormView +from ishtar_common.serializers import PublicSerializer from ishtar_common.models import IshtarUser, get_current_profile from archaeological_operations.models import AdministrativeAct @@ -1001,3 +1005,24 @@ class QAFindbasketDuplicateFormView(QAItemForm): **kwargs) data['action_name'] = _(u"Duplicate") return data + + +class PublicFindAPI(APIView): + # authentication_classes = (authentication.TokenAuthentication,) + # permission_classes = (permissions.IsAdminUser,) + + def get_queryset(self): + basket_slug = self.kwargs.get("basket", None) + if not basket_slug: + return models.Find.objects.filter(pk=None) + try: + basket = models.FindBasket.objects.get( + slug=basket, public=True) + except models.FindBasket.DoesNotExist: + return Http404() + return models.Find.objects.filter(basket=basket).order_by("pk") + + def get(self, request, format=None): + serializer = PublicSerializer(self.get_queryset(), many=True) + return Response(serializer.data) + diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py index 9789bd9f6..d7d998e96 100644 --- a/ishtar_common/serializers.py +++ b/ishtar_common/serializers.py @@ -1,6 +1,6 @@ from rest_framework import serializers -class PublicFindSerializer(serializers.BaseSerializer): +class PublicSerializer(serializers.BaseSerializer): def to_representation(self, obj): return obj.public_representation() |