From fe196be67dd0d533167bd99d768fc5831157e71a Mon Sep 17 00:00:00 2001 From: javier ontiveros Date: Thu, 30 Apr 2026 19:51:15 -0600 Subject: [PATCH] feat: added use of new filter for instructor dash tabs --- .../instructor/views/serializers_v2.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/instructor/views/serializers_v2.py b/lms/djangoapps/instructor/views/serializers_v2.py index 89fa151716c5..80d058f52acd 100644 --- a/lms/djangoapps/instructor/views/serializers_v2.py +++ b/lms/djangoapps/instructor/views/serializers_v2.py @@ -13,6 +13,7 @@ from django.utils.html import escape from django.utils.translation import gettext as _ from edx_when.api import is_enabled_for_course +from openedx_filters.learning.filters import InstructorDashboardTabsGenerated from rest_framework import serializers from common.djangoapps.course_modes.models import CourseMode @@ -322,7 +323,20 @@ def get_tabs(self, data): ] order_index = {tab: i for i, tab in enumerate(tabs_order)} tabs = sorted(tabs, key=lambda x: order_index.get(x['tab_id'], float("inf"))) - return tabs + + # Apply the InstructorDashboardTabsGenerated filter to allow plugins to modify tabs + try: + filtered_tabs = InstructorDashboardTabsGenerated.run_filter( + tabs=tabs, + course=course, + user=request.user, + course_key=course_key + ) + return filtered_tabs if filtered_tabs is not None else tabs + except InstructorDashboardTabsGenerated.PreventTabsGeneration as exc: + # Plugin provided custom tabs or prevented tab generation + custom_tabs = getattr(exc, 'tabs', []) + return custom_tabs def get_course_id(self, data): """Get course ID as string."""