Browse Source

feat(hadis): ensure address, images, and links are present in sync and detail serializers

master
Mohsen Taba 3 weeks ago
parent
commit
415c10bea0
  1. 21
      apps/hadis/serializers/hadis.py

21
apps/hadis/serializers/hadis.py

@ -1304,10 +1304,12 @@ class TransmitterOriginalTextDetailSerializer(serializers.ModelSerializer):
translation = LocalizedField()
references = DetailedOriginalTextReferenceSerializer(many=True, read_only=True)
transmitter_info = serializers.SerializerMethodField()
address = serializers.SerializerMethodField()
images = serializers.SerializerMethodField()
class Meta:
model = TransmitterOriginalText
fields = ['id', 'slug', 'title', 'text', 'translation', 'share_link', 'transmitter_info', 'references']
fields = ['id', 'slug', 'title', 'text', 'translation', 'share_link', 'transmitter_info', 'address', 'images', 'references']
def get_transmitter_info(self, obj):
return {
@ -1315,3 +1317,20 @@ class TransmitterOriginalTextDetailSerializer(serializers.ModelSerializer):
"slug": obj.transmitter.slug,
"name": get_localized_text(obj.transmitter.full_name, self.context.get('request'))
}
def get_address(self, obj):
return format_address_output(obj.references.first())
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
Loading…
Cancel
Save