From 26303580a5d65b17a20a5e1d2e24f74833fdc362 Mon Sep 17 00:00:00 2001 From: Gabe Mulley Date: Fri, 17 Nov 2017 13:28:31 -0500 Subject: [PATCH] update schedule start when course start date changes --- openedx/core/djangoapps/schedules/signals.py | 24 +++++++++---------- .../schedules/tests/test_signals.py | 4 ++-- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/openedx/core/djangoapps/schedules/signals.py b/openedx/core/djangoapps/schedules/signals.py index d94966a4b4..2e57795622 100644 --- a/openedx/core/djangoapps/schedules/signals.py +++ b/openedx/core/djangoapps/schedules/signals.py @@ -89,19 +89,17 @@ def update_schedules_on_course_start_changed(sender, updated_course_overview, pr Updates all course schedules if course hasn't started yet and the updated start date is still in the future. """ - current_time = timezone.now() - if previous_start_date > current_time and updated_course_overview.start > current_time: - upgrade_deadline = _calculate_upgrade_deadline( - updated_course_overview.id, - content_availability_date=updated_course_overview.start, - ) - update_course_schedules.apply_async( - kwargs=dict( - course_id=unicode(updated_course_overview.id), - new_start_date_str=date.serialize(updated_course_overview.start), - new_upgrade_deadline_str=date.serialize(upgrade_deadline), - ), - ) + upgrade_deadline = _calculate_upgrade_deadline( + updated_course_overview.id, + content_availability_date=updated_course_overview.start, + ) + update_course_schedules.apply_async( + kwargs=dict( + course_id=unicode(updated_course_overview.id), + new_start_date_str=date.serialize(updated_course_overview.start), + new_upgrade_deadline_str=date.serialize(upgrade_deadline), + ), + ) def _calculate_upgrade_deadline(course_id, content_availability_date): diff --git a/openedx/core/djangoapps/schedules/tests/test_signals.py b/openedx/core/djangoapps/schedules/tests/test_signals.py index e4eb10579a..ba1ea6de0f 100644 --- a/openedx/core/djangoapps/schedules/tests/test_signals.py +++ b/openedx/core/djangoapps/schedules/tests/test_signals.py @@ -165,7 +165,7 @@ class UpdateScheduleTests(SharedModuleStoreTestCase): course.start = course.start + datetime.timedelta(days=3) # new course start changes to another future date self.store.update_item(course, ModuleStoreEnum.UserID.test) enrollment = CourseEnrollment.objects.get(id=enrollment.id) - self.assert_schedule_dates(enrollment.schedule, enrollment.created) # start remains unchanged + self.assert_schedule_dates(enrollment.schedule, course.start) # start set to new course start def test_not_updated_since_new_start_in_past(self, mock_get_current_site): mock_get_current_site.return_value = self.site @@ -178,7 +178,7 @@ class UpdateScheduleTests(SharedModuleStoreTestCase): course.start = course.start + datetime.timedelta(days=-10) # new course start changes to a past date self.store.update_item(course, ModuleStoreEnum.UserID.test) enrollment = CourseEnrollment.objects.get(id=enrollment.id) - self.assert_schedule_dates(enrollment.schedule, previous_start) # start remains unchanged + self.assert_schedule_dates(enrollment.schedule, course.start) # start set to new course start def _create_course_run(self_paced=True, start_day_offset=-1):