From 4aba1b21a17d53f8eef868c0640d045a59ed1f42 Mon Sep 17 00:00:00 2001 From: Christie Rice <8483753+crice100@users.noreply.github.com> Date: Tue, 11 Jun 2019 09:05:06 -0400 Subject: [PATCH] REVEM-372 Remove add_audit_deadline and deprecated_metadata waffle flags (#20769) --- lms/djangoapps/experiments/utils.py | 161 +--------------------------- 1 file changed, 3 insertions(+), 158 deletions(-) diff --git a/lms/djangoapps/experiments/utils.py b/lms/djangoapps/experiments/utils.py index f1aeba1304..42c0fbae35 100644 --- a/lms/djangoapps/experiments/utils.py +++ b/lms/djangoapps/experiments/utils.py @@ -65,40 +65,6 @@ DASHBOARD_INFO_FLAG = WaffleFlag(experiments_namespace, flag_undefined_default=True) # TODO END: clean up as part of REVEM-199 (End) -# .. toggle_name: experiments.add_audit_deadline -# .. toggle_type: feature_flag -# .. toggle_default: True -# .. toggle_description: Toggle for adding the current course's audit deadline -# .. toggle_category: experiments -# .. toggle_use_cases: monitored_rollout -# .. toggle_creation_date: 2019-5-7 -# .. toggle_expiration_date: None -# .. toggle_warnings: None -# .. toggle_tickets: REVEM-329 -# .. toggle_status: supported -AUDIT_DEADLINE_FLAG = WaffleFlag( - waffle_namespace=experiments_namespace, - flag_name=u'add_audit_deadline', - flag_undefined_default=True -) - -# .. toggle_name: experiments.deprecated_metadata -# .. toggle_type: feature_flag -# .. toggle_default: True -# .. toggle_description: Toggle for using the deprecated method for calculating user metadata -# .. toggle_category: experiments -# .. toggle_use_cases: monitored_rollout -# .. toggle_creation_date: 2019-5-8 -# .. toggle_expiration_date: None -# .. toggle_warnings: None -# .. toggle_tickets: REVEM-350 -# .. toggle_status: supported -DEPRECATED_METADATA = WaffleFlag( - waffle_namespace=experiments_namespace, - flag_name=u'deprecated_metadata', - flag_undefined_default=False -) - def check_and_get_upgrade_link_and_date(user, enrollment=None, course=None): """ @@ -288,9 +254,6 @@ def get_experiment_user_metadata_context(course, user): """ Return a context dictionary with the keys used by the user_metadata.html. """ - if DEPRECATED_METADATA.is_enabled(): - return get_deprecated_experiment_user_metadata_context(course, user) - enrollment = None # TODO: clean up as part of REVO-28 (START) user_enrollments = None @@ -329,122 +292,6 @@ def get_experiment_user_metadata_context(course, user): return context -# pylint: disable=too-many-statements -def get_deprecated_experiment_user_metadata_context(course, user): - """ - Return a context dictionary with the keys used by the user_metadata.html. This is deprecated and will be removed - once we have confirmed that its replacement functions as intended. - """ - enrollment_mode = None - enrollment_time = None - enrollment = None - # TODO: clean up as part of REVO-28 (START) - has_non_audit_enrollments = None - # TODO: clean up as part of REVO-28 (END) - # TODO: clean up as part of REVEM-199 (START) - program_key = None - # TODO: clean up as part of REVEM-199 (END) - try: - # TODO: clean up as part of REVO-28 (START) - user_enrollments = CourseEnrollment.objects.select_related('course').filter(user_id=user.id) - audit_enrollments = user_enrollments.filter(mode='audit') - has_non_audit_enrollments = (len(audit_enrollments) != len(user_enrollments)) - # TODO: clean up as part of REVO-28 (END) - # TODO: clean up as part of REVEM-199 (START) - if PROGRAM_INFO_FLAG.is_enabled(): - programs = get_programs(course=course.id) - if programs: - # A course can be in multiple programs, but we're just grabbing the first one - program = programs[0] - complete_enrollment = False - has_courses_left_to_purchase = False - total_courses = None - courses = program.get('courses') - courses_left_to_purchase_price = None - courses_left_to_purchase_url = None - program_uuid = program.get('uuid') - status = None - is_eligible_for_one_click_purchase = None - if courses is not None: - total_courses = len(courses) - complete_enrollment = is_enrolled_in_all_courses(courses, user_enrollments) - status = program.get('status') - is_eligible_for_one_click_purchase = program.get('is_program_eligible_for_one_click_purchase') - # Get the price and purchase URL of the program courses the user has yet to purchase. Say a - # program has 3 courses (A, B and C), and the user previously purchased a certificate for A. - # The user is enrolled in audit mode for B. The "left to purchase price" should be the price of - # B+C. - non_audit_enrollments = [en for en in user_enrollments if en not in - audit_enrollments] - courses_left_to_purchase = get_unenrolled_courses(courses, non_audit_enrollments) - if courses_left_to_purchase: - has_courses_left_to_purchase = True - if is_eligible_for_one_click_purchase: - courses_left_to_purchase_price, courses_left_to_purchase_skus = \ - get_program_price_and_skus(courses_left_to_purchase) - if courses_left_to_purchase_skus: - courses_left_to_purchase_url = EcommerceService().get_checkout_page_url( - *courses_left_to_purchase_skus, program_uuid=program_uuid) - - program_key = { - 'uuid': program_uuid, - 'title': program.get('title'), - 'marketing_url': program.get('marketing_url'), - 'status': status, - 'is_eligible_for_one_click_purchase': is_eligible_for_one_click_purchase, - 'total_courses': total_courses, - 'complete_enrollment': complete_enrollment, - 'has_courses_left_to_purchase': has_courses_left_to_purchase, - 'courses_left_to_purchase_price': courses_left_to_purchase_price, - 'courses_left_to_purchase_url': courses_left_to_purchase_url, - } - # TODO: clean up as part of REVEM-199 (END) - enrollment = CourseEnrollment.objects.select_related( - 'course' - ).get(user_id=user.id, course_id=course.id) - if enrollment.is_active: - enrollment_mode = enrollment.mode - enrollment_time = enrollment.created - except CourseEnrollment.DoesNotExist: - pass # Not enrolled, used the default None values - - # upgrade_link and upgrade_date should be None if user has passed their dynamic pacing deadline. - upgrade_link, upgrade_date = check_and_get_upgrade_link_and_date(user, enrollment, course) - has_staff_access = has_staff_access_to_preview_mode(user, course.id) - forum_roles = [] - if user.is_authenticated: - forum_roles = list(Role.objects.filter(users=user, course_id=course.id).values_list('name').distinct()) - - # get user partition data - if user.is_authenticated(): - partition_groups = get_all_partitions_for_course(course) - user_partitions = get_user_partition_groups(course.id, partition_groups, user, 'name') - else: - user_partitions = {} - - return { - 'upgrade_link': upgrade_link, - 'upgrade_price': six.text_type(get_cosmetic_verified_display_price(course)), - 'enrollment_mode': enrollment_mode, - 'enrollment_time': enrollment_time, - 'pacing_type': 'self_paced' if course.self_paced else 'instructor_paced', - 'upgrade_deadline': upgrade_date, - 'audit_access_deadline': get_audit_access_expiration(user, course), - 'course_key': course.id, - 'course_start': course.start, - 'course_end': course.end, - 'has_staff_access': has_staff_access, - 'forum_roles': forum_roles, - 'partition_groups': user_partitions, - # TODO: clean up as part of REVO-28 (START) - 'has_non_audit_enrollments': has_non_audit_enrollments, - # TODO: clean up as part of REVO-28 (END) - # TODO: clean up as part of REVEM-199 (START) - 'program_key_fields': program_key, - # TODO: clean up as part of REVEM-199 (END) - } - - def get_base_experiment_metadata_context(course, user, enrollment, user_enrollments, audit_enrollments): """ Return a context dictionary with the keys used by dashboard_metadata.html and user_metadata.html @@ -482,12 +329,10 @@ def get_audit_access_expiration(user, course): """ Return the expiration date for the user's audit access to this course. """ - if AUDIT_DEADLINE_FLAG.is_enabled(): - if not CourseDurationLimitConfig.enabled_for_enrollment(user=user, course_key=course.id): - return None + if not CourseDurationLimitConfig.enabled_for_enrollment(user=user, course_key=course.id): + return None - return get_user_course_expiration_date(user, course) - return None + return get_user_course_expiration_date(user, course) # TODO: clean up as part of REVEM-199 (START)