diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-07-12 19:09:19 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-07-12 19:09:19 +0200 | 
| commit | a26059c0889dfdb79b834a05930a64a1f5ac4879 (patch) | |
| tree | e669898774c3b98f3a3eac4843d614aa255199dd /archaeological_finds/views.py | |
| parent | bb5ca32767ce6a25b72e03a4ebebd0648bc0cd42 (diff) | |
| download | Ishtar-a26059c0889dfdb79b834a05930a64a1f5ac4879.tar.bz2 Ishtar-a26059c0889dfdb79b834a05930a64a1f5ac4879.zip | |
Public API view for finds
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) + | 
