Commit bc3a6fad by Clinton Blackburn

Indexing course run languages as macrolanguage, except Chinese

ECOM-5466
parent afc1c441
...@@ -26,6 +26,7 @@ from course_discovery.apps.course_metadata.tests.factories import ( ...@@ -26,6 +26,7 @@ from course_discovery.apps.course_metadata.tests.factories import (
OrganizationFactory, PersonFactory, SeatFactory, ProgramFactory, CorporateEndorsementFactory, EndorsementFactory, OrganizationFactory, PersonFactory, SeatFactory, ProgramFactory, CorporateEndorsementFactory, EndorsementFactory,
JobOutlookItemFactory, ExpectedLearningItemFactory, PositionFactory JobOutlookItemFactory, ExpectedLearningItemFactory, PositionFactory
) )
from course_discovery.apps.ietf_language_tags.models import LanguageTag
# pylint:disable=no-member # pylint:disable=no-member
...@@ -46,6 +47,9 @@ def serialize_datetime(d): ...@@ -46,6 +47,9 @@ def serialize_datetime(d):
def serialize_language(language): def serialize_language(language):
if language.code.startswith('zh'):
return language.name
return language.macrolanguage return language.macrolanguage
...@@ -579,7 +583,7 @@ class AffiliateWindowSerializerTests(TestCase): ...@@ -579,7 +583,7 @@ class AffiliateWindowSerializerTests(TestCase):
class CourseRunSearchSerializerTests(TestCase): class CourseRunSearchSerializerTests(TestCase):
def test_data(self): def test_data(self):
course_run = CourseRunFactory() course_run = CourseRunFactory(transcript_languages=LanguageTag.objects.filter(code__in=['en-us', 'zh-cn']))
serializer = self.serialize_course_run(course_run) serializer = self.serialize_course_run(course_run)
course_run_key = CourseKey.from_string(course_run.key) course_run_key = CourseKey.from_string(course_run.key)
......
...@@ -121,13 +121,18 @@ class CourseRunIndex(BaseCourseIndex, indexes.Indexable): ...@@ -121,13 +121,18 @@ class CourseRunIndex(BaseCourseIndex, indexes.Indexable):
return obj.status == CourseRun.Status.Published return obj.status == CourseRun.Status.Published
def _prepare_language(self, language): def _prepare_language(self, language):
return language.macrolanguage if language:
# ECOM-5466: Render the macro language for all languages except Chinese
if language.code.startswith('zh'):
return language.name
else:
return language.macrolanguage
def prepare_language(self, obj):
if obj.language:
return self._prepare_language(obj.language)
return None return None
def prepare_language(self, obj):
return self._prepare_language(obj.language)
def prepare_number(self, obj): def prepare_number(self, obj):
course_run_key = CourseKey.from_string(obj.key) course_run_key = CourseKey.from_string(obj.key)
return course_run_key.course return course_run_key.course
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment