From bf7c079d391060d9b1e79056fdeef50f57908343 Mon Sep 17 00:00:00 2001 From: mohsentaba Date: Mon, 31 Aug 2026 09:25:32 +0330 Subject: [PATCH] feat(hadis): expose address and reference images in TransmitterOriginalTextSerializer --- apps/hadis/serializers/hadis.py | 24 ++++++++++++++++++++++-- apps/hadis/views/transmitter.py | 7 +++---- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/apps/hadis/serializers/hadis.py b/apps/hadis/serializers/hadis.py index a4643e4..73de526 100644 --- a/apps/hadis/serializers/hadis.py +++ b/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): diff --git a/apps/hadis/views/transmitter.py b/apps/hadis/views/transmitter.py index 415f3d8..844caf4 100644 --- a/apps/hadis/views/transmitter.py +++ b/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', )