Skip to content

Commit

Permalink
feat: [AXIMST-783] change disscussion feature flag name (#2537)
Browse files Browse the repository at this point in the history
* feat: [AXIMST-783] change disscussion feature flag name

* test: [AXIMST-783] fix tests
  • Loading branch information
NiedielnitsevIvan authored Apr 11, 2024
1 parent 74db0c7 commit 7a88d0f
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 25 deletions.
18 changes: 9 additions & 9 deletions lms/djangoapps/courseware/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,10 @@
from lms.djangoapps.courseware.tests.helpers import MasqueradeMixin, get_expiration_banner_text, set_preview_mode
from lms.djangoapps.courseware.testutils import RenderXBlockTestMixin
from lms.djangoapps.courseware.toggles import (
COURSEWARE_MICROFRONTEND_DISCUSSION_SIDEBAR_OPEN_DISABLED,
COURSEWARE_MICROFRONTEND_SIDEBAR_DISABLED,
COURSEWARE_MICROFRONTEND_SEARCH_ENABLED,
COURSEWARE_OPTIMIZED_RENDER_XBLOCK,
COURSEWARE_SHOW_DEFAULT_RIGHT_SIDEBAR,
)
from lms.djangoapps.courseware.user_state_client import DjangoXBlockUserStateClient
from lms.djangoapps.courseware.views.views import (
Expand Down Expand Up @@ -3826,7 +3826,7 @@ def test_is_mfe_sidebar_enabled(self):

class TestMFEDiscussionSidebarEnabledAPI(SharedModuleStoreTestCase):
"""
Tests the endpoint to fetch the Courseware Discussion Sidebar waffle flag status.
Tests the endpoint to fetch the Courseware Discussion/Notifications Sidebar waffle flag status.
"""

def setUp(self):
Expand All @@ -3835,23 +3835,23 @@ def setUp(self):
self.course = CourseFactory.create()

self.client = APIClient()
self.apiUrl = reverse('discussion_sidebar_enabled_view', kwargs={'course_id': str(self.course.id)})
self.apiUrl = reverse('show_default_right_sidebar_enabled_view', kwargs={'course_id': str(self.course.id)})

@override_waffle_flag(COURSEWARE_MICROFRONTEND_DISCUSSION_SIDEBAR_OPEN_DISABLED, active=True)
def test_is_mfe_discussion_sidebar_opening_disabled(self):
@override_waffle_flag(COURSEWARE_SHOW_DEFAULT_RIGHT_SIDEBAR, active=False)
def test_is_mfe_show_default_right_sidebar_disabled(self):
"""
Getter to check if discussion sidebar shouldn't be opened by default.
Getter to check if right sidebar shouldn't be opened by default.
"""
response = self.client.get(self.apiUrl, content_type='application/json')
body = json.loads(response.content.decode('utf-8'))

self.assertEqual(response.status_code, 200)
self.assertEqual(body, {'enabled': False})

@override_waffle_flag(COURSEWARE_MICROFRONTEND_DISCUSSION_SIDEBAR_OPEN_DISABLED, active=False)
def test_is_mfe_discussion_sidebar_opening_enabled(self):
@override_waffle_flag(COURSEWARE_SHOW_DEFAULT_RIGHT_SIDEBAR, active=True)
def test_is_mfe_show_default_right_sidebar_enabled(self):
"""
Getter to check if discussion sidebar should be opened by default.
Getter to check if right sidebar should be opened by default.
"""
response = self.client.get(self.apiUrl, content_type='application/json')
body = json.loads(response.content.decode('utf-8'))
Expand Down
21 changes: 12 additions & 9 deletions lms/djangoapps/courseware/toggles.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,17 +94,20 @@
f'{WAFFLE_FLAG_NAMESPACE}.disable_navigation_sidebar', __name__
)

# .. toggle_name: courseware.disable_default_opening_discussion_sidebar
# .. toggle_name: courseware.show_default_right_sidebar
# .. toggle_implementation: WaffleFlag
# .. toggle_default: False
# .. toggle_description: Disable opening the discussion sidebar by default on Learning MFE.
# .. toggle_description: If waffle flag disabled
# Discussions or Notifications sidebar shouldn't be displayed at all on Learning MFE.
# If waffle flag enabled - Discussions opens always on the pages with discussions,
# if user is in Audit and course has verified mode - show Notifications.
# .. toggle_use_cases: temporary
# .. toggle_creation_date: 2024-03-13
# .. toggle_creation_date: 2024-04-11
# .. toggle_target_removal_date: None
# .. toggle_tickets: AXIMST-629
# .. toggle_tickets: FC-0056
# .. toggle_warning: None.
COURSEWARE_MICROFRONTEND_DISCUSSION_SIDEBAR_OPEN_DISABLED = CourseWaffleFlag(
f'{WAFFLE_FLAG_NAMESPACE}.disable_default_opening_discussion_sidebar', __name__
COURSEWARE_SHOW_DEFAULT_RIGHT_SIDEBAR = CourseWaffleFlag(
f'{WAFFLE_FLAG_NAMESPACE}.show_default_right_sidebar', __name__
)

# .. toggle_name: courseware.mfe_progress_milestones_streak_discount_enabled
Expand Down Expand Up @@ -218,11 +221,11 @@ def courseware_mfe_sidebar_is_disabled(course_key=None):
return COURSEWARE_MICROFRONTEND_SIDEBAR_DISABLED.is_enabled(course_key)


def courseware_mfe_discussion_sidebar_opening_is_disabled(course_key=None):
def courseware_show_default_right_sidebar_is_enabled(course_key=None):
"""
Return whether the courseware.disable_default_opening_discussion_sidebar flag is on.
Return whether the courseware.show_default_right_sidebar flag is on.
"""
return COURSEWARE_MICROFRONTEND_DISCUSSION_SIDEBAR_OPEN_DISABLED.is_enabled(course_key)
return COURSEWARE_SHOW_DEFAULT_RIGHT_SIDEBAR.is_enabled(course_key)


def courseware_mfe_navigation_sidebar_blocks_caching_is_enabled(course_key=None):
Expand Down
11 changes: 7 additions & 4 deletions lms/djangoapps/courseware/views/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@
from lms.djangoapps.courseware.permissions import MASQUERADE_AS_STUDENT, VIEW_COURSE_HOME, VIEW_COURSEWARE
from lms.djangoapps.courseware.toggles import (
course_is_invitation_only,
courseware_mfe_discussion_sidebar_opening_is_disabled,
courseware_mfe_search_is_enabled,
courseware_mfe_sidebar_is_disabled,
courseware_show_default_right_sidebar_is_enabled,
)
from lms.djangoapps.courseware.user_state_client import DjangoXBlockUserStateClient
from lms.djangoapps.courseware.utils import (
Expand Down Expand Up @@ -2288,12 +2288,15 @@ def courseware_mfe_sidebar_enabled(request, course_id=None):


@api_view(['GET'])
def courseware_mfe_discussion_sidebar_opening_is_enabled(request, course_id=None):
def courseware_mfe_show_default_right_sidebar_is_enabled(request, course_id=None):
"""
Simple GET endpoint to expose whether the course may open discussion sidebar by default.
"""
course_key = CourseKey.from_string(course_id) if course_id else None
try:
course_key = CourseKey.from_string(course_id) if course_id else None
except InvalidKeyError:
return JsonResponse({"error": "Invalid course_id"})

return JsonResponse({
"enabled": not courseware_mfe_discussion_sidebar_opening_is_disabled(course_key)
"enabled": courseware_show_default_right_sidebar_is_enabled(course_key)
})
6 changes: 3 additions & 3 deletions lms/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -755,9 +755,9 @@
name='courseware_sidebar_enabled_view',
),
re_path(
fr'^courses/{settings.COURSE_ID_PATTERN}/discussion-sidebar/enabled/$',
courseware_views.courseware_mfe_discussion_sidebar_opening_is_enabled,
name='discussion_sidebar_enabled_view',
fr'^courses/{settings.COURSE_ID_PATTERN}/show-default-right-sidebar/enabled/$',
courseware_views.courseware_mfe_show_default_right_sidebar_is_enabled,
name='show_default_right_sidebar_enabled_view',
),
]

Expand Down

0 comments on commit 7a88d0f

Please sign in to comment.