diff options
Diffstat (limited to 'archaeological_finds')
| -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) +  | 
