'cover_thumb', 'cover',
'isbn_pdf', 'isbn_epub', 'isbn_mobi',
'abstract',
+ 'has_mp3_file',
]
class BookSerializer11Labs(serializers.ModelSerializer):
]
+class MediaSerializer2(MediaSerializer):
+ size = serializers.SerializerMethodField()
+
+ class Meta:
+ model = BookMedia
+ fields = ['url', 'director', 'type', 'name', 'part_name', 'artist', 'duration', 'size']
+
+ def get_size(self, obj):
+ return obj.file.size
+
+
class BookSerializer(LegacyMixin, serializers.ModelSerializer):
author = serializers.CharField(source='author_unicode')
kind = serializers.CharField(source='kind_unicode')
piwik_track_view(views.BookFragmentView.as_view()),
name='catalogue_api_book_fragment'
),
+ path('books/<slug:slug>/media/<slug:type>/',
+ views.BookMediaView.as_view()
+ ),
path('suggested-tags/',
piwik_track_view(views.SuggestedTags.as_view()),
book = get_object_or_404(Book, slug=self.kwargs['slug'])
return book.choose_fragment()
+
+class BookMediaView(ListAPIView):
+ serializer_class = serializers.MediaSerializer2
+ pagination_class = None
+
+ def get_queryset(self):
+ return BookMedia.objects.filter(
+ book__slug=self.kwargs['slug'],
+ type=self.kwargs['type']
+ ).order_by('index')