Separate list item read-only serializer.
[wolnelektury.git] / src / social / api / serializers.py
index 085783f..cbaa3bb 100644 (file)
@@ -2,6 +2,9 @@
 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
 #
 from rest_framework import serializers
 # 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
 
 import catalogue.models
 from social import models
 
@@ -87,7 +90,20 @@ class UserListItemSerializer(serializers.ModelSerializer):
         queryset=catalogue.models.Book.objects.all(),
         source='book',
         slug_field='slug',
         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:
     )
 
     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)
 class UserListSerializerV3(serializers.ModelSerializer):
     client_id = serializers.CharField(write_only=True, required=False)
     timestamp = serializers.IntegerField(required=False)