Browse Source

weekdays language handles statickly

master
Mohsen Taba 1 month ago
parent
commit
cb2ef1c858
  1. 34
      apps/course/models/course.py
  2. 19
      apps/course/serializers/course.py

34
apps/course/models/course.py

@ -221,6 +221,16 @@ WEEKDAY_TRANSLATIONS = {
}
}
def get_weekday_label(day_key, lang='en'):
normalized_lang = (lang or 'en').lower()
if normalized_lang.startswith('fa'):
lang_key = 'fa'
elif normalized_lang.startswith('ru'):
lang_key = 'ru'
else:
lang_key = 'en'
return WEEKDAY_TRANSLATIONS.get(day_key, {}).get(lang_key, day_key)
def normalize_weekday_to_key(day_value):
if not day_value:
return 'saturday'
@ -426,31 +436,17 @@ class Course(models.Model):
for k, v in val.items():
raw_timings.append({"day": k, "time": str(v)})
en_timings = []
ru_timings = []
fa_timings = []
normalized_timings = []
for item in raw_timings:
if isinstance(item, dict):
day_key = normalize_weekday_to_key(item.get('day'))
time_val = item.get('time') or item.get('timing') or ''
en_timings.append({
"day": WEEKDAY_TRANSLATIONS.get(day_key, {}).get('en', item.get('day', '')),
"time": time_val
})
ru_timings.append({
"day": WEEKDAY_TRANSLATIONS.get(day_key, {}).get('ru', item.get('day', '')),
"time": time_val
})
fa_timings.append({
"day": WEEKDAY_TRANSLATIONS.get(day_key, {}).get('fa', item.get('day', '')),
"time": time_val
normalized_timings.append({
"day": day_key,
"time": str(time_val).strip(),
})
self.timing = [
{"language_code": "fa", "title": json.dumps(fa_timings)},
{"language_code": "en", "title": json.dumps(en_timings)},
{"language_code": "ru", "title": json.dumps(ru_timings)},
]
self.timing = normalized_timings
self.features = format_multilingual_field(self.features)
usd_price = Decimal(self.price or 0)

19
apps/course/serializers/course.py

@ -2,7 +2,13 @@ from rest_framework import serializers
# from dj_filer.admin import get_thumbs
from utils import get_thumbs
from apps.course.models import Course, CourseCategory, Attachment, Glossary, LessonCompletion, Participant, Lesson, CourseAttachment, CourseGlossary, CourseLesson
from apps.course.models.course import get_localized_field, normalize_level, normalize_status
from apps.course.models.course import (
get_localized_field,
get_weekday_label,
normalize_level,
normalize_status,
normalize_weekday_to_key,
)
from apps.chat.models import RoomMessage
from apps.account.serializers import UserProfileSerializer
from decimal import Decimal
@ -513,7 +519,16 @@ class CourseDetailSerializer(serializers.ModelSerializer):
return []
def get_timing(self, obj):
return self._extract_builder_list(obj.timing)
localized_rows = []
for item in self._extract_builder_list(obj.timing):
if not isinstance(item, dict):
continue
day_key = normalize_weekday_to_key(item.get('day'))
localized_rows.append({
"day": get_weekday_label(day_key, self._lang()),
"time": item.get('time') or item.get('timing') or "",
})
return localized_rows
def get_features(self, obj):
return self._extract_builder_list(obj.features)

Loading…
Cancel
Save