feat: Tagging UX refinements - refresh tag count on edit (#34059)
* style: drawer-cover color updated for all tagging drawers * feat: Update TagList component when a tag is updated on Manage tags drawer * feat: Refactor TagCount to be able to refresh the count * feat: Sync tag count in units
This commit is contained in:
@@ -49,7 +49,6 @@ from cms.djangoapps.contentstore.utils import (
|
||||
delete_course,
|
||||
reverse_course_url,
|
||||
reverse_url,
|
||||
get_taxonomy_tags_widget_url,
|
||||
)
|
||||
from cms.djangoapps.contentstore.views.component import ADVANCED_COMPONENT_TYPES
|
||||
from common.djangoapps.course_action_state.managers import CourseActionStateItemNotFoundError
|
||||
@@ -1416,15 +1415,12 @@ class ContentStoreTest(ContentStoreTestCase):
|
||||
course.location.course_key
|
||||
)
|
||||
|
||||
taxonomy_tags_widget_url = get_taxonomy_tags_widget_url(course.id)
|
||||
|
||||
self.assertContains(
|
||||
resp,
|
||||
'<article class="outline outline-complex outline-course" data-locator="{locator}" data-course-key="{course_key}" data-course-assets="{assets_url}" data-taxonomy-tags-widget-url="{taxonomy_tags_widget_url}" >'.format( # lint-amnesty, pylint: disable=line-too-long
|
||||
'<article class="outline outline-complex outline-course" data-locator="{locator}" data-course-key="{course_key}" data-course-assets="{assets_url}" >'.format( # lint-amnesty, pylint: disable=line-too-long
|
||||
locator=str(course.location),
|
||||
course_key=str(course.id),
|
||||
assets_url=assets_url,
|
||||
taxonomy_tags_widget_url=taxonomy_tags_widget_url,
|
||||
),
|
||||
status_code=200,
|
||||
html=True
|
||||
|
||||
@@ -315,6 +315,7 @@ def _studio_wrap_xblock(xblock, view, frag, context, display_name_only=False):
|
||||
'is_reorderable': is_reorderable,
|
||||
'can_edit': can_edit,
|
||||
'can_edit_visibility': context.get('can_edit_visibility', is_course),
|
||||
'course_authoring_url': settings.COURSE_AUTHORING_MICROFRONTEND_URL,
|
||||
'is_loading': context.get('is_loading', False),
|
||||
'is_selected': context.get('is_selected', False),
|
||||
'selectable': context.get('selectable', False),
|
||||
|
||||
@@ -288,15 +288,9 @@ class GetItemTest(ItemTest):
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
usage_key = self.response_usage_key(resp)
|
||||
|
||||
# Get the preview HTML without tags
|
||||
mock_get_object_tag_counts.return_value = {}
|
||||
html, __ = self._get_container_preview(root_usage_key)
|
||||
self.assertIn("wrapper-xblock", html)
|
||||
self.assertNotIn('data-testid="tag-count-button"', html)
|
||||
|
||||
# Get the preview HTML with tags
|
||||
mock_get_object_tag_counts.return_value = {
|
||||
str(usage_key): 13
|
||||
str(usage_key): 13,
|
||||
}
|
||||
html, __ = self._get_container_preview(root_usage_key)
|
||||
self.assertIn("wrapper-xblock", html)
|
||||
|
||||
@@ -1206,6 +1206,7 @@ def create_xblock_info( # lint-amnesty, pylint: disable=too-many-statements
|
||||
xblock_info["tags"] = tags
|
||||
if use_tagging_taxonomy_list_page():
|
||||
xblock_info["taxonomy_tags_widget_url"] = get_taxonomy_tags_widget_url()
|
||||
xblock_info["course_authoring_url"] = settings.COURSE_AUTHORING_MICROFRONTEND_URL
|
||||
|
||||
if course_outline:
|
||||
if xblock_info["has_explicit_staff_lock"]:
|
||||
|
||||
Reference in New Issue
Block a user