Commit 5c883993 by Diana Huang

Merge pull request #1363 from edx/diana/course-mode-expiration

Course Modes Expiration
parents 7cfe279f 3cfaa6de
...@@ -5,6 +5,9 @@ These are notable changes in edx-platform. This is a rolling list of changes, ...@@ -5,6 +5,9 @@ These are notable changes in edx-platform. This is a rolling list of changes,
in roughly chronological order, most recent first. Add your entries at or near in roughly chronological order, most recent first. Add your entries at or near
the top. Include a label indicating the component affected. the top. Include a label indicating the component affected.
LMS: Fix issue with CourseMode expiration dates
LMS: Add PaidCourseRegistration mode, where payment is required before course registration. LMS: Add PaidCourseRegistration mode, where payment is required before course registration.
LMS: Add split testing functionality for internal use. LMS: Add split testing functionality for internal use.
......
...@@ -55,8 +55,8 @@ class CourseMode(models.Model): ...@@ -55,8 +55,8 @@ class CourseMode(models.Model):
""" """
now = datetime.now(pytz.UTC) now = datetime.now(pytz.UTC)
found_course_modes = cls.objects.filter(Q(course_id=course_id) & found_course_modes = cls.objects.filter(Q(course_id=course_id) &
Q(expiration_date__isnull=True) | (Q(expiration_date__isnull=True) |
Q(expiration_date__gte=now)) Q(expiration_date__gte=now)))
modes = ([Mode(mode.mode_slug, mode.mode_display_name, mode.min_price, mode.suggested_prices, mode.currency) modes = ([Mode(mode.mode_slug, mode.mode_display_name, mode.min_price, mode.suggested_prices, mode.currency)
for mode in found_course_modes]) for mode in found_course_modes])
if not modes: if not modes:
......
...@@ -102,3 +102,12 @@ class CourseModeModelTest(TestCase): ...@@ -102,3 +102,12 @@ class CourseModeModelTest(TestCase):
self.create_mode(mode1.slug, mode1.name, mode1.min_price, mode1.suggested_prices) self.create_mode(mode1.slug, mode1.name, mode1.min_price, mode1.suggested_prices)
modes = CourseMode.modes_for_course(self.course_id) modes = CourseMode.modes_for_course(self.course_id)
self.assertEqual([mode1], modes) self.assertEqual([mode1], modes)
expired_mode.expiration_date = datetime.now(pytz.UTC) + timedelta(days=1)
expired_mode.save()
expired_mode_value = Mode(u'verified', u'Verified Certificate', 0, '', 'usd')
modes = CourseMode.modes_for_course(self.course_id)
self.assertEqual([expired_mode_value, mode1], modes)
modes = CourseMode.modes_for_course('second_test_course')
self.assertEqual([CourseMode.DEFAULT_MODE], modes)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment