From 7e91690a4d6096e6bb43e759e478aaede0459d1b Mon Sep 17 00:00:00 2001 From: Hitesh Kava Date: Tue, 18 Aug 2026 14:37:19 +0000 Subject: [PATCH 1/2] feat: add 14-day and 21-day audit expiry experiment variants --- lms/djangoapps/experiments/audit_expiry_urgency.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/experiments/audit_expiry_urgency.py b/lms/djangoapps/experiments/audit_expiry_urgency.py index bd34ad65f07b..861f1395096a 100644 --- a/lms/djangoapps/experiments/audit_expiry_urgency.py +++ b/lms/djangoapps/experiments/audit_expiry_urgency.py @@ -31,7 +31,9 @@ VARIANT_CONTROL = 'control_5_7_weeks' VARIANT_EXPIRY_7_DAYS = 'expiry_7_days' -VALID_VARIANTS = {VARIANT_CONTROL, VARIANT_EXPIRY_7_DAYS} +VARIANT_EXPIRY_14_DAYS = 'expiry_14_days' +VARIANT_EXPIRY_21_DAYS = 'expiry_21_days' +VALID_VARIANTS = {VARIANT_CONTROL, VARIANT_EXPIRY_7_DAYS, VARIANT_EXPIRY_14_DAYS, VARIANT_EXPIRY_21_DAYS} ATTRIBUTE_NAMESPACE = 'audit_expiry_experiment' ATTRIBUTE_NAME_EXPERIMENT_KEY = 'experiment_key' @@ -204,6 +206,12 @@ def compute_audit_expiry_at(enrollment, variant, access_duration): if variant == VARIANT_EXPIRY_7_DAYS: expiry_at = content_availability_date + timedelta(days=7) return expiry_at, 7 + elif variant == VARIANT_EXPIRY_14_DAYS: + expiry_at = content_availability_date + timedelta(days=14) + return expiry_at, 14 + elif variant == VARIANT_EXPIRY_21_DAYS: + expiry_at = content_availability_date + timedelta(days=21) + return expiry_at, 21 expiry_at = content_availability_date + access_duration return expiry_at, access_duration.days From f3e2f515f415f5bf6c82aec34a7a9cb26cbc65e6 Mon Sep 17 00:00:00 2001 From: Hitesh Kava Date: Tue, 18 Aug 2026 14:55:55 +0000 Subject: [PATCH 2/2] feat: remove 21 days variant --- lms/djangoapps/experiments/audit_expiry_urgency.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lms/djangoapps/experiments/audit_expiry_urgency.py b/lms/djangoapps/experiments/audit_expiry_urgency.py index 861f1395096a..0c662648d6ad 100644 --- a/lms/djangoapps/experiments/audit_expiry_urgency.py +++ b/lms/djangoapps/experiments/audit_expiry_urgency.py @@ -32,8 +32,7 @@ VARIANT_CONTROL = 'control_5_7_weeks' VARIANT_EXPIRY_7_DAYS = 'expiry_7_days' VARIANT_EXPIRY_14_DAYS = 'expiry_14_days' -VARIANT_EXPIRY_21_DAYS = 'expiry_21_days' -VALID_VARIANTS = {VARIANT_CONTROL, VARIANT_EXPIRY_7_DAYS, VARIANT_EXPIRY_14_DAYS, VARIANT_EXPIRY_21_DAYS} +VALID_VARIANTS = {VARIANT_CONTROL, VARIANT_EXPIRY_7_DAYS, VARIANT_EXPIRY_14_DAYS} ATTRIBUTE_NAMESPACE = 'audit_expiry_experiment' ATTRIBUTE_NAME_EXPERIMENT_KEY = 'experiment_key' @@ -209,9 +208,6 @@ def compute_audit_expiry_at(enrollment, variant, access_duration): elif variant == VARIANT_EXPIRY_14_DAYS: expiry_at = content_availability_date + timedelta(days=14) return expiry_at, 14 - elif variant == VARIANT_EXPIRY_21_DAYS: - expiry_at = content_availability_date + timedelta(days=21) - return expiry_at, 21 expiry_at = content_availability_date + access_duration return expiry_at, access_duration.days