Browse Source

feat(hadis): expose address and reference images in TransmitterOriginalTextSerializer

master
Mohsen Taba 3 weeks ago
parent
commit
bf7c079d39
  1. 24
      apps/hadis/serializers/hadis.py
  2. 7
      apps/hadis/views/transmitter.py

24
apps/hadis/serializers/hadis.py

@ -420,11 +420,31 @@ class TransmitterOriginalTextSerializer(serializers.ModelSerializer):
""" Serializer for TransmitterOriginalText """
title = LocalizedField()
text = LocalizedField()
translation =LocalizedField()
translation = LocalizedField()
address = serializers.SerializerMethodField()
images = serializers.SerializerMethodField()
class Meta:
model = TransmitterOriginalText
fields = ['id', 'title', 'text', 'translation', 'share_link', 'slug']
fields = ['id', 'title', 'text', 'translation', 'share_link', 'slug', 'address', 'images']
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 TransmitterDetailSerializer(serializers.ModelSerializer):

7
apps/hadis/views/transmitter.py

@ -115,11 +115,10 @@ class TransmitterOriginalTextView(ListAPIView):
return TransmitterOriginalText.objects.filter(
transmitter__slug=narrator_slug
).select_related(
'transmitter' # Essential if serializer includes transmitter data
'transmitter'
).prefetch_related(
# Add any nested relations from TransmitterOriginalTextSerializer
# 'translations',
# 'manuscript_references',
'references__images',
'references__book_reference',
)

Loading…
Cancel
Save