Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
edx-platform-release
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Admin message
code.vt.edu will be down for maintenance from 0530-0630 EDT Wednesday, March 26th
Show more breadcrumbs
Hsin-Yu Chien
edx-platform-release
Commits
4aba1b21
Unverified
Commit
4aba1b21
authored
5 years ago
by
Christie Rice
Committed by
GitHub
5 years ago
Browse files
Options
Downloads
Patches
Plain Diff
REVEM-372 Remove add_audit_deadline and deprecated_metadata waffle flags (#20769)
parent
1198e5f2
Branches
Branches containing commit
Tags
release-2020-05-28-17.35
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
lms/djangoapps/experiments/utils.py
+3
-158
3 additions, 158 deletions
lms/djangoapps/experiments/utils.py
with
3 additions
and
158 deletions
lms/djangoapps/experiments/utils.py
+
3
−
158
View file @
4aba1b21
...
...
@@ -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)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment