openedx / openedx/openedx-platform
Unify handling of default organization logos between CMS and LMS
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 8.2k
- Forks
- 4.4k
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 42
Description
Description
Currently, the logic for handling organization logos is split between the CMS and LMS. This separation causes issues with how the default organization logo URL is stored and resolved, especially when courses without logos are indexed and later displayed in the LMS. To address this inconsistency, the following changes are proposed.
Current Logic
CMS-specific:
- The value
DEFAULT_ORG_LOGO_URLis used during course indexing. - Course indexing is executed in the CMS.
- Course indexing saves the org logo url to the search engine index.
LMS-specific:
- The static url (part of the org logo url) must resolve inside LMS.
- The org logo url is part of the response returned by the
course_discoveryAPI endpoint inedx-search. - The course discovery api is executed in the LMS.
Proposed Solution:
- Move
DEFAULT_ORG_LOGO_URLto the LMS common settings. - During course indexing, save
Noneif an organization does not have a logo. - In course discovery, before returning search results, check
org_image_url: ifNone, useDEFAULT_ORG_LOGO_URL, which will now correctly resolve inside LMS.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing course indexing in the CMS and the course discovery API in the LMS, focusing on DEFAULT_ORG_LOGO_URL and org_image_url. Verify how logo values are stored during indexing and resolved before search results are returned. Done means organizations without logos are indexed with None and course discovery substitutes the LMS-resolvable default URL.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend, search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100