Skip to content

[DEPR]: old Learner Course Dashboard #35326

Description

@deborahgu

Proposal Date

2024-08-19

Target Ticket Acceptance Date

2024-09-19

Earliest Open edX Named Release Without This Functionality

Teak - 2025-04

Rationale

Since the Quince release, using the new learner dashboard MFE has been the default behavior for everyone.

Removal

⚠️The developer doing this removal should be careful; this list might not be comprehensive of everything, and it's possible new code relies on legacy paths. Verify the list, and if anything is not removable at this time, create tickets for follow-up work and comment appropriately in the code.

It is possible that code, tests, stylesheets, or themes in other locations will become defunct as part of this deprecation, but it is the responsibility of the removing developer to find each of these and verify that it isn't used elsewhere (eg. in learner_home).

There are also files in https://github.com/openedx/edx-platform/tree/master/lms/static/js/learner_dashboard -- anything used for the program dash rendering should be left alone.

Additional surface found on re-verification (2026-07-31, master 387ee5d93c) -- not in the original list:

  • The legacy render path in the student_dashboard view itself: common/djangoapps/student/views/dashboard.py. The view redirects to the MFE when learner_home_mfe.enabled is on and otherwise builds and renders the full legacy dashboard (roughly the back half of the file plus its helper functions). Keep the redirect; remove the legacy render path and anything only it uses.
  • lms/templates/dashboard.html -- the top-level template, separate from the lms/templates/dashboard/ directory already listed above.
  • The learner_home_mfe.enabled waffle flag (lms/djangoapps/learner_home/waffle.py) and the /dashboard route (lms/urls.py): decide the end state. Once there is no legacy page, the flag/redirect can collapse so /dashboard unconditionally serves the MFE (or is a permanent redirect) and the flag can be removed.

Replacement

The existing learner dashboard MFE.

As part of this work, all non-Program Dash code should be removed from https://github.com/openedx/edx-platform/tree/master/lms/djangoapps/learner_dashboard if any is left, and a README should be added saying that this app is just the program dash now. (Possibly partly copied from https://github.com/openedx/edx-platform/blob/master/lms/djangoapps/learner_dashboard/PROGRAMS.rst).

Deprecation

No response

Migration

No response

Additional Info

⚠️This is the old learner course dashboard only, not the program dashboard.

Reopened 2026-07-31. This was closed 2025-03-18 with no removal PR or commit attached; none of the code above was actually removed (every path is still present on master). Re-verifying also corrected the Rationale above: the MFE is the default on Tutor (its MFE init enables learner_home_mfe.enabled), but in vanilla edx-platform the flag is off by default, so the legacy dashboard is still the vanilla default render, not dead code. Removal therefore has to be sequenced after the vanilla default flips (or the flag is removed). The README for lms/djangoapps/learner_dashboard requested under Replacement was also never added -- still owed.

Blocked by: #38941 -- the cross-course "Search Your Courses" widget lives only on this legacy dashboard (dashboard.html, gated by ENABLE_DASHBOARD_SEARCH) and has no MFE equivalent. Removing dashboard.html deletes that entry point, so this removal is blocked until the cross-course search decision resolves. Tracked in #38936.

Task List

No response

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21

Type

No type

Projects

Status
Draft

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions