diff --git a/apps/hadis/serializers/hadis.py b/apps/hadis/serializers/hadis.py index ec469ca..ac4dd8c 100644 --- a/apps/hadis/serializers/hadis.py +++ b/apps/hadis/serializers/hadis.py @@ -978,12 +978,24 @@ class HadisShortSerializer(serializers.ModelSerializer): title = LocalizedField() title_narrator = LocalizedField() + bookmark = serializers.SerializerMethodField() class Meta: model = Hadis fields = [ 'id', 'slug', 'title', 'title_narrator', 'text', - 'translation', 'share_link'] + 'translation', 'share_link', 'bookmark'] + + def get_bookmark(self, obj): + """Get bookmark status for this Hadis.""" + request = self.context.get('request') + user = request.user if request else None + book_mark = BookmarkStatusSerializer.get_bookmark_info( + obj=obj, + user=user, + service='hadith' + ) + return book_mark.get('is_bookmarked', False) diff --git a/apps/hadis/serializers/reference_v2.py b/apps/hadis/serializers/reference_v2.py index 4348298..62d5295 100644 --- a/apps/hadis/serializers/reference_v2.py +++ b/apps/hadis/serializers/reference_v2.py @@ -145,7 +145,7 @@ class BookReferenceV2DetailSerializer(serializers.ModelSerializer): paginated_hadis = paginator.paginate_queryset(hadis_qs, request) if paginated_hadis is not None: - serializer = HadisListSerializer(paginated_hadis, many=True, context=self.context) + serializer = HadisShortSerializer(paginated_hadis, many=True, context=self.context) return { 'count': paginator.page.paginator.count, 'next': paginator.get_next_link(), @@ -157,7 +157,7 @@ class BookReferenceV2DetailSerializer(serializers.ModelSerializer): 'count': hadis_qs.count(), 'next': None, 'previous': None, - 'results': HadisListSerializer(hadis_qs, many=True, context=self.context).data + 'results': HadisShortSerializer(hadis_qs, many=True, context=self.context).data } def get_volumes(self, obj):