X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/79f48ddcf08d54d13a7733959e59a639d53bb8bc..b53c0bf51b8e43e4761b05bd4671b440b0861468:/src/catalogue/api/views.py diff --git a/src/catalogue/api/views.py b/src/catalogue/api/views.py index 0f3a95fa2..a4c0173e7 100644 --- a/src/catalogue/api/views.py +++ b/src/catalogue/api/views.py @@ -203,6 +203,7 @@ class BookFilter(dfilters.FilterSet): queryset=Tag.objects.filter(category='author'), conjoined=True, ) + has_audio = dfilters.BooleanFilter() class BookList2(ListAPIView): @@ -226,6 +227,18 @@ class BookList2(ListAPIView): return books +class BookRecommendationsView(ListAPIView): + serializer_class = serializers.BookSerializer2 + pagination_class = None + + def get_queryset(self): + book = get_object_or_404( + Book, + slug=self.kwargs['slug'] + ) + return book.get_recommended(limit=3) + + class BookList11Labs(BookList2): serializer_class = serializers.BookSerializer11Labs @@ -544,6 +557,15 @@ class BookFragmentView(RetrieveAPIView): return book.choose_fragment() +class BookChildrenView(ListAPIView): + serializer_class = serializers.BookSerializer2 + pagination_class = None + + def get_queryset(self): + book = get_object_or_404(Book, slug=self.kwargs['slug']) + return book.get_children() + + class BookMediaView(ListAPIView): serializer_class = serializers.MediaSerializer2 pagination_class = None