diff --git a/apps/bookmark/models/bookmark.py b/apps/bookmark/models/bookmark.py index 0758466..7fe9d2c 100644 --- a/apps/bookmark/models/bookmark.py +++ b/apps/bookmark/models/bookmark.py @@ -15,6 +15,7 @@ class Bookmark(models.Model): PODCAST = 'podcast', 'Podcast' PODCAST_PLAYLIST = 'podcast_playlist', 'Podcast Playlist' HADITH = 'hadith', 'Hadith' + HADITH_CORRECTION = 'hadith_correction', 'Hadith Correction' VIDEO = 'video', 'Video' VIDEO_PLAYLIST = 'video_playlist', 'Video Playlist' ARTICLE = 'article', 'Article' @@ -78,6 +79,9 @@ class Bookmark(models.Model): elif service == cls.ServiceChoices.HADITH: from apps.hadis.models import Hadis return Hadis.objects.filter(id=content_id).exists() + elif service == cls.ServiceChoices.HADITH_CORRECTION: + from apps.hadis.models import HadisCorrection + return HadisCorrection.objects.filter(id=content_id).exists() elif service == cls.ServiceChoices.VIDEO: from apps.video.models import Video return Video.objects.filter(id=content_id).exists() diff --git a/apps/hadis/serializers/hadis.py b/apps/hadis/serializers/hadis.py index bd31654..bb3ec7a 100644 --- a/apps/hadis/serializers/hadis.py +++ b/apps/hadis/serializers/hadis.py @@ -605,9 +605,21 @@ class HadisCorrectionSerializer(serializers.ModelSerializer): title = LocalizedField() description = LocalizedField() translation = LocalizedField() + bookmark = serializers.SerializerMethodField() class Meta: model = HadisCorrection - fields = ['id', 'title','slug', 'description', 'translation','share_link'] + fields = ['id', 'title','slug', 'description', 'translation','share_link','bookmark'] + + def get_bookmark(self, obj): + """Get bookmark information for this correction.""" + request = self.context.get('request') + user = request.user if request else None + book_mark = BookmarkStatusSerializer.get_bookmark_info( + obj=obj, + user=user, + service='hadith_correction' + ) + return book_mark.get('is_bookmarked', False) class HadisBasicSerializer(serializers.ModelSerializer):