Browse Source

feat(hadis): add arabic_scholarity, arabic_tabaqa and fix language resolution in reference_v2 serializers

master
Mohsen Taba 4 days ago
parent
commit
aef39fefa3
  1. 21
      apps/hadis/serializers/reference_v2.py

21
apps/hadis/serializers/reference_v2.py

@ -339,10 +339,17 @@ def _get_request_lang_v2(serializer_instance) -> str:
request = serializer_instance.context.get("request") if hasattr(serializer_instance, "context") and serializer_instance.context else None request = serializer_instance.context.get("request") if hasattr(serializer_instance, "context") and serializer_instance.context else None
lang = None lang = None
if request: if request:
lang = getattr(request, "LANGUAGE_CODE", None) or request.headers.get("Accept-Language") or request.query_params.get("lang")
query_params = getattr(request, "query_params", None) or getattr(request, "GET", None)
if query_params:
lang = query_params.get("language_code") or query_params.get("lang")
if not lang and hasattr(request, "headers"):
lang = request.headers.get("Accept-Language")
if not lang: if not lang:
lang = get_language() or "ru"
return str(lang).split(",")[0].split("-")[0].strip().lower() or "ru"
lang = getattr(request, "LANGUAGE_CODE", None)
if not lang:
lang = get_language() or "en"
code = str(lang).split(",")[0].split(";")[0].split("-")[0].strip().lower()
return code if code in ("ru", "en", "ar") else "en"
def _resolve_author_city(city_obj, fallback_json, request, arabic=False): def _resolve_author_city(city_obj, fallback_json, request, arabic=False):
@ -387,7 +394,9 @@ class _BaseBookAuthorV2Mixin(serializers.Serializer):
known_as = LocalizedField() known_as = LocalizedField()
arabic_known_as = ArabicLocalizedField(source='known_as') arabic_known_as = ArabicLocalizedField(source='known_as')
scholarity = LocalizedField() scholarity = LocalizedField()
arabic_scholarity = ArabicLocalizedField(source='scholarity')
tabaqa = LocalizedField() tabaqa = LocalizedField()
arabic_tabaqa = ArabicLocalizedField(source='tabaqa')
rutba = serializers.SerializerMethodField() rutba = serializers.SerializerMethodField()
rutba_detail = serializers.SerializerMethodField() rutba_detail = serializers.SerializerMethodField()
features = serializers.SerializerMethodField() features = serializers.SerializerMethodField()
@ -470,7 +479,7 @@ class BookAuthorListSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerializ
model = BookAuthor model = BookAuthor
fields = [ fields = [
'id', 'slug', 'name', 'arabic_name', 'image', 'id', 'slug', 'name', 'arabic_name', 'image',
'known_as', 'arabic_known_as', 'scholarity', 'tabaqa',
'known_as', 'arabic_known_as', 'scholarity', 'arabic_scholarity', 'tabaqa', 'arabic_tabaqa',
'rutba', 'rutba_detail', 'rutba', 'rutba_detail',
'features', 'arabic_features', 'features_detail', 'features', 'arabic_features', 'features_detail',
'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in', 'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in',
@ -488,7 +497,7 @@ class BookAuthorDetailSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerial
model = BookAuthor model = BookAuthor
fields = [ fields = [
'id', 'slug', 'name', 'arabic_name', 'image', 'id', 'slug', 'name', 'arabic_name', 'image',
'known_as', 'arabic_known_as', 'scholarity', 'tabaqa',
'known_as', 'arabic_known_as', 'scholarity', 'arabic_scholarity', 'tabaqa', 'arabic_tabaqa',
'rutba', 'rutba_detail', 'rutba', 'rutba_detail',
'features', 'arabic_features', 'features_detail', 'features', 'arabic_features', 'features_detail',
'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in', 'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in',
@ -550,7 +559,9 @@ class BookAuthorSyncSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerializ
'known_as', 'known_as',
'arabic_known_as', 'arabic_known_as',
'scholarity', 'scholarity',
'arabic_scholarity',
'tabaqa', 'tabaqa',
'arabic_tabaqa',
'rutba', 'rutba',
'rutba_detail', 'rutba_detail',
'features', 'features',

Loading…
Cancel
Save