openedx / openedx/openedx-platform

[DEPR]: Legacy instructor dashboard

Open
#38,432 13 comments 0 reactions 1 assignee View on GitHub

@feanil is already working on this.

Since Jun 18, 2026.

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

Description

RFC Start Date

2026-04-23

Target Plan Accepted Date

2026-05-07

Target Transition Unblocked Date

2026-09-23 (pending completion of CCX dashboard MFE page)

Earliest Breaking Changes Unblocked Date

2026-10-23 (pending completion of CCX dashboard MFE page + Willow code cut)

The legacy CCX instructor dash page is currently IFramed in to MFE experience. That means that operators can transition to the MFE now, but we can't break the underlying legacy CCX dashboard code until the MFE is replaced with a native MFE experience.

Earliest Open edX Named Release with Breaking Changes

Verawood - 2026-04

Xylon - 2027-04

Rationale

The new instructor dashboard is nearly in all place. Is is the default experience for all instructor dashboard functionality except CCX the dashboard. Once the CCX dash is complete, the legacy instructor dashboard will be redundant.

Removal

https://github.com/openedx/openedx-platform/blob/c3d0c17e78cf108ac47a7c078d3172cfe0efb7a6/lms/djangoapps/instructor/views/instructor_dashboard.py#L147

The implementation for the old instructor dashboard view + related code + related tests, related tests will have the DEPR-38432 number tagged in a comment

Divided (cohorted) discussions management. Folded in from #38945, whose RFC decided the enrollment-track and per-topic parts of this feature will not be rebuilt in the MFE. This DEPR removes the legacy dashboard's Discussions section and the staff-only endpoints that exist only to serve it:

  • The dashboard section _section_discussions_management in lms/djangoapps/instructor/views/instructor_dashboard.py and its template lms/templates/instructor/instructor_dashboard_2/discussions_management.html.
  • The Backbone/Underscore UI under lms/static/js/discussions_management/ (divided_discussions*.js, models course_discussions_settings.js / course_discussions_detail.js), its RequireJS build entry lms/static/js/instructor_dashboard/discussions_management.js, and the divided-discussions-*.underscore templates.
  • The two staff-only config endpoints that back this section: course_discussions_settings_handler (^courses/{course_id}/discussions/settings$) and discussion_topics (^courses/{course_id}/discussion/topics$) in lms/djangoapps/discussion/views.py (URLs in lms/urls.py). They exist only to serve this UI, so they come out with it.

Cohort-based division is not lost by removing this section - it's also configured through the Pages & Resources discussions settings, which stays.

Not in this DEPR: the backend removal of the dropped capabilities (enrollment-track + per-topic division, plus a data migration) remains in #38945 as a follow-up.

Replacement

Link to the new instructor dashboard:

https://github.com/openedx/frontend-app-instructor-dashboard

Deprecation

All code that was found while working on enabling the instructor dashboard redirection by default was marked with the "DEPR-XXXX" tag so it's easily identifiable.

Additional Info

Users that need to revert to the legacy dashboard can enable the following waffle flag:

instructor.legacy_instructor_dashboard

This DEPR absorbs the dashboard-side scope of #38945 (divided/cohorted-discussions management - the section, its Backbone UI, and the two config endpoints that back it). #38945 stays open for the backend removal of the dropped capabilities (enrollment-track + per-topic division). Cohort-based division stays (configured via Pages & Resources).

Transition Unblocked Tasks

No response

Feature Removal Tasks

No response

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.