|
|
|
@ -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 |
|
|
|
lang = None |
|
|
|
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: |
|
|
|
lang = getattr(request, "LANGUAGE_CODE", None) |
|
|
|
if not lang: |
|
|
|
lang = get_language() or "ru" |
|
|
|
return str(lang).split(",")[0].split("-")[0].strip().lower() or "ru" |
|
|
|
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): |
|
|
|
@ -387,7 +394,9 @@ class _BaseBookAuthorV2Mixin(serializers.Serializer): |
|
|
|
known_as = LocalizedField() |
|
|
|
arabic_known_as = ArabicLocalizedField(source='known_as') |
|
|
|
scholarity = LocalizedField() |
|
|
|
arabic_scholarity = ArabicLocalizedField(source='scholarity') |
|
|
|
tabaqa = LocalizedField() |
|
|
|
arabic_tabaqa = ArabicLocalizedField(source='tabaqa') |
|
|
|
rutba = serializers.SerializerMethodField() |
|
|
|
rutba_detail = serializers.SerializerMethodField() |
|
|
|
features = serializers.SerializerMethodField() |
|
|
|
@ -470,7 +479,7 @@ class BookAuthorListSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerializ |
|
|
|
model = BookAuthor |
|
|
|
fields = [ |
|
|
|
'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', |
|
|
|
'features', 'arabic_features', 'features_detail', |
|
|
|
'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in', |
|
|
|
@ -488,7 +497,7 @@ class BookAuthorDetailSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerial |
|
|
|
model = BookAuthor |
|
|
|
fields = [ |
|
|
|
'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', |
|
|
|
'features', 'arabic_features', 'features_detail', |
|
|
|
'origin', 'arabic_origin', 'lived_in', 'arabic_lived_in', 'died_in', 'arabic_died_in', |
|
|
|
@ -550,7 +559,9 @@ class BookAuthorSyncSerializer(_BaseBookAuthorV2Mixin, serializers.ModelSerializ |
|
|
|
'known_as', |
|
|
|
'arabic_known_as', |
|
|
|
'scholarity', |
|
|
|
'arabic_scholarity', |
|
|
|
'tabaqa', |
|
|
|
'arabic_tabaqa', |
|
|
|
'rutba', |
|
|
|
'rutba_detail', |
|
|
|
'features', |
|
|
|
|