From c5cbbdf72e3d3eb0521b4f6fc8496b9fca99990b Mon Sep 17 00:00:00 2001 From: Tyler Hallada Date: Tue, 27 Feb 2018 14:09:43 -0500 Subject: [PATCH 1/2] No dynamic_upgrade_deadline in prof. courses --- common/djangoapps/student/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/djangoapps/student/models.py b/common/djangoapps/student/models.py index 5eb92f8a38..51339d4634 100644 --- a/common/djangoapps/student/models.py +++ b/common/djangoapps/student/models.py @@ -1726,7 +1726,7 @@ class CourseEnrollment(models.Model): log.debug('Schedules: Returning None since dynamic upgrade deadline has already passed.') return None - if self.verified_mode is None: + if self.verified_mode is None or CourseMode.is_professional_mode(self.verified_mode): log.debug('Schedules: Returning None for dynamic upgrade deadline since the course does not have a ' 'verified mode.') return None From 8fb26258e432ff466c3b190f8cf5c70dfb36f547 Mon Sep 17 00:00:00 2001 From: Tyler Hallada Date: Tue, 27 Feb 2018 14:42:33 -0500 Subject: [PATCH 2/2] Add a regression test --- common/djangoapps/student/tests/test_models.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/common/djangoapps/student/tests/test_models.py b/common/djangoapps/student/tests/test_models.py index d8422e0960..8829518fd3 100644 --- a/common/djangoapps/student/tests/test_models.py +++ b/common/djangoapps/student/tests/test_models.py @@ -179,3 +179,21 @@ class CourseEnrollmentTests(SharedModuleStoreTestCase): ScheduleFactory(enrollment=enrollment) self.assertIsNotNone(enrollment.schedule) self.assertEqual(enrollment.upgrade_deadline, course_upgrade_deadline) + + @skip_unless_lms + def test_upgrade_deadline_with_schedule_and_professional_mode(self): + """ + Deadline should be None for courses with professional mode. + + Regression test for EDUCATOR-2419. + """ + course = CourseFactory(self_paced=True) + CourseModeFactory( + course_id=course.id, + mode_slug=CourseMode.PROFESSIONAL, + ) + enrollment = CourseEnrollmentFactory(course_id=course.id, mode=CourseMode.AUDIT) + DynamicUpgradeDeadlineConfiguration.objects.create(enabled=True) + ScheduleFactory(enrollment=enrollment) + self.assertIsNotNone(enrollment.schedule) + self.assertIsNone(enrollment.upgrade_deadline)