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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    deprProposal for deprecation & removal per OEP-21

    Type

    No type

    Projects

    Status
    Draft

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions