TNL-7185: clean up unused html blobs from the API
Now that the MFE consumes our data structure for a couple of the alerts, we no longer need to send raw html at all for them.
This commit is contained in:
@@ -111,7 +111,6 @@ class OutlineTabSerializer(DatesBannerSerializerMixin, VerifiedModeSerializerMix
|
||||
"""
|
||||
access_expiration = serializers.DictField()
|
||||
course_blocks = CourseBlockSerializer()
|
||||
course_expired_html = serializers.CharField()
|
||||
course_goals = CourseGoalsSerializer()
|
||||
course_tools = CourseToolSerializer(many=True)
|
||||
dates_widget = DatesWidgetSerializer()
|
||||
@@ -119,6 +118,5 @@ class OutlineTabSerializer(DatesBannerSerializerMixin, VerifiedModeSerializerMix
|
||||
handouts_html = serializers.CharField()
|
||||
has_ended = serializers.BooleanField()
|
||||
offer = serializers.DictField()
|
||||
offer_html = serializers.CharField()
|
||||
resume_course = ResumeCourseSerializer()
|
||||
welcome_message_html = serializers.CharField()
|
||||
|
||||
@@ -171,11 +171,9 @@ class OutlineTabTestViews(BaseCourseHomeTests):
|
||||
|
||||
response = self.client.get(self.url)
|
||||
self.assertIsNone(response.data['offer'])
|
||||
self.assertIsNone(response.data['offer_html'])
|
||||
|
||||
with override_waffle_flag(DISCOUNT_APPLICABILITY_FLAG, active=True):
|
||||
response = self.client.get(self.url)
|
||||
self.assertIsNotNone(response.data['offer_html'])
|
||||
|
||||
# Just a quick spot check that the dictionary looks like what we expect
|
||||
self.assertEqual(response.data['offer']['code'], 'EDXWELCOME')
|
||||
@@ -188,11 +186,9 @@ class OutlineTabTestViews(BaseCourseHomeTests):
|
||||
|
||||
response = self.client.get(self.url)
|
||||
self.assertIsNone(response.data['access_expiration'])
|
||||
self.assertIsNone(response.data['course_expired_html'])
|
||||
|
||||
enrollment.update_enrollment(CourseMode.AUDIT)
|
||||
response = self.client.get(self.url)
|
||||
self.assertIsNotNone(response.data['course_expired_html'])
|
||||
|
||||
# Just a quick spot check that the dictionary looks like what we expect
|
||||
deadline = enrollment.created + MIN_DURATION
|
||||
@@ -297,8 +293,8 @@ class OutlineTabTestViews(BaseCourseHomeTests):
|
||||
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
|
||||
@override_waffle_flag(COURSE_HOME_MICROFRONTEND_OUTLINE_TAB, active=True)
|
||||
@override_waffle_flag(COURSE_ENABLE_UNENROLLED_ACCESS_FLAG, active=True)
|
||||
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_offer_html', new=Mock(return_value='<p>Offer</p>'))
|
||||
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_course_expired_message', new=Mock(return_value='<p>Expired</p>'))
|
||||
@patch('lms.djangoapps.course_home_api.outline.v1.views.generate_offer_data', new=Mock(return_value={'a': 1}))
|
||||
@patch('lms.djangoapps.course_home_api.outline.v1.views.get_access_expiration_data', new=Mock(return_value={'b': 1}))
|
||||
@ddt.data(*itertools.product([True, False], [True, False],
|
||||
[None, COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE]))
|
||||
@ddt.unpack
|
||||
@@ -329,8 +325,8 @@ class OutlineTabTestViews(BaseCourseHomeTests):
|
||||
data = self.client.get(self.url).data
|
||||
self.assertEqual(data['course_blocks'] is not None, show_enrolled or is_public or is_public_outline)
|
||||
self.assertEqual(data['handouts_html'] is not None, show_enrolled or is_public)
|
||||
self.assertEqual(data['offer_html'] is not None, show_enrolled)
|
||||
self.assertEqual(data['course_expired_html'] is not None, show_enrolled)
|
||||
self.assertEqual(data['offer'] is not None, show_enrolled)
|
||||
self.assertEqual(data['access_expiration'] is not None, show_enrolled)
|
||||
self.assertEqual(data['resume_course']['url'] is not None, show_enrolled)
|
||||
|
||||
@override_experiment_waffle_flag(COURSE_HOME_MICROFRONTEND, active=True)
|
||||
|
||||
@@ -30,14 +30,14 @@ from lms.djangoapps.courseware.courses import get_course_date_blocks, get_course
|
||||
from lms.djangoapps.courseware.date_summary import TodaysDate
|
||||
from lms.djangoapps.courseware.masquerade import setup_masquerade
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
from openedx.features.course_duration_limits.access import generate_course_expired_message, get_access_expiration_data
|
||||
from openedx.features.course_duration_limits.access import get_access_expiration_data
|
||||
from openedx.features.course_experience import COURSE_ENABLE_UNENROLLED_ACCESS_FLAG
|
||||
from openedx.features.course_experience.course_tools import CourseToolsPluginManager
|
||||
from openedx.features.course_experience.course_updates import (
|
||||
dismiss_current_update_for_user, get_current_update_for_user,
|
||||
)
|
||||
from openedx.features.course_experience.utils import get_course_outline_block_tree
|
||||
from openedx.features.discounts.utils import generate_offer_data, generate_offer_html
|
||||
from openedx.features.discounts.utils import generate_offer_data
|
||||
from common.djangoapps.student.models import CourseEnrollment
|
||||
from xmodule.course_module import COURSE_VISIBILITY_PUBLIC, COURSE_VISIBILITY_PUBLIC_OUTLINE
|
||||
from xmodule.modulestore.django import modulestore
|
||||
@@ -176,11 +176,8 @@ class OutlineTabView(RetrieveAPIView):
|
||||
show_handouts = show_enrolled or allow_public
|
||||
handouts_html = get_course_info_section(request, request.user, course, 'handouts') if show_handouts else ''
|
||||
|
||||
# TODO: TNL-7185 Legacy: Refactor to return the offer & expired data and format the message in the MFE
|
||||
offer_data = show_enrolled and generate_offer_data(request.user, course_overview)
|
||||
offer_html = show_enrolled and generate_offer_html(request.user, course_overview)
|
||||
access_expiration = show_enrolled and get_access_expiration_data(request.user, course_overview)
|
||||
course_expired_html = show_enrolled and generate_course_expired_message(request.user, course_overview)
|
||||
|
||||
welcome_message_html = show_enrolled and get_current_update_for_user(request, course)
|
||||
|
||||
@@ -259,7 +256,6 @@ class OutlineTabView(RetrieveAPIView):
|
||||
data = {
|
||||
'access_expiration': access_expiration or None,
|
||||
'course_blocks': course_blocks,
|
||||
'course_expired_html': course_expired_html or None,
|
||||
'course_goals': course_goals,
|
||||
'course_tools': course_tools,
|
||||
'dates_widget': dates_widget,
|
||||
@@ -267,7 +263,6 @@ class OutlineTabView(RetrieveAPIView):
|
||||
'handouts_html': handouts_html or None,
|
||||
'has_ended': course.has_ended(),
|
||||
'offer': offer_data or None,
|
||||
'offer_html': offer_html or None,
|
||||
'resume_course': resume_course,
|
||||
'welcome_message_html': welcome_message_html or None,
|
||||
}
|
||||
|
||||
@@ -81,7 +81,6 @@ class CourseInfoSerializer(serializers.Serializer): # pylint: disable=abstract-
|
||||
access_expiration = serializers.DictField()
|
||||
can_show_upgrade_sock = serializers.BooleanField()
|
||||
content_type_gating_enabled = serializers.BooleanField()
|
||||
course_expired_message = serializers.CharField()
|
||||
effort = serializers.CharField()
|
||||
end = serializers.DateTimeField()
|
||||
enrollment = serializers.DictField()
|
||||
@@ -93,7 +92,6 @@ class CourseInfoSerializer(serializers.Serializer): # pylint: disable=abstract-
|
||||
name = serializers.CharField(source='display_name_with_default_escaped')
|
||||
number = serializers.CharField(source='display_number_with_default')
|
||||
offer = serializers.DictField()
|
||||
offer_html = serializers.CharField()
|
||||
org = serializers.CharField(source='display_org_with_default')
|
||||
related_programs = CourseProgramSerializer(many=True)
|
||||
short_description = serializers.CharField()
|
||||
|
||||
@@ -40,8 +40,8 @@ from openedx.core.lib.api.view_utils import DeveloperErrorViewMixin
|
||||
from openedx.core.djangoapps.programs.utils import ProgramProgressMeter
|
||||
from openedx.features.course_experience import DISPLAY_COURSE_SOCK_FLAG
|
||||
from openedx.features.content_type_gating.models import ContentTypeGatingConfig
|
||||
from openedx.features.course_duration_limits.access import generate_course_expired_message, get_access_expiration_data
|
||||
from openedx.features.discounts.utils import generate_offer_data, generate_offer_html
|
||||
from openedx.features.course_duration_limits.access import get_access_expiration_data
|
||||
from openedx.features.discounts.utils import generate_offer_data
|
||||
from common.djangoapps.student.models import (
|
||||
CourseEnrollment, CourseEnrollmentCelebration, LinkedInAddToProfileConfiguration
|
||||
)
|
||||
@@ -123,20 +123,10 @@ class CoursewareMeta:
|
||||
def access_expiration(self):
|
||||
return get_access_expiration_data(self.effective_user, self.overview)
|
||||
|
||||
@property
|
||||
def course_expired_message(self):
|
||||
# TODO: TNL-7185 Legacy: Refactor to return the expiration date and format the message in the MFE
|
||||
return generate_course_expired_message(self.effective_user, self.overview)
|
||||
|
||||
@property
|
||||
def offer(self):
|
||||
return generate_offer_data(self.effective_user, self.overview)
|
||||
|
||||
@property
|
||||
def offer_html(self):
|
||||
# TODO: TNL-7185 Legacy: Refactor to return the offer data and format the message in the MFE
|
||||
return generate_offer_html(self.effective_user, self.overview)
|
||||
|
||||
@property
|
||||
def content_type_gating_enabled(self):
|
||||
return ContentTypeGatingConfig.enabled_for_enrollment(
|
||||
|
||||
Reference in New Issue
Block a user