Merge pull request #19471 from edx/cstenson/upgrade_link_refactor
Refactor verified_upgrade_link_is_valid to directly call Ecom service
This commit is contained in:
@@ -133,8 +133,7 @@ class EcommerceService(object):
|
||||
"""
|
||||
Returns the URL for the user to upgrade, or None if not applicable.
|
||||
"""
|
||||
enrollment = CourseEnrollment.get_enrollment(user, course_key)
|
||||
verified_mode = enrollment.verified_mode if enrollment else None
|
||||
verified_mode = CourseMode.verified_mode_for_course(course_key)
|
||||
if verified_mode:
|
||||
if self.is_enabled(user):
|
||||
return self.get_checkout_page_url(verified_mode.sku)
|
||||
|
||||
@@ -402,20 +402,7 @@ def verified_upgrade_deadline_link(user, course=None, course_id=None):
|
||||
"""
|
||||
if course is not None:
|
||||
course_id = course.id
|
||||
|
||||
ecommerce_service = EcommerceService()
|
||||
if ecommerce_service.is_enabled(user):
|
||||
course_mode = CourseMode.verified_mode_for_course(course_id)
|
||||
if course_mode is not None:
|
||||
return ecommerce_service.get_checkout_page_url(course_mode.sku)
|
||||
else:
|
||||
raise CourseModeNotFoundException('Cannot generate a verified upgrade link without a valid verified mode'
|
||||
' for course {}'.format(unicode(course_id)))
|
||||
return reverse('verify_student_upgrade_and_verify', args=(course_id,))
|
||||
|
||||
|
||||
class CourseModeNotFoundException(Exception):
|
||||
pass
|
||||
return EcommerceService().upgrade_url(user, course_id)
|
||||
|
||||
|
||||
def verified_upgrade_link_is_valid(enrollment=None):
|
||||
|
||||
@@ -1706,6 +1706,10 @@ class ProgressPageTests(ProgressPageBaseTests):
|
||||
CourseDurationLimitConfig.objects.create(enabled=False)
|
||||
user = UserFactory.create()
|
||||
self.assertTrue(self.client.login(username=user.username, password='test'))
|
||||
CourseModeFactory.create(
|
||||
course_id=self.course.id,
|
||||
mode_slug=course_mode
|
||||
)
|
||||
CourseEnrollmentFactory(user=user, course_id=self.course.id, mode=course_mode)
|
||||
|
||||
response = self._get_progress_page()
|
||||
|
||||
@@ -14,6 +14,10 @@ def check_and_get_upgrade_link_and_date(user, enrollment=None, course=None):
|
||||
"""
|
||||
For an authenticated user, return a link to allow them to upgrade
|
||||
in the specified course.
|
||||
|
||||
Returns the upgrade link and upgrade deadline for a user in a given course given
|
||||
that the user is within the window to upgrade defined by our dynamic pacing feature;
|
||||
otherwise, returns None for both the link and date.
|
||||
"""
|
||||
if enrollment is None and course is None:
|
||||
raise ValueError("Must specify either an enrollment or a course")
|
||||
@@ -68,6 +72,7 @@ def get_experiment_user_metadata_context(course, user):
|
||||
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 = []
|
||||
|
||||
Reference in New Issue
Block a user