RFC Start Date
2026-07-31
Target Plan Accepted Date
2026-08-14
Target Transition Unblocked Date
Estimated 2026-09. Sooner if there are no objections and we drop it; later if we decide to rebuild it in the new instructor dashboard MFE first.
Earliest Breaking Changes Unblocked Date
2027-01-31, or one month after the ticket moves to Transition Unblocked, whichever is later.
Earliest Open edX Named Release with Breaking Changes
Xylon - 2027-04
Rationale
The redesigned frontend-app-instructor-dashboard is replacing the legacy instructor dashboard, and we'd like to finish the job and remove the legacy Django-rendered dashboard. The "Discussions" management section - which configures divided (a.k.a. cohorted) discussions - is one of the pieces that has no counterpart in the new MFE and no recorded decision to carry it forward (see openedx/frontend-app-instructor-dashboard#225).
Divided discussions lets staff partition discussion topics so a learner only sees posts from peers in their same cohort or enrollment track. It's configured per course and does nothing unless a course explicitly sets a division scheme (CourseDiscussionSettings.division_scheme defaults to none), so I expect relatively few courses use it - though I don't have hard usage numbers.
Removal is the plan, but this is exactly the piece I'm least sure about. If you rely on divided or cohorted discussions, please chime in on this ticket. Either way the legacy dashboard itself is going away: if there's real demand, we'll build divided-discussions management into the new instructor dashboard MFE as its own story and still remove the legacy dashboard; if not, this capability goes away with it.
Removal
The legacy "Discussions" management surface on the instructor dashboard, and the endpoints and code that back only it (paths against openedx/openedx-platform master 1746666137):
- The dashboard section itself -
_section_discussions_management in lms/djangoapps/instructor/views/instructor_dashboard.py:573, and its template lms/templates/instructor/instructor_dashboard_2/discussions_management.html.
- The Backbone/Underscore UI under
lms/static/js/discussions_management/ (views divided_discussions*.js, models course_discussions_settings.js / course_discussions_detail.js) and its RequireJS build entry lms/static/js/instructor_dashboard/discussions_management.js, plus the divided-discussions-*.underscore templates.
- The two staff-only config endpoints that exist only to serve this UI:
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:565,621).
The larger, second part is the enforcement itself - the division_scheme / divided_discussions / always_divide_inline_discussions fields on CourseDiscussionSettings and the topic-division logic they drive in the discussion API and the forum backend. If the RFC confirms we're dropping the feature (not just its legacy UI), that enforcement and a data migration to unset it come out during the Transition Unblocked phase; that's the bulk of the work.
Replacement
None today. The new frontend-app-instructor-dashboard covers cohort management (creating cohorts, assigning learners) via /api/cohorts/, but not divided-discussions configuration - choosing the division scheme or which topics are divided. If we decide it's worth keeping, the replacement would be a net-new divided-discussions management UI in the MFE, backed by a modern REST API (the current endpoints are legacy staff-only JSON GET/PATCH).
Deprecation
Add a deprecation note to _section_discussions_management and the two discussion/views.py handlers, and log a DeprecatedFeatureWarning-style notice. The CourseDiscussionSettings model itself stays in place until the RFC resolves whether we're removing enforcement, so it is not marked deprecated yet.
Additional Info
This is scoped to divided/cohorted discussions only. It is not the same as the broader legacy-discussions cleanup (#38940), which deliberately keeps these two endpoints out of scope precisely because of this gap - so this DEPR is what unblocks that cleanup.
Division can key off enrollment track as well as cohort, so it affects some courses that aren't cohorted at all (e.g. dividing a topic by verified/audit track); worth keeping in mind when reasoning about who's affected.
Related: openedx/frontend-app-instructor-dashboard#225 (discovery that surfaced this gap); #38940 (legacy-discussions cleanup this unblocks); #38936 (MFE/legacy inventory).
RFC Start Date
2026-07-31
Target Plan Accepted Date
2026-08-14
Target Transition Unblocked Date
Estimated 2026-09. Sooner if there are no objections and we drop it; later if we decide to rebuild it in the new instructor dashboard MFE first.
Earliest Breaking Changes Unblocked Date
2027-01-31, or one month after the ticket moves to Transition Unblocked, whichever is later.
Earliest Open edX Named Release with Breaking Changes
Xylon - 2027-04
Rationale
The redesigned
frontend-app-instructor-dashboardis replacing the legacy instructor dashboard, and we'd like to finish the job and remove the legacy Django-rendered dashboard. The "Discussions" management section - which configures divided (a.k.a. cohorted) discussions - is one of the pieces that has no counterpart in the new MFE and no recorded decision to carry it forward (see openedx/frontend-app-instructor-dashboard#225).Divided discussions lets staff partition discussion topics so a learner only sees posts from peers in their same cohort or enrollment track. It's configured per course and does nothing unless a course explicitly sets a division scheme (
CourseDiscussionSettings.division_schemedefaults tonone), so I expect relatively few courses use it - though I don't have hard usage numbers.Removal is the plan, but this is exactly the piece I'm least sure about. If you rely on divided or cohorted discussions, please chime in on this ticket. Either way the legacy dashboard itself is going away: if there's real demand, we'll build divided-discussions management into the new instructor dashboard MFE as its own story and still remove the legacy dashboard; if not, this capability goes away with it.
Removal
The legacy "Discussions" management surface on the instructor dashboard, and the endpoints and code that back only it (paths against
openedx/openedx-platformmaster1746666137):_section_discussions_managementinlms/djangoapps/instructor/views/instructor_dashboard.py:573, and its templatelms/templates/instructor/instructor_dashboard_2/discussions_management.html.lms/static/js/discussions_management/(viewsdivided_discussions*.js, modelscourse_discussions_settings.js/course_discussions_detail.js) and its RequireJS build entrylms/static/js/instructor_dashboard/discussions_management.js, plus thedivided-discussions-*.underscoretemplates.course_discussions_settings_handler(^courses/{course_id}/discussions/settings$) anddiscussion_topics(^courses/{course_id}/discussion/topics$) inlms/djangoapps/discussion/views.py(URLs inlms/urls.py:565,621).The larger, second part is the enforcement itself - the
division_scheme/divided_discussions/always_divide_inline_discussionsfields onCourseDiscussionSettingsand the topic-division logic they drive in the discussion API and the forum backend. If the RFC confirms we're dropping the feature (not just its legacy UI), that enforcement and a data migration to unset it come out during the Transition Unblocked phase; that's the bulk of the work.Replacement
None today. The new
frontend-app-instructor-dashboardcovers cohort management (creating cohorts, assigning learners) via/api/cohorts/, but not divided-discussions configuration - choosing the division scheme or which topics are divided. If we decide it's worth keeping, the replacement would be a net-new divided-discussions management UI in the MFE, backed by a modern REST API (the current endpoints are legacy staff-only JSON GET/PATCH).Deprecation
Add a deprecation note to
_section_discussions_managementand the twodiscussion/views.pyhandlers, and log aDeprecatedFeatureWarning-style notice. TheCourseDiscussionSettingsmodel itself stays in place until the RFC resolves whether we're removing enforcement, so it is not marked deprecated yet.Additional Info
This is scoped to divided/cohorted discussions only. It is not the same as the broader legacy-discussions cleanup (#38940), which deliberately keeps these two endpoints out of scope precisely because of this gap - so this DEPR is what unblocks that cleanup.
Division can key off enrollment track as well as cohort, so it affects some courses that aren't cohorted at all (e.g. dividing a topic by verified/audit track); worth keeping in mind when reasoning about who's affected.
Related: openedx/frontend-app-instructor-dashboard#225 (discovery that surfaced this gap); #38940 (legacy-discussions cleanup this unblocks); #38936 (MFE/legacy inventory).