From ff88f3d42378ff88701cffc244ccfcf7287d84c8 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 30 Apr 2020 11:50:40 -0400 Subject: [PATCH] Only show the resets date banner if you have missed the due date on a graded subsection [AA-138] --- lms/djangoapps/courseware/tests/test_views.py | 10 ++++++++-- openedx/features/course_experience/utils.py | 7 +++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index 27c1452a66..beb50b5fe8 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -2572,7 +2572,8 @@ class TestIndexView(ModuleStoreTestCase): ) @RELATIVE_DATES_FLAG.override(active=True) - def test_reset_deadlines_banner_is_present_when_viewing_courseware(self): + @ddt.data(True, False) + def test_reset_deadlines_banner_is_present_when_viewing_courseware(self, graded_section): user = UserFactory() course = CourseFactory.create(self_paced=True) with self.store.bulk_operations(course.id): @@ -2581,6 +2582,7 @@ class TestIndexView(ModuleStoreTestCase): parent=chapter, category='sequential', display_name="Sequence", due=datetime.today() - timedelta(1), + graded=graded_section, ) CourseOverview.load_from_module_store(course.id) @@ -2597,7 +2599,11 @@ class TestIndexView(ModuleStoreTestCase): ) + '?activate_block_id=test_block_id' ) - self.assertContains(response, '
') + banner = '
' + if graded_section: + self.assertContains(response, banner) + else: + self.assertNotContains(response, banner) @ddt.ddt diff --git a/openedx/features/course_experience/utils.py b/openedx/features/course_experience/utils.py index 96e878f4c4..a7f463e35d 100644 --- a/openedx/features/course_experience/utils.py +++ b/openedx/features/course_experience/utils.py @@ -270,8 +270,11 @@ def reset_deadlines_banner_should_display(course_key, request): if display_reset_dates_banner: break for subsection in section.get('children', []): - if (not subsection.get('complete', True) - and subsection.get('due', timezone.now() + timedelta(1)) < timezone.now()): + if ( + not subsection.get('complete', True) + and subsection.get('graded', False) + and subsection.get('due', timezone.now() + timedelta(1)) < timezone.now() + ): display_reset_dates_banner = True break return display_reset_dates_banner