feat: add org_image_url to course_discovery index

This commit is contained in:
Andrii
2025-05-21 15:28:37 +03:00
parent 98e39aa03d
commit 09f0406ec3
3 changed files with 17 additions and 1 deletions

View File

@@ -14,7 +14,7 @@ from search.search_engine_base import SearchEngine
from cms.djangoapps.contentstore.course_group_config import GroupConfiguration
from common.djangoapps.course_modes.models import CourseMode
from openedx.core.lib.courses import course_image_url
from openedx.core.lib.courses import course_image_url, course_organization_image_url
from xmodule.annotator_mixin import html_to_text # lint-amnesty, pylint: disable=wrong-import-order
from xmodule.library_tools import normalize_key_for_search # lint-amnesty, pylint: disable=wrong-import-order
from xmodule.modulestore import ModuleStoreEnum # lint-amnesty, pylint: disable=wrong-import-order
@@ -612,6 +612,7 @@ class CourseAboutSearchIndexer(CoursewareSearchIndexer):
'course': course_id,
'content': {},
'image_url': course_image_url(course),
'org_image_url': course_organization_image_url(course),
}
# load data for all of the 'about' blocks for this course into a dictionary

View File

@@ -2913,3 +2913,9 @@ SOCIAL_MEDIA_LOGO_URLS = {
'linkedin': 'http://email-media.s3.amazonaws.com/edX/2021/social_3_linkedin.png',
'facebook': 'http://email-media.s3.amazonaws.com/edX/2021/social_1_fb.png',
}
# .. setting_name: DEFAULT_ORG_LOGO_URL
# .. setting_default: organization_logos/_placeholder.png # FIXME: change to correct placeholder
# .. setting_description: The default logo URL for organizations that do not have a logo set.
# .. setting_warning: This URL is used as a placeholder for organizations that do not have a logo set.
DEFAULT_ORG_LOGO_URL = 'organization_logos/_placeholder.png' # FIXME: change to correct placeholder

View File

@@ -8,6 +8,7 @@ from django.http import Http404
from opaque_keys import InvalidKeyError
from opaque_keys.edx.locator import CourseKey
from organizations.models import Organization
from xmodule.assetstore.assetmgr import AssetManager
from xmodule.contentstore.content import StaticContent
from xmodule.contentstore.django import contentstore
@@ -38,6 +39,14 @@ def course_image_url(course, image_key='course_image'):
return url
def course_organization_image_url(course):
"""Return the course organization image URL or the default image URL."""
default_logo_url = settings.MEDIA_URL + settings.DEFAULT_ORG_LOGO_URL
org = Organization.objects.filter(short_name=course.id.org).first()
return org.logo.url if org and org.logo else default_logo_url
def create_course_image_thumbnail(course, dimensions):
"""Create a course image thumbnail and return the URL.