openedx / openedx/openedx-platform

[DEPR]: marketing_enabled field in course settings API and CoursePromotionCard in frontend-app-authoring

Open
#38,727 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

depr
Dominant language
Python
Stars
8.2k
Forks
4.4k
Avg merge
6d 18h
Merged PRs (30d)
42

Description

RFC Start Date

N/A -- Already Accepted

Target Plan Accepted Date

N/A -- Already Accepted

Target Transition Unblocked Date

Immediately -- Transition Already Unblocked. The PageBannerSlot README (added in openedx/frontend-app-authoring#3088) documents how to configure CoursePromotionCard to restore the legacy enrollment card UI. Operators can make that change in the Xylon release.

Earliest Breaking Changes Unblocked Date

After Xylon release cut. Breaking changes will land in the "Y" release.

Rationale

The marketing_enabled field in GET /api/contentstore/v1/course_settings/{course_id} was previously driven by the ENABLE_MKTG_SITE feature flag, which was removed in #38720 (a DEPR subtask of the broader cleanup of legacy static marketing templates). The field now always returns true and carries no information.

In parallel, frontend-app-authoring was updated in openedx/frontend-app-authoring#3088 to always render the promotional banner path, and the legacy enrollment card was extracted as CoursePromotionCard — exported and documented in the PageBannerSlot README so operators can restore it via plugin configuration. That export is the transition path; it will be removed in the "Y" release.

Description

What is being removed:

  1. marketing_enabled from the course settings API — The field marketing_enabled will be removed from the GET /api/contentstore/v1/course_settings/{course_id} response. It has been hardcoded to true since #38720 and is no longer meaningful.

  2. CoursePromotionCard export and PageBannerSlot restoration docs from frontend-app-authoring — The CoursePromotionCard component and its export were added as a migration aid in openedx/frontend-app-authoring#3088. These will be deleted in the "Y" release.

Transition path for operators:

Operators who relied on ENABLE_MKTG_SITE=False and want to preserve the enrollment card UI should follow the instructions in the PageBannerSlot README (added in openedx/frontend-app-authoring#3088) to configure CoursePromotionCard via their env.config.jsx. This must be done before the "Y" release lands.

Task List

  • openedx-platform: Remove marketing_enabled from get_course_settings() return dict, CourseSettingsSerializer, view docstring, and tests (cms/djangoapps/contentstore/)
  • frontend-app-authoring: Delete CoursePromotionCard.jsx and CoursePromotionCard.test.jsx
  • frontend-app-authoring: Remove export { CoursePromotionCard } from basic-section/index.jsx; remove lmsLinkForAboutPage and courseDisplayName props (no longer needed)
  • frontend-app-authoring: Remove lmsLinkForAboutPage, courseDisplayName, platformName from PageBannerSlot props and pluginProps
  • frontend-app-authoring: Remove the "Restoring the course enrollment card" section from PageBannerSlot/Readme.md

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 in cms/djangoapps/contentstore/ by locating get_course_settings(), CourseSettingsSerializer, its view docstring, and related tests. Then inspect frontend-app-authoring's CoursePromotionCard.jsx, basic-section/index.jsx, PageBannerSlot props, and PageBannerSlot/Readme.md. Done means the obsolete API field, component export, props, tests, and restoration documentation are removed in both projects.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, react
Domain
api, backend, documentation, frontend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.