Skip to content

[DEPR]: Divided (cohorted) discussions management on the legacy instructor dashboard #38945

Description

@feanil

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_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).

Metadata

Metadata

Assignees

Labels

deprProposal for deprecation & removal per OEP-21good first issueA good task for a newcomer to start withhelp wantedReady to be picked up by anyone in the community

Type

No type

Projects

Status
Breaking Changes Unblocked

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions