Skip to content

Commit

Permalink
Merge pull request #23 from nelc/and/backport_taxonomy_tab
Browse files Browse the repository at this point in the history
feat: New link on studio home to Taxonomy list
  • Loading branch information
andrey-canon authored May 15, 2024
2 parents b22a2b8 + bcce1d7 commit 7696b70
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 1 deletion.
2 changes: 2 additions & 0 deletions cms/djangoapps/contentstore/rest_api/v1/serializers/home.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ class CourseHomeSerializer(serializers.Serializer):
in_process_course_actions = UnsucceededCourseSerializer(many=True, required=False, allow_null=True)
libraries = LibraryViewSerializer(many=True, required=False, allow_null=True)
libraries_enabled = serializers.BooleanField()
taxonomies_enabled = serializers.BooleanField()
library_authoring_mfe_url = serializers.CharField()
taxonomy_list_mfe_url = serializers.CharField()
optimization_enabled = serializers.BooleanField()
redirect_to_library_authoring_mfe = serializers.BooleanField()
request_course_creator_url = serializers.CharField()
Expand Down
17 changes: 16 additions & 1 deletion cms/djangoapps/contentstore/rest_api/v1/tests/test_home.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@
import json
from django.conf import settings
from django.urls import reverse
from edx_toggles.toggles.testutils import override_waffle_switch
from edx_toggles.toggles.testutils import (
override_waffle_switch,
override_waffle_flag,
)
from rest_framework import status

from cms.djangoapps.contentstore.tests.utils import CourseTestCase
from cms.djangoapps.contentstore.views.course import ENABLE_GLOBAL_STAFF_OPTIMIZATION
from cms.djangoapps.contentstore.toggles import ENABLE_TAGGING_TAXONOMY_LIST_PAGE
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from xmodule.modulestore.tests.django_utils import TEST_DATA_SPLIT_MODULESTORE
from xmodule.modulestore.tests.factories import CourseFactory
Expand Down Expand Up @@ -52,7 +56,9 @@ def test_home_page_response(self):
"in_process_course_actions": [],
"libraries": [],
"libraries_enabled": True,
"taxonomies_enabled": False,
"library_authoring_mfe_url": settings.LIBRARY_AUTHORING_MICROFRONTEND_URL,
"taxonomy_list_mfe_url": None,
"optimization_enabled": False,
"redirect_to_library_authoring_mfe": False,
"request_course_creator_url": "/request_course_creator",
Expand Down Expand Up @@ -90,3 +96,12 @@ def test_org_query_if_empty(self):
response = self.client.get(self.url)
self.assertEqual(len(response.data['courses']), 0)
self.assertEqual(response.status_code, status.HTTP_200_OK)

@override_waffle_flag(ENABLE_TAGGING_TAXONOMY_LIST_PAGE, True)
def test_taxonomy_list_link(self):
response = self.client.get(self.url)
self.assertTrue(response.data['taxonomies_enabled'])
self.assertEqual(
response.data['taxonomy_list_mfe_url'],
f'{settings.COURSE_AUTHORING_MICROFRONTEND_URL}/taxonomies'
)
18 changes: 18 additions & 0 deletions cms/djangoapps/contentstore/toggles.py
Original file line number Diff line number Diff line change
Expand Up @@ -414,3 +414,21 @@ def use_new_unit_page(course_key):
Returns a boolean if new studio course outline mfe is enabled
"""
return ENABLE_NEW_STUDIO_UNIT_PAGE.is_enabled(course_key)


# .. toggle_name: new_studio_mfe.use_tagging_taxonomy_list_page
# .. toggle_implementation: WaffleFlag
# .. toggle_default: False
# .. toggle_description: This flag enables the use of the taxonomy list page.
# .. toggle_use_cases: temporary
# .. toggle_creation_date: 2023-10-06
# .. toggle_target_removal_date: TBA
# .. toggle_warning:
ENABLE_TAGGING_TAXONOMY_LIST_PAGE = WaffleFlag('new_studio_mfe.use_tagging_taxonomy_list_page', __name__)


def use_tagging_taxonomy_list_page():
"""
Returns a boolean if taxonomy list page is enabled
"""
return ENABLE_TAGGING_TAXONOMY_LIST_PAGE.is_enabled()
15 changes: 15 additions & 0 deletions cms/djangoapps/contentstore/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
use_new_updates_page,
use_new_video_editor,
use_new_video_uploads_page,
use_tagging_taxonomy_list_page,
)
from xmodule.modulestore import ModuleStoreEnum # lint-amnesty, pylint: disable=wrong-import-order
from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disable=wrong-import-order
Expand Down Expand Up @@ -382,6 +383,18 @@ def get_unit_url(course_locator) -> str:
return unit_url


def get_taxonomy_list_url():
"""
Gets course authoring microfrontend URL for taxonomy list page view.
"""
taxonomy_list_url = None
if use_tagging_taxonomy_list_page():
mfe_base_url = settings.COURSE_AUTHORING_MICROFRONTEND_URL
if mfe_base_url:
taxonomy_list_url = f'{mfe_base_url}/taxonomies'
return taxonomy_list_url


def course_import_olx_validation_is_enabled():
"""
Check if course olx validation is enabled on course import.
Expand Down Expand Up @@ -1130,9 +1143,11 @@ def format_in_process_course_view(uca):
'archived_courses': archived_courses,
'in_process_course_actions': in_process_course_actions,
'libraries_enabled': LIBRARIES_ENABLED,
'taxonomies_enabled': use_tagging_taxonomy_list_page(),
'redirect_to_library_authoring_mfe': should_redirect_to_library_authoring_mfe(),
'library_authoring_mfe_url': LIBRARY_AUTHORING_MICROFRONTEND_URL,
'libraries': [_format_library_for_view(lib, request) for lib in libraries],
'taxonomy_list_mfe_url': get_taxonomy_list_url(),
'show_new_library_button': user_can_create_library(user) and not should_redirect_to_library_authoring_mfe(),
'user': user,
'request_course_creator_url': reverse('request_course_creator'),
Expand Down
3 changes: 3 additions & 0 deletions cms/templates/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,9 @@ <h3 class="course-title">${course_info['display_name']}</h3>
</li>
% endif
% endif
% if taxonomies_enabled:
<li><a href="${taxonomy_list_mfe_url}">${_("Taxonomies")}</li>
% endif
</ul>
% endif

Expand Down

0 comments on commit 7696b70

Please sign in to comment.