From c4cedbae3884c368637044effc6dac8fb9907708 Mon Sep 17 00:00:00 2001 From: Chris Deery <3932645+cdeery@users.noreply.github.com> Date: Thu, 2 Sep 2021 08:32:56 -0400 Subject: [PATCH] fix: [AA-950] Change coupon flag from WaffleFlag to CourseWaffleFlag (#28623) Replacing the streak_celebration.discount_experiment_AA759 Waffle flag with courseware.streak_discount_enabled CourseWaffleFlag https://openedx.atlassian.net/browse/AA-950 Co-authored-by: cdeery --- .../course_metadata/tests/test_views.py | 4 ++-- lms/djangoapps/courseware/toggles.py | 15 +++++++++++++++ lms/djangoapps/experiments/utils.py | 14 -------------- .../djangoapps/courseware_api/tests/test_views.py | 4 ++-- openedx/core/djangoapps/courseware_api/utils.py | 4 ++-- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/lms/djangoapps/course_home_api/course_metadata/tests/test_views.py b/lms/djangoapps/course_home_api/course_metadata/tests/test_views.py index 7430f5cc62..ec46eef5c6 100644 --- a/lms/djangoapps/course_home_api/course_metadata/tests/test_views.py +++ b/lms/djangoapps/course_home_api/course_metadata/tests/test_views.py @@ -16,7 +16,7 @@ from lms.djangoapps.courseware.toggles import ( from common.djangoapps.student.models import CourseEnrollment from common.djangoapps.student.tests.factories import UserFactory from lms.djangoapps.course_home_api.tests.utils import BaseCourseHomeTests -from lms.djangoapps.experiments.utils import STREAK_DISCOUNT_FLAG +from lms.djangoapps.courseware.toggles import COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT @ddt.ddt @@ -85,7 +85,7 @@ class CourseHomeMetadataTests(BaseCourseHomeTests): def test_streak_data_in_response(self): """ Test that metadata endpoint returns data for the streak celebration """ CourseEnrollment.enroll(self.user, self.course.id, 'audit') - with override_waffle_flag(STREAK_DISCOUNT_FLAG, active=True): + with override_waffle_flag(COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT, active=True): with mock.patch('common.djangoapps.student.models.UserCelebration.perform_streak_updates', return_value=3): response = self.client.get(self.url, content_type='application/json') celebrations = response.json()['celebrations'] diff --git a/lms/djangoapps/courseware/toggles.py b/lms/djangoapps/courseware/toggles.py index e1c6109654..48f9bee91e 100644 --- a/lms/djangoapps/courseware/toggles.py +++ b/lms/djangoapps/courseware/toggles.py @@ -85,6 +85,21 @@ COURSEWARE_MICROFRONTEND_PROGRESS_MILESTONES_STREAK_CELEBRATION = CourseWaffleFl WAFFLE_FLAG_NAMESPACE, 'mfe_progress_milestones_streak_celebration', __name__ ) +# .. toggle_name: courseware.mfe_progress_milestones_streak_discount_enabled +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: This flag enables an engagement discount incentive message. +# .. toggle_warnings: This flag depends on the streak celebration feature being enabled +# .. toggle_use_cases: opt_out, open_edx +# .. toggle_creation_date: 2021-08-26 +# .. toggle_target_removal_date: None +# .. toggle_tickets: https://openedx.atlassian.net/browse/AA-950 +COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT = CourseWaffleFlag( + WAFFLE_FLAG_NAMESPACE, 'streak_discount_enabled', + __name__, +) + + # .. toggle_name: courseware.optimized_render_xblock # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False diff --git a/lms/djangoapps/experiments/utils.py b/lms/djangoapps/experiments/utils.py index dc5aaa6047..9aa22ef931 100644 --- a/lms/djangoapps/experiments/utils.py +++ b/lms/djangoapps/experiments/utils.py @@ -69,20 +69,6 @@ UPSELL_TRACKING_FLAG = WaffleFlag( ) # TODO END: Clean up as part of REV-1205 (End) -# .. toggle_name: streak_celebration.streak_discount_enabled -# .. toggle_implementation: WaffleFlag -# .. toggle_default: False -# .. toggle_description: This flag enables an engagement discount incentive message. -# .. toggle_warnings: This flag depends on the streak celebration feature being enabled -# .. toggle_use_cases: opt_out, open_edx -# .. toggle_creation_date: 2021-08-26 -# .. toggle_target_removal_date: None -# .. toggle_tickets: https://openedx.atlassian.net/browse/AA-950 -STREAK_DISCOUNT_FLAG = WaffleFlag( - 'streak_celebration.streak_discount_enabled', - __name__, -) - def check_and_get_upgrade_link_and_date(user, enrollment=None, course=None): """ diff --git a/openedx/core/djangoapps/courseware_api/tests/test_views.py b/openedx/core/djangoapps/courseware_api/tests/test_views.py index d3b463af10..00e0f89511 100644 --- a/openedx/core/djangoapps/courseware_api/tests/test_views.py +++ b/openedx/core/djangoapps/courseware_api/tests/test_views.py @@ -29,7 +29,7 @@ from lms.djangoapps.courseware.toggles import ( COURSEWARE_MICROFRONTEND_SPECIAL_EXAMS, COURSEWARE_MICROFRONTEND_PROCTORED_EXAMS, ) -from lms.djangoapps.experiments.utils import STREAK_DISCOUNT_FLAG +from lms.djangoapps.courseware.toggles import COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT from lms.djangoapps.verify_student.services import IDVerificationService from common.djangoapps.student.models import ( CourseEnrollment, CourseEnrollmentCelebration @@ -301,7 +301,7 @@ class CourseApiTestViews(BaseCoursewareTests, MasqueradeMixin): def test_streak_data_in_response(self): """ Test that metadata endpoint returns data for the streak celebration """ CourseEnrollment.enroll(self.user, self.course.id, 'audit') - with override_waffle_flag(STREAK_DISCOUNT_FLAG, active=True): + with override_waffle_flag(COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT, active=True): with mock.patch('common.djangoapps.student.models.UserCelebration.perform_streak_updates', return_value=3): response = self.client.get(self.url, content_type='application/json') celebrations = response.json()['celebrations'] diff --git a/openedx/core/djangoapps/courseware_api/utils.py b/openedx/core/djangoapps/courseware_api/utils.py index fcd0ba3e5d..4823315692 100644 --- a/openedx/core/djangoapps/courseware_api/utils.py +++ b/openedx/core/djangoapps/courseware_api/utils.py @@ -7,7 +7,7 @@ from babel.numbers import get_currency_symbol from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.student.models import CourseEnrollmentCelebration, UserCelebration from lms.djangoapps.courseware.utils import can_show_verified_upgrade, verified_upgrade_deadline_link -from lms.djangoapps.experiments.utils import STREAK_DISCOUNT_FLAG +from lms.djangoapps.courseware.toggles import COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT from openedx.features.course_duration_limits.access import get_user_course_expiration_date from openedx.features.discounts.applicability import can_show_streak_discount_coupon from common.djangoapps.track import segment @@ -37,7 +37,7 @@ def get_celebrations_dict(user, enrollment, course, browser_timezone): # We only want to offer the streak discount # if the course has not ended, is upgradeable and the user is not an enterprise learner if can_show_streak_discount_coupon(user, course): - celebrations['streak_discount_enabled'] = STREAK_DISCOUNT_FLAG.is_enabled() + celebrations['streak_discount_enabled'] = COURSEWARE_MFE_MILESTONES_STREAK_DISCOUNT.is_enabled() # Send course streak coupon event course_key = str(course.id)