[DEPR]: Divided (cohorted) discussions management on the legacy instructor dashboard
#38.945 aperta il 31 lug 2026
Metriche repository
- Star
- (8150 stelle)
- Metriche merge PR
- (Merge medio 21g 19h) (50 PR mergiate in 30 g)
Descrizione
RFC Start Date
2026-07-31
Target Plan Accepted Date
2026-08-14
Target Transition Unblocked Date
2026-08-14
Earliest Breaking Changes Unblocked Date
2027-08-14 - Since we're dropping the feature with no-replacement, breaking changes are unblocked immediately.
Earliest Open edX Named Release with Breaking Changes
Willow - 2026-10
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_managementinlms/djangoapps/instructor/views/instructor_dashboard.py:573, and its templatelms/templates/instructor/instructor_dashboard_2/discussions_management.html. - The Backbone/Underscore UI under
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. - The two staff-only config endpoints that exist only to serve this UI:
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_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 (openedx/openedx-platform#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); openedx/openedx-platform#38940 (legacy-discussions cleanup this unblocks); openedx/openedx-platform#38936 (MFE/legacy inventory).