X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/e7d9b3875966262ee2e9eb6c281d2677a05a4e91..8bb87b3bec7127941318d5403bedacb441b472b3:/src/catalogue/api/views.py diff --git a/src/catalogue/api/views.py b/src/catalogue/api/views.py index b2734d941..941b122bd 100644 --- a/src/catalogue/api/views.py +++ b/src/catalogue/api/views.py @@ -251,6 +251,15 @@ class BookDetail2(RetrieveAPIView): serializer_class = serializers.BookSerializer2 +class BookSyncView(RetrieveAPIView): + queryset = Book.objects.all() + lookup_field = 'slug' + + def retrieve(self, request, *args, **kwargs): + instance = self.get_object() + return Response(json.loads(instance.get_sync())) + + @vary_on_auth # Because of embargo links. class EbookList(BookList): serializer_class = serializers.EbookSerializer @@ -406,6 +415,15 @@ class KindView(RetrieveAPIView): queryset = Tag.objects.filter(category='kind') lookup_field = 'slug' +class ThemeList(ListAPIView): + serializer_class = serializers.ThemeSerializer + queryset = Tag.objects.filter(category='theme') + +class ThemeView(RetrieveAPIView): + serializer_class = serializers.ThemeSerializer + queryset = Tag.objects.filter(category='theme') + lookup_field = 'slug' + class TagView(RetrieveAPIView): permission_classes = [DjangoModelPermissionsOrAnonReadOnly] @@ -528,15 +546,18 @@ class BookMediaView(ListAPIView): pagination_class = None def get_queryset(self): - return BookMedia.objects.filter(book__slug=self.kwargs['slug'], type=self.kwargs['type']).order_by('index') + return BookMedia.objects.filter( + book__slug=self.kwargs['slug'], + type=self.kwargs['type'] + ).order_by('index') from .tojson import conv from lxml import etree from rest_framework.views import APIView + class BookJsonView(APIView): def get(self, request, slug): book = get_object_or_404(Book, slug=slug) js = conv(etree.parse(book.xml_file.path)) return JsonResponse(js, json_dumps_params={'ensure_ascii': False}) -