X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/79f48ddcf08d54d13a7733959e59a639d53bb8bc..1b9cdd6220596c93a73c180249a10e6d6f9bd3e4:/src/catalogue/api/views.py diff --git a/src/catalogue/api/views.py b/src/catalogue/api/views.py index 0f3a95fa2..3449339e5 100644 --- a/src/catalogue/api/views.py +++ b/src/catalogue/api/views.py @@ -190,7 +190,7 @@ class BookFilter(dfilters.FilterSet): sort = dfilters.OrderingFilter( fields=( ('sort_key_author', 'alpha'), - ('popularity', 'popularity'), + ('popularity__count', 'popularity'), ) ) tag = dfilters.ModelMultipleChoiceFilter( @@ -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