[DEPR]: Divided (cohorted) discussions management on the legacy instructor dashboard
#38,945 创建于 2026年7月31日
仓库指标
- 星标
- (8,150 个星标)
- PR 合并指标
- (平均合并 21天 19小时) (30 天内合并 50 个 PR)
描述
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).