From 1cf46e76d0a8274ac1b3c2aaa3f1358cdf9fca96 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 11 Jun 2020 09:08:55 -0400 Subject: [PATCH] Don't compare None to a date when a course doesn't have an end date --- lms/djangoapps/course_home_api/dates/v1/views.py | 2 +- lms/djangoapps/courseware/date_summary.py | 2 +- lms/djangoapps/courseware/views/views.py | 4 ++-- openedx/core/djangoapps/programs/tests/test_utils.py | 2 +- openedx/features/course_experience/views/course_outline.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lms/djangoapps/course_home_api/dates/v1/views.py b/lms/djangoapps/course_home_api/dates/v1/views.py index a8b36f0b04..ae47567cb4 100644 --- a/lms/djangoapps/course_home_api/dates/v1/views.py +++ b/lms/djangoapps/course_home_api/dates/v1/views.py @@ -84,7 +84,7 @@ class DatesTabView(RetrieveAPIView): user_timezone = user_timezone_locale['user_timezone'] data = { - 'is_archived': course.end < datetime.now(), + 'is_archived': course.end and course.end < datetime.now(), 'course_date_blocks': [block for block in blocks if not isinstance(block, TodaysDate)], 'missed_deadlines': missed_deadlines, 'missed_gated_content': missed_gated_content, diff --git a/lms/djangoapps/courseware/date_summary.py b/lms/djangoapps/courseware/date_summary.py index a03f248ef5..e1bd3864c6 100644 --- a/lms/djangoapps/courseware/date_summary.py +++ b/lms/djangoapps/courseware/date_summary.py @@ -327,7 +327,7 @@ class CourseEndDate(DateSummary): weeks_to_complete = get_course_run_details(self.course.id, ['weeks_to_complete']).get('weeks_to_complete') if weeks_to_complete: course_duration = datetime.timedelta(weeks=weeks_to_complete) - if self.course.end < (self.current_time + course_duration): + if self.course.end and self.course.end < (self.current_time + course_duration): return self.course.end return None diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index dbf77be430..eb88637ff6 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -1082,7 +1082,7 @@ def dates(request, course_id): 'reset_deadlines_url': reverse(RESET_COURSE_DEADLINES_NAME), 'reset_deadlines_redirect_url_base': COURSE_DATES_NAME, 'reset_deadlines_redirect_url_id_dict': {'course_id': str(course.id)}, - 'is_archived': course.end < datetime.now(), + 'is_archived': course.end and course.end < datetime.now(), } return render_to_response('courseware/dates.html', context) @@ -1681,7 +1681,7 @@ def render_xblock(request, usage_key_string, check_if_enrolled=True): 'xqa_server': settings.FEATURES.get('XQA_SERVER', 'http://your_xqa_server.com'), 'missed_deadlines': missed_deadlines, 'missed_gated_content': missed_gated_content, - 'is_archived': course.end < datetime.now(), + 'is_archived': course.end and course.end < datetime.now(), 'web_app_course_url': reverse(COURSE_HOME_VIEW_NAME, args=[course.id]), 'on_courseware_page': True, 'verified_upgrade_link': verified_upgrade_deadline_link(request.user, course=course), diff --git a/openedx/core/djangoapps/programs/tests/test_utils.py b/openedx/core/djangoapps/programs/tests/test_utils.py index cfaaba190f..d8abf1173a 100644 --- a/openedx/core/djangoapps/programs/tests/test_utils.py +++ b/openedx/core/djangoapps/programs/tests/test_utils.py @@ -794,7 +794,7 @@ class TestProgramDataExtender(ModuleStoreTestCase): 'certificate_url': None, 'course_url': reverse('course_root', args=[self.course.id]), 'enrollment_open_date': strftime_localized(DEFAULT_ENROLLMENT_START_DATE, 'SHORT_DATE'), - 'is_course_ended': self.course.end < datetime.datetime.now(utc), + 'is_course_ended': self.course.end and self.course.end < datetime.datetime.now(utc), 'is_enrolled': False, 'is_enrollment_open': True, 'upgrade_url': None, diff --git a/openedx/features/course_experience/views/course_outline.py b/openedx/features/course_experience/views/course_outline.py index 31f2290c42..bb989b3a47 100644 --- a/openedx/features/course_experience/views/course_outline.py +++ b/openedx/features/course_experience/views/course_outline.py @@ -101,7 +101,7 @@ class CourseOutlineFragmentView(EdxFragmentView): 'on_course_outline_page': True, 'missed_deadlines': missed_deadlines, 'missed_gated_content': missed_gated_content, - 'is_archived': course.end < datetime.now(), + 'is_archived': course.end and course.end < datetime.now(), } html = render_to_string('course_experience/course-outline-fragment.html', context)