openedx / openedx/openedx-platform

Unify handling of default organization logos between CMS and LMS

Open
#37,359 0 comments 0 reactions 0 assignees View on GitHub

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_URL is 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_discovery API endpoint in edx-search.
  • The course discovery api is executed in the LMS.

Proposed Solution:

  • Move DEFAULT_ORG_LOGO_URL to the LMS common settings.
  • During course indexing, save None if an organization does not have a logo.
  • In course discovery, before returning search results, check org_image_url: if None, use DEFAULT_ORG_LOGO_URL, which will now correctly resolve inside LMS.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.