X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/24f677a3979ba3f1bdfe420c03ad5e3f8b0398c2..a791ae7c71b918ca39e7083209019de03a164252:/src/catalogue/api/serializers.py diff --git a/src/catalogue/api/serializers.py b/src/catalogue/api/serializers.py index 1705a5165..7c792d586 100644 --- a/src/catalogue/api/serializers.py +++ b/src/catalogue/api/serializers.py @@ -1,14 +1,14 @@ from rest_framework import serializers from api.fields import AbsoluteURLField, LegacyMixin -from catalogue.models import Book, Collection, Tag, BookMedia +from catalogue.models import Book, Collection, Tag, BookMedia, Fragment from .fields import BookLiked, ThumbnailField class TagSerializer(serializers.ModelSerializer): url = AbsoluteURLField() href = AbsoluteURLField( - view_name='api_tag', - view_args=('category:category_plural', 'slug') + view_name='catalogue_api_tag', + view_args=('category', 'slug') ) class Meta: @@ -16,6 +16,14 @@ class TagSerializer(serializers.ModelSerializer): fields = ['url', 'href', 'name', 'slug'] +class TagDetailSerializer(serializers.ModelSerializer): + url = AbsoluteURLField() + + class Meta: + model = Tag + fields = ['name', 'url', 'sort_key', 'description'] + + class BookSerializer(LegacyMixin, serializers.ModelSerializer): author = serializers.CharField(source='author_unicode') kind = serializers.CharField(source='kind_unicode') @@ -100,3 +108,23 @@ class CollectionSerializer(serializers.ModelSerializer): class Meta: model = Collection fields = ['url', 'books', 'description', 'title'] + + +class FragmentSerializer(serializers.ModelSerializer): + book = BookSerializer() + url = AbsoluteURLField() + href = AbsoluteURLField(source='get_api_url') + + class Meta: + model = Fragment + fields = ['book', 'url', 'anchor', 'href'] + + +class FragmentDetailSerializer(serializers.ModelSerializer): + book = BookSerializer() + url = AbsoluteURLField() + themes = TagSerializer(many=True) + + class Meta: + model = Fragment + fields = ['book', 'anchor', 'text', 'url', 'themes']