|
|
|
@ -908,9 +908,14 @@ class HadisCorrectionSerializer(serializers.ModelSerializer): |
|
|
|
description = serializers.SerializerMethodField() |
|
|
|
translation = LocalizedField() |
|
|
|
bookmark = serializers.SerializerMethodField() |
|
|
|
address = serializers.SerializerMethodField() |
|
|
|
images = serializers.SerializerMethodField() |
|
|
|
links = serializers.JSONField(read_only=True) |
|
|
|
|
|
|
|
class Meta: |
|
|
|
model = HadisCorrection |
|
|
|
fields = ['id', 'title','slug','narrator','description', 'translation','share_link','bookmark'] |
|
|
|
fields = ['id', 'title', 'slug', 'narrator', 'description', 'translation', 'share_link', 'bookmark', 'address', 'images', 'links'] |
|
|
|
|
|
|
|
def get_description(self, obj): |
|
|
|
request = self.context.get('request') |
|
|
|
return get_localized_correction_text(obj.text, request=request) |
|
|
|
@ -926,6 +931,24 @@ class HadisCorrectionSerializer(serializers.ModelSerializer): |
|
|
|
) |
|
|
|
return book_mark.get('is_bookmarked', False) |
|
|
|
|
|
|
|
def get_address(self, obj): |
|
|
|
ref = obj.references.first() |
|
|
|
return ref.address if ref and ref.address else "" |
|
|
|
|
|
|
|
def get_images(self, obj): |
|
|
|
request = self.context.get('request') |
|
|
|
images_list = [] |
|
|
|
for ref in obj.references.all(): |
|
|
|
for img in ref.images.all(): |
|
|
|
if img.image: |
|
|
|
url = absolute_https_url(img.image.url, request) if request else absolute_https_url(img.image.url) |
|
|
|
images_list.append({ |
|
|
|
"id": img.id, |
|
|
|
"image": url, |
|
|
|
"thumbnail": url, |
|
|
|
}) |
|
|
|
return images_list |
|
|
|
|
|
|
|
|
|
|
|
class HadisBasicSerializer(serializers.ModelSerializer): |
|
|
|
"""Basic serializer for Hadis with minimal information""" |
|
|
|
@ -1189,10 +1212,12 @@ class HadisCorrectionDetailSerializer(serializers.ModelSerializer): |
|
|
|
translation = LocalizedField() |
|
|
|
references = DetailedCorrectionReferenceSerializer(many=True, read_only=True) |
|
|
|
hadis_info = serializers.SerializerMethodField() |
|
|
|
address = serializers.SerializerMethodField() |
|
|
|
images = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
class Meta: |
|
|
|
model = HadisCorrection |
|
|
|
fields = ['id', 'title', 'slug', 'narrator', 'description', 'translation', 'share_link', 'hadis_info', 'references','links'] |
|
|
|
fields = ['id', 'title', 'slug', 'narrator', 'description', 'translation', 'share_link', 'hadis_info', 'address', 'images', 'references', 'links'] |
|
|
|
|
|
|
|
def get_description(self, obj): |
|
|
|
return get_localized_correction_text(obj.text, request=self.context.get('request')) |
|
|
|
@ -1200,6 +1225,24 @@ class HadisCorrectionDetailSerializer(serializers.ModelSerializer): |
|
|
|
def get_hadis_info(self, obj): |
|
|
|
return {"id": obj.hadis.id, "number": obj.hadis.number, "slug": obj.hadis.slug} |
|
|
|
|
|
|
|
def get_address(self, obj): |
|
|
|
ref = obj.references.first() |
|
|
|
return ref.address if ref and ref.address else "" |
|
|
|
|
|
|
|
def get_images(self, obj): |
|
|
|
request = self.context.get('request') |
|
|
|
images_list = [] |
|
|
|
for ref in obj.references.all(): |
|
|
|
for img in ref.images.all(): |
|
|
|
if img.image: |
|
|
|
url = absolute_https_url(img.image.url, request) if request else absolute_https_url(img.image.url) |
|
|
|
images_list.append({ |
|
|
|
"id": img.id, |
|
|
|
"image": url, |
|
|
|
"thumbnail": url, |
|
|
|
}) |
|
|
|
return images_list |
|
|
|
|
|
|
|
|
|
|
|
class HadisInterpretationDetailSerializer(serializers.ModelSerializer): |
|
|
|
title = LocalizedField() |
|
|
|
|