Commit 3f70e8dd by Matthew Piatetsky

Add logo image urls to search results

parent be38e066
......@@ -52,7 +52,7 @@ COURSE_RUN_SEARCH_FIELDS = (
'text', 'key', 'title', 'short_description', 'full_description', 'start', 'end', 'enrollment_start',
'enrollment_end', 'pacing_type', 'language', 'transcript_languages', 'marketing_url', 'content_type', 'org',
'number', 'seat_types', 'image_url', 'type', 'level_type', 'availability', 'published', 'partner', 'program_types',
'authoring_organization_uuids', 'subject_uuids', 'staff_uuids', 'mobile_available',
'authoring_organization_uuids', 'subject_uuids', 'staff_uuids', 'mobile_available', 'logo_image_urls',
)
PROGRAM_FACET_FIELD_OPTIONS = {
......
......@@ -1008,11 +1008,12 @@ class AffiliateWindowSerializerTests(TestCase):
class CourseRunSearchSerializerTests(TestCase):
def test_data(self):
course_run = CourseRunFactory(transcript_languages=LanguageTag.objects.filter(code__in=['en-us', 'zh-cn']))
course_run = CourseRunFactory(transcript_languages=LanguageTag.objects.filter(code__in=['en-us', 'zh-cn']),
authoring_organizations=[OrganizationFactory()])
ProgramFactory(courses=[course_run.course])
serializer = self.serialize_course_run(course_run)
course_run_key = CourseKey.from_string(course_run.key)
orgs = course_run.authoring_organizations.all()
expected = {
'transcript_languages': [serialize_language(l) for l in course_run.transcript_languages.all()],
'short_description': course_run.short_description,
......@@ -1038,6 +1039,7 @@ class CourseRunSearchSerializerTests(TestCase):
'published': course_run.status == CourseRunStatus.Published,
'partner': course_run.course.partner.short_code,
'program_types': course_run.program_types,
'logo_image_urls': [org.logo_image_url for org in orgs],
'authoring_organization_uuids': get_uuids(course_run.authoring_organizations.all()),
'subject_uuids': get_uuids(course_run.subjects.all()),
'staff_uuids': get_uuids(course_run.staff.all())
......
......@@ -65,10 +65,15 @@ class BaseCourseIndex(OrganizationsMixin, BaseIndex):
subjects = indexes.MultiValueField(faceted=True)
organizations = indexes.MultiValueField(faceted=True)
authoring_organizations = indexes.MultiValueField(faceted=True)
logo_image_urls = indexes.MultiValueField()
sponsoring_organizations = indexes.MultiValueField(faceted=True)
level_type = indexes.CharField(null=True, faceted=True)
partner = indexes.CharField(model_attr='partner__short_code', null=True, faceted=True)
def prepare_logo_image_urls(self, obj):
orgs = obj.authoring_organizations.all()
return [org.logo_image_url for org in orgs]
def prepare_subjects(self, obj):
return [subject.name for subject in obj.subjects.all()]
......
......@@ -142,6 +142,11 @@ class CourseRunFactory(factory.DjangoModelFactory):
if create: # pragma: no cover
add_m2m_data(self.transcript_languages, extracted)
@factory.post_generation
def authoring_organizations(self, create, extracted, **kwargs):
if create: # pragma: no cover
add_m2m_data(self.authoring_organizations, extracted)
class OrganizationFactory(factory.DjangoModelFactory):
uuid = factory.LazyFunction(uuid4)
......
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