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
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
- return Response(json.loads(instance.get_sync()))
+ return Response([
+ {"id": i, "timestamp": ts}
+ for (i, ts) in instance.get_sync()
+ ])
@vary_on_auth # Because of embargo links.
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