Browse Source

sync narrators api updated

master
Mohsen Taba 5 months ago
parent
commit
8f522aba4a
  1. 12
      apps/hadis/docs.py
  2. 32
      apps/hadis/serializers/hadis.py

12
apps/hadis/docs.py

@ -182,9 +182,7 @@ hadis_sync_swagger = swagger_auto_schema(
"title": "The Reward of Intentions",
"title_narrator": "Imam Sadiq (as)",
"text": "إنما الأعمال بالنیات...",
"translations": {
"en": "Actions are but by intentions..."
},
"translation": "hadis translation",
"detail":
{"address": 'null',
"hadis_status": {
@ -920,18 +918,14 @@ transmitter_sync_swagger = swagger_auto_schema(
"id": 1,
"title": "text title",
"text": "",
"translation": {
"en": "translate"
},
"translation":"text translation",
"share_link": "http/exmaokns.com"
},
{
"id": 2,
"title": "text2 title",
"text": "",
"translation": {
"en": "translate"
},
"translation":"text translation",
"share_link": "http/exmaokns.com"
}
]

32
apps/hadis/serializers/hadis.py

@ -4,6 +4,7 @@ from rest_framework.fields import SerializerMethodField
from urllib3 import request
from .category import LocalizedField
from .category import get_localized_text
from .category import get_localized_text
from ..models import (
Hadis, HadisStatus, HadisTag, HadisTransmitter,
@ -283,6 +284,8 @@ class TransmitterSyncSerializer(serializers.ModelSerializer):
# Original texts group
original_texts = serializers.SerializerMethodField()
full_name =LocalizedField()
class Meta:
model = Transmitters
fields = [
@ -291,14 +294,15 @@ class TransmitterSyncSerializer(serializers.ModelSerializer):
def get_biographical(self, obj):
"""Get biographical information (flattened)"""
request = self.context.get('request')
return {
'full_name': obj.full_name,
'kunya': obj.kunya,
'known_as': obj.known_as,
'nickname': obj.nickname,
'origin': obj.origin,
'lived_in': obj.lived_in,
'died_in': obj.died_in,
'full_name': get_localized_text(obj.full_name,request),
'kunya': get_localized_text(obj.kunya,request),
'known_as':get_localized_text(obj.known_as,request) ,
'nickname':get_localized_text( obj.nickname,request),
'origin': get_localized_text(obj.origin,request),
'lived_in':get_localized_text(obj.lived_in,request) ,
'died_in': get_localized_text(obj.died_in,request),
'birth_year_hijri': obj.birth_year_hijri,
'death_year_hijri': obj.death_year_hijri,
'age_at_death': obj.age_at_death,
@ -307,18 +311,19 @@ class TransmitterSyncSerializer(serializers.ModelSerializer):
'madhhab': obj.madhhab,
'in_sahih_muslim': obj.in_sahih_muslim,
'in_sahih_bukhari': obj.in_sahih_bukhari,
'description': obj.description,
'description': get_localized_text(obj.description,request),
'thumbnail': obj.thumbnail.url if obj.thumbnail else None,
}
def get_scholars_opinions(self, obj):
"""Get all scholarly opinions about this transmitter"""
request = self.context.get('request')
opinions = []
for opinion in obj.opinions.all():
opinions.append({
'id': opinion.id,
'scholar_name': opinion.scholar_name,
'opinion_text': opinion.opinion_text,
'scholar_name': get_localized_text(opinion.scholar_name,request),
'opinion_text': get_localized_text(opinion.opinion_text,request),
'status': opinion.status,
'created_at': opinion.created_at.isoformat() if opinion.created_at else None,
'updated_at': opinion.updated_at.isoformat() if opinion.updated_at else None,
@ -327,13 +332,14 @@ class TransmitterSyncSerializer(serializers.ModelSerializer):
def get_original_texts(self, obj):
"""Get original texts of the transmitter"""
request = self.context.get('request')
texts = []
for t in obj.originaltexts.all():
texts.append({
'id': t.id,
'title': t.title,
'text': t.text,
'translation': t.translation,
'title': get_localized_text(t.title,request),
'text': get_localized_text(t.text,request),
'translation': get_localized_text(t.translation,request),
'share_link': t.share_link,
})
return texts

Loading…
Cancel
Save