fix stats calc
[wolnelektury.git] / src / catalogue / api / serializers.py
index 9c70a9f..9fa05f5 100644 (file)
@@ -50,7 +50,7 @@ class AuthorItemSerializer(serializers.ModelSerializer):
     class Meta:
         model = Tag
         fields = [
     class Meta:
         model = Tag
         fields = [
-            'url', 'href', 'name', 'slug'
+            'id', 'url', 'href', 'name', 'slug'
         ]
 
 class AuthorSerializer(AuthorItemSerializer):
         ]
 
 class AuthorSerializer(AuthorItemSerializer):
@@ -71,7 +71,7 @@ class EpochItemSerializer(serializers.ModelSerializer):
     )
     class Meta:
         model = Tag
     )
     class Meta:
         model = Tag
-        fields = ['url', 'href', 'name', 'slug']
+        fields = ['id', 'url', 'href', 'name', 'slug']
 
 class EpochSerializer(EpochItemSerializer):
     class Meta:
 
 class EpochSerializer(EpochItemSerializer):
     class Meta:
@@ -89,7 +89,7 @@ class GenreItemSerializer(serializers.ModelSerializer):
     )
     class Meta:
         model = Tag
     )
     class Meta:
         model = Tag
-        fields = ['url', 'href', 'name', 'slug']
+        fields = ['id', 'url', 'href', 'name', 'slug']
 
 class GenreSerializer(GenreItemSerializer):
     class Meta:
 
 class GenreSerializer(GenreItemSerializer):
     class Meta:
@@ -107,7 +107,7 @@ class KindItemSerializer(serializers.ModelSerializer):
     )
     class Meta:
         model = Tag
     )
     class Meta:
         model = Tag
-        fields = ['url', 'href', 'name', 'slug']
+        fields = ['id', 'url', 'href', 'name', 'slug']
 
 class KindSerializer(KindItemSerializer):
     class Meta:
 
 class KindSerializer(KindItemSerializer):
     class Meta:
@@ -155,6 +155,8 @@ class BookSerializer2(serializers.ModelSerializer):
         view_name='catalogue_api_book',
         lookup_field='slug'
     )
         view_name='catalogue_api_book',
         lookup_field='slug'
     )
+    children = serializers.SerializerMethodField()
+    audiences = serializers.ListField(source='audiences_pl')
 
     class Meta:
         model = Book
 
     class Meta:
         model = Book
@@ -163,15 +165,20 @@ class BookSerializer2(serializers.ModelSerializer):
             'href', 'url', 'language',
             'authors', 'translators',
             'epochs', 'genres', 'kinds',
             'href', 'url', 'language',
             'authors', 'translators',
             'epochs', 'genres', 'kinds',
-            #'children',
+            'children',
             'parent', 'preview',
             'epub', 'mobi', 'pdf', 'html', 'txt', 'fb2', 'xml',
             'cover_thumb', 'cover',
             'isbn_pdf', 'isbn_epub', 'isbn_mobi',
             'abstract',
             'parent', 'preview',
             'epub', 'mobi', 'pdf', 'html', 'txt', 'fb2', 'xml',
             'cover_thumb', 'cover',
             'isbn_pdf', 'isbn_epub', 'isbn_mobi',
             'abstract',
-            'has_mp3_file',
+            'has_mp3_file', 'has_sync_file',
+            'elevenreader_link', 'content_warnings', 'audiences',
+            'changed_at', 'read_time', 'pages', 'redakcja'
         ]
 
         ]
 
+    def get_children(self, obj):
+        return list(obj.get_children().values('slug', 'title'))
+
 class BookSerializer11Labs(serializers.ModelSerializer):
     url = AbsoluteURLField()
     href = AbsoluteURLField(view_name='catalogue_api_book', view_args=['slug'])
 class BookSerializer11Labs(serializers.ModelSerializer):
     url = AbsoluteURLField()
     href = AbsoluteURLField(view_name='catalogue_api_book', view_args=['slug'])
@@ -261,6 +268,7 @@ class MediaSerializer2(MediaSerializer):
     def get_size(self, obj):
         return obj.file.size
 
     def get_size(self, obj):
         return obj.file.size
 
+
 class BookDetailSerializer(LegacyMixin, serializers.ModelSerializer):
     url = AbsoluteURLField()
 
 class BookDetailSerializer(LegacyMixin, serializers.ModelSerializer):
     url = AbsoluteURLField()