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
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([
+ {"id": i, "timestamp": ts}
+ for (i, ts) in instance.get_sync()
+ ])
+
+
@vary_on_auth # Because of embargo links.
class EbookList(BookList):
serializer_class = serializers.EbookSerializer
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
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)