X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/5b24dd5b8f3f1a8be1c4c38f0afe500135b6d432..162b0b772d94f0f6b12a63ea2778c1cc0c104027:/src/social/api/serializers.py diff --git a/src/social/api/serializers.py b/src/social/api/serializers.py index ff20aad8d..cbaa3bb6a 100644 --- a/src/social/api/serializers.py +++ b/src/social/api/serializers.py @@ -2,6 +2,9 @@ # Copyright © Fundacja Wolne Lektury. See NOTICE for more information. # from rest_framework import serializers +import bookmarks.api.views +import bookmarks.models +import catalogue.api.serializers import catalogue.models from social import models @@ -75,7 +78,7 @@ class UserListBooksSerializer(UserListSerializerV2): class UserListItemSerializer(serializers.ModelSerializer): client_id = serializers.CharField(write_only=True, required=False) - favorites = serializers.BooleanField(required=False) + favorites = serializers.BooleanField(read_only=True) list_slug = serializers.SlugRelatedField( queryset=models.UserList.objects.all(), source='list', @@ -87,7 +90,20 @@ class UserListItemSerializer(serializers.ModelSerializer): queryset=catalogue.models.Book.objects.all(), source='book', slug_field='slug', - required=False + required=False, + allow_null=True + ) + bookmark = serializers.SlugRelatedField( + queryset=bookmarks.models.Bookmark.objects.all(), + slug_field='uuid', + required=False, + allow_null=True + ) + quote = serializers.SlugRelatedField( + queryset=bookmarks.models.Quote.objects.all(), + slug_field='uuid', + required=False, + allow_null=True ) class Meta: @@ -114,6 +130,28 @@ class UserListItemSerializer(serializers.ModelSerializer): } +class UserListItemReadSerializer(UserListItemSerializer): + book = catalogue.api.serializers.BookSerializer2() + bookmark = bookmarks.api.views.BookmarkSerializer() + class Meta: + model = models.UserListItem + fields = [ + 'client_id', + 'uuid', + 'order', + 'list_slug', + 'timestamp', + 'favorites', + 'deleted', + + 'book', + 'fragment', + 'quote', + 'bookmark', + 'note', + ] + + class UserListSerializerV3(serializers.ModelSerializer): client_id = serializers.CharField(write_only=True, required=False) timestamp = serializers.IntegerField(required=False)