From 98eb51674573c3c3d2cd5072fed4bb70477b17cc Mon Sep 17 00:00:00 2001 From: Matthew Piatetsky Date: Fri, 28 May 2021 15:50:29 -0400 Subject: [PATCH] feat: add debugging logs to help figure out why experiment isn't activating in production --- openedx/core/djangoapps/courseware_api/utils.py | 6 ++++++ openedx/features/discounts/applicability.py | 13 ++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/openedx/core/djangoapps/courseware_api/utils.py b/openedx/core/djangoapps/courseware_api/utils.py index 4c23c701fd..4861cd88e9 100644 --- a/openedx/core/djangoapps/courseware_api/utils.py +++ b/openedx/core/djangoapps/courseware_api/utils.py @@ -2,6 +2,8 @@ Courseware API Mixins. """ +import logging + from babel.numbers import get_currency_symbol from common.djangoapps.course_modes.models import CourseMode @@ -11,6 +13,8 @@ from lms.djangoapps.experiments.utils import STREAK_DISCOUNT_EXPERIMENT_FLAG from openedx.features.course_duration_limits.access import get_user_course_expiration_date from openedx.features.discounts.applicability import can_show_streak_discount_experiment_coupon +log = logging.getLogger(__name__) + def get_celebrations_dict(user, enrollment, course, browser_timezone): """ @@ -34,10 +38,12 @@ def get_celebrations_dict(user, enrollment, course, browser_timezone): # We only want to bucket people into the AA-759 experiment if they are going to see the streak celebration if streak_length_to_celebrate: + log.info('AA759debug 0') # We only want to bucket people into the AA-759 experiment # if the course has not ended, is upgradeable and the user is not an enterprise learner if can_show_streak_discount_experiment_coupon(user, course): celebrations['streak_discount_experiment_enabled'] = STREAK_DISCOUNT_EXPERIMENT_FLAG.is_enabled() + log.info('AA759debug 8 %s %s', user.username, celebrations['streak_discount_experiment_enabled']) return celebrations diff --git a/openedx/features/discounts/applicability.py b/openedx/features/discounts/applicability.py index f9f48908cf..584e110aa4 100644 --- a/openedx/features/discounts/applicability.py +++ b/openedx/features/discounts/applicability.py @@ -11,6 +11,7 @@ not other discounts like coupons or enterprise/program offers configured in ecom from datetime import datetime, timedelta +import logging import pytz from crum import get_current_request, impersonate from django.utils import timezone @@ -44,6 +45,8 @@ DISCOUNT_APPLICABILITY_FLAG = LegacyWaffleFlag( DISCOUNT_APPLICABILITY_HOLDBACK = 'first_purchase_discount_holdback' REV1008_EXPERIMENT_ID = 16 +log = logging.getLogger(__name__) + def get_discount_expiration_date(user, course): """ @@ -51,17 +54,19 @@ def get_discount_expiration_date(user, course): Returns none if the user is not enrolled. """ # anonymous users should never get the discount + log.info('AA759debug 1 %s', user.username) if user.is_anonymous: return None - + log.info('AA759debug 2 %s', user.username) course_enrollment = CourseEnrollment.objects.filter( user=user, course=course.id, mode__in=CourseMode.UPSELL_TO_VERIFIED_MODES ) + log.info('AA759debug 3 %s', user.username) if len(course_enrollment) != 1: return None - + log.info('AA759debug 4 %s', user.username) time_limit_start = None try: saw_banner = ExperimentData.objects.get(user=user, experiment_id=REV1008_EXPERIMENT_ID, key=str(course.id)) @@ -69,6 +74,7 @@ def get_discount_expiration_date(user, course): except ExperimentData.DoesNotExist: return None + log.info('AA759debug 5 %s', user.username) discount_expiration_date = time_limit_start + timedelta(weeks=1) # If the course has an upgrade deadline and discount time limit would put the discount expiration date @@ -76,10 +82,11 @@ def get_discount_expiration_date(user, course): verified_mode = CourseMode.verified_mode_for_course(course=course, include_expired=True) if not verified_mode: return None + log.info('AA759debug 6 %s', user.username) upgrade_deadline = verified_mode.expiration_datetime if upgrade_deadline and discount_expiration_date > upgrade_deadline: discount_expiration_date = upgrade_deadline - + log.info('AA759debug 7 %s', user.username) return discount_expiration_date