openedx / openedx/openedx-platform
[DEPR]: marketing_enabled field in course settings API and CoursePromotionCard in frontend-app-authoring
Nobody has claimed this yet.
- 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:
-
marketing_enabledfrom the course settings API — The fieldmarketing_enabledwill be removed from theGET /api/contentstore/v1/course_settings/{course_id}response. It has been hardcoded totruesince #38720 and is no longer meaningful. -
CoursePromotionCardexport andPageBannerSlotrestoration docs fromfrontend-app-authoring— TheCoursePromotionCardcomponent 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: Removemarketing_enabledfromget_course_settings()return dict,CourseSettingsSerializer, view docstring, and tests (cms/djangoapps/contentstore/) -
frontend-app-authoring: DeleteCoursePromotionCard.jsxandCoursePromotionCard.test.jsx -
frontend-app-authoring: Removeexport { CoursePromotionCard }frombasic-section/index.jsx; removelmsLinkForAboutPageandcourseDisplayNameprops (no longer needed) -
frontend-app-authoring: RemovelmsLinkForAboutPage,courseDisplayName,platformNamefromPageBannerSlotprops andpluginProps -
frontend-app-authoring: Remove the "Restoring the course enrollment card" section fromPageBannerSlot/Readme.md
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 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