feat: add Course Feedback tab to new instructor dashboard - #75
Draft
farhan wants to merge 1 commit into
Draft
Conversation
Register an InstructorDashboardTabsRequested (tabs.requested.v1) pipeline step so the Feedback tab appears on the new frontend-base instructor dashboard. The existing AddFeedbackTab step only hooks the legacy render.started.v1 filter, which the new dashboard never fires. Part 1 of 2: this adds the tab entry; rendering its content still requires a frontend route component registered in the org.openedx.frontend.slot.instructorDashboard.routes.v1 slot (follow-up). Refs: openedx#62 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
farhan
added a commit
to farhan/xblocks-extra
that referenced
this pull request
Aug 28, 2026
farhan
added a commit
to farhan/xblocks-extra
that referenced
this pull request
Aug 28, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #75 +/- ##
==========================================
+ Coverage 82.17% 82.53% +0.36%
==========================================
Files 48 48
Lines 1419 1449 +30
Branches 110 111 +1
==========================================
+ Hits 1166 1196 +30
Misses 221 221
Partials 32 32
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Caution
Agentically root-caused and fixed via Claude. Human review is pending.
Issue: #62
Per the code-history investigation, the Feedback tab was never supported on the new (frontend-base) instructor dashboard — the integration was built in 2023 for the legacy dashboard only and was never ported when the new dashboard became the default. This is a missing-feature gap, not a recent regression in this repo.
Description
Restores the Course Feedback tab on the new (frontend-base) instructor dashboard.
The Feedback XBlock's instructor-dashboard integration was written in 2023 for the legacy dashboard and only ever hooked the
org.openedx.learning.instructor.dashboard.render.started.v1filter (viaAddFeedbackTab, which appends a server-rendered section tocontext["sections"]). The new frontend-base dashboard builds its navigation from a different filter —org.openedx.learning.instructor.dashboard.tabs.requested.v1— so the legacy step never runs there and the tab disappears.This PR adds a new pipeline step,
AddFeedbackTabToInstructorDashboard, that hookstabs.requested.v1and registers the Feedback tab for the new dashboard, mirroring the pattern used byplatform-plugin-aspects.Resolves: #62
Root cause / regression timeline
The tab was never broken by a change in this repo — the platform switched the default instructor dashboard from legacy to the new frontend-base app in openedx/openedx-platform#38396 (merged 2026-04-23), which stopped firing the legacy
render.started.v1filter the Feedback XBlock relies on. The new tab-injection filter (tabs.requested.v1) landed later in openedx/openedx-platform#38499 but the Feedback XBlock was never migrated to it. This PR closes that gap.This change makes the tab appear in the nav bar, but the new dashboard renders each tab's body from a frontend plugin registered in the
org.openedx.frontend.slot.instructorDashboard.routes.v1slot. Until a companion frontend route component for thefeedbacktab id exists, clicking the tab renders the dashboard's built-in "Page Not Found" fallback.feedbacktab viatabs.requested.v1(this PR)instructorDashboard.routes.v1that renders the feedback ratings/answers view (follow-up)Do not merge until the frontend companion is ready, otherwise operators get a Feedback tab that dead-ends at "Page Not Found".
Configuration
Operators must append (not overwrite) the new pipeline to
OPEN_EDX_FILTERS_CONFIG:How to test
instructor.legacy_instructor_dashboardwaffle flag off)./instructor-dashboard/<course_id>/course_info.Testing results
Verified end-to-end on a Tutor dev environment:
GET /api/instructor/v2/courses/<course_id>returns thefeedbacktab (sort_order: 120).Unit tests
Added
AddFeedbackTabToInstructorDashboardcoverage: adds the tab when enabled, appends without dropping existing tabs, and is a no-op whenENABLE_FEEDBACK_INSTRUCTOR_VIEWis disabled.🤖 Generated with Claude Code
Screenshot (tested locally)
The Course Feedback tab now appears (and is selectable) on the new frontend-base instructor dashboard. Because this is Part 1 of 2, its body currently renders the dashboard's built-in "Page Not Found" — the frontend route component (Part 2) will replace this with the feedback ratings/answers view. Captured on a Tutor dev environment (local LMS):