diff options
Diffstat (limited to 'archaeological_finds/views.py')
-rw-r--r-- | archaeological_finds/views.py | 25 |
1 files changed, 25 insertions, 0 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) + |