Browse Source

fix(transmitters): preserve target language in get_formatted_date lookup

- Allow YearValue to return translations in any requested target language
- Only fallback to 'en' when invoking date_engine format_canonical_date
master
Mohsen Taba 2 weeks ago
parent
commit
888dba72e4
  1. 5
      apps/hadis/models/transmitter.py

5
apps/hadis/models/transmitter.py

@ -310,8 +310,6 @@ class Transmitters(LowercaseSlugMixin, models.Model):
raw_str = str(raw_val).strip() raw_str = str(raw_val).strip()
target_lang = (lang or 'ru').split('-')[0].lower() target_lang = (lang or 'ru').split('-')[0].lower()
if target_lang not in ('ru', 'en', 'ar'):
target_lang = 'en'
# Check prefetched narrator_dates first if available # Check prefetched narrator_dates first if available
if hasattr(self, '_prefetched_objects_cache') and 'narrator_dates' in self._prefetched_objects_cache: if hasattr(self, '_prefetched_objects_cache') and 'narrator_dates' in self._prefetched_objects_cache:
@ -330,7 +328,8 @@ class Transmitters(LowercaseSlugMixin, models.Model):
return txt return txt
from ..utils.date_engine import format_canonical_date from ..utils.date_engine import format_canonical_date
return format_canonical_date(raw_str, category=date_type, lang=target_lang)
engine_lang = target_lang if target_lang in ('ru', 'en', 'ar') else 'en'
return format_canonical_date(raw_str, category=date_type, lang=engine_lang)
def get_formatted_birth_year(self, lang: str = 'ru') -> Optional[str]: def get_formatted_birth_year(self, lang: str = 'ru') -> Optional[str]:
return self.get_formatted_date('birth', lang=lang) return self.get_formatted_date('birth', lang=lang)

Loading…
Cancel
Save