This includes (at least) upcoming assignments, FBE access expiration, and course end date. AA-4
57 lines
1.7 KiB
Python
57 lines
1.7 KiB
Python
"""Utility functions that have to do with the courseware."""
|
|
|
|
|
|
import datetime
|
|
|
|
from lms.djangoapps.commerce.utils import EcommerceService
|
|
from pytz import utc
|
|
|
|
from course_modes.models import CourseMode
|
|
|
|
|
|
def verified_upgrade_deadline_link(user, course=None, course_id=None):
|
|
"""
|
|
Format the correct verified upgrade link for the specified ``user``
|
|
in a course.
|
|
|
|
One of ``course`` or ``course_id`` must be supplied. If both are specified,
|
|
``course`` will take priority.
|
|
|
|
Arguments:
|
|
user (:class:`~django.contrib.auth.models.User`): The user to display
|
|
the link for.
|
|
course (:class:`.CourseOverview`): The course to render a link for.
|
|
course_id (:class:`.CourseKey`): The course_id of the course to render for.
|
|
|
|
Returns:
|
|
The formatted link that will allow the user to upgrade to verified
|
|
in this course.
|
|
"""
|
|
if course is not None:
|
|
course_id = course.id
|
|
return EcommerceService().upgrade_url(user, course_id)
|
|
|
|
|
|
def verified_upgrade_link_is_valid(enrollment=None):
|
|
"""
|
|
Return whether this enrollment can be upgraded.
|
|
|
|
Arguments:
|
|
enrollment (:class:`.CourseEnrollment`): The enrollment under consideration.
|
|
If None, then the enrollment is considered to be upgradeable.
|
|
"""
|
|
# Return `true` if user is not enrolled in course
|
|
if enrollment is None:
|
|
return False
|
|
|
|
upgrade_deadline = enrollment.upgrade_deadline
|
|
|
|
if upgrade_deadline is None:
|
|
return False
|
|
|
|
if datetime.datetime.now(utc).date() > upgrade_deadline.date():
|
|
return False
|
|
|
|
# Show the summary if user enrollment is in which allow user to upsell
|
|
return enrollment.is_active and enrollment.mode in CourseMode.UPSELL_TO_VERIFIED_MODES
|