- % if enrollment_mode and relative_dates_flag_is_enabled and self_paced and not is_course_staff: + % if relative_dates_flag_is_enabled and self_paced and not is_course_staff: <%include file="/dates_banner.html" /> % endif
diff --git a/openedx/features/course_experience/views/course_outline.py b/openedx/features/course_experience/views/course_outline.py index ba98859c79..93769183fc 100644 --- a/openedx/features/course_experience/views/course_outline.py +++ b/openedx/features/course_experience/views/course_outline.py @@ -112,6 +112,9 @@ class CourseOutlineFragmentView(EdxFragmentView): user=request.user, course_key=course_key ) + # We use javascript to check whether to actually display this banner, so we let the banner assume + # that deadlines have been missed. + context['missed_deadlines'] = True html = render_to_string('course_experience/course-outline-fragment.html', context) return Fragment(html) From 07d9d74b7c8a09dae6a3223b9655c46bf0e028fb Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 28 May 2020 14:57:04 -0400 Subject: [PATCH 14/17] Remove extraneous variables from dates_banner.html --- lms/templates/dates_banner.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lms/templates/dates_banner.html b/lms/templates/dates_banner.html index b774970378..40a1455cd7 100644 --- a/lms/templates/dates_banner.html +++ b/lms/templates/dates_banner.html @@ -20,12 +20,6 @@ from course_modes.models import CourseMode has_locked_assignments = any(hasattr(block, 'contains_gated_content') and block.contains_gated_content for block in course_date_blocks if isinstance(block, CourseAssignmentDate)) if (course_date_blocks and on_dates_tab) else False is_verified = enrollment_mode == CourseMode.VERIFIED is_audit = enrollment_mode == CourseMode.AUDIT -on_dates_tab_as_audit = on_dates_tab and is_audit -on_dates_tab_as_verified = on_dates_tab and is_verified -on_course_outline_page_as_audit = on_course_outline_page and is_audit -on_course_outline_page_as_verified = on_course_outline_page and is_verified -on_courseware_page_as_audit = on_courseware_page and is_audit -on_courseware_page_as_verified = on_courseware_page and is_verified additional_styling_class = 'on-mobile' if is_mobile_app else 'has-button' %> From 7c4585ebfec85d6196a86a5dafeb821cea6b9193 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Thu, 28 May 2020 15:04:27 -0400 Subject: [PATCH 15/17] Only prompt to upgrade in order to completed graded content (or shift dates) when content_type_gating is enabled --- .../course_home_api/dates/v1/views.py | 2 +- lms/djangoapps/courseware/views/views.py | 6 ++---- lms/templates/dates_banner.html | 11 ++++------ .../tests/views/test_course_outline.py | 21 ++++++++++++++----- .../course_experience/views/course_outline.py | 6 ------ 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/lms/djangoapps/course_home_api/dates/v1/views.py b/lms/djangoapps/course_home_api/dates/v1/views.py index d16e594ded..9726f7ad02 100644 --- a/lms/djangoapps/course_home_api/dates/v1/views.py +++ b/lms/djangoapps/course_home_api/dates/v1/views.py @@ -67,7 +67,7 @@ class DatesTabView(RetrieveAPIView): course_key = CourseKey.from_string(course_key_string) course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=False) blocks = get_course_date_blocks(course, request.user, request, include_access=True, include_past_dates=True) - display_reset_dates_text, _ = dates_banner_should_display(course_key, request) + display_reset_dates_text = dates_banner_should_display(course_key, request) learner_is_verified = False enrollment = get_enrollment(request.user.username, course_key_string) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 321f1b2790..48d73f7be9 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -1063,7 +1063,7 @@ def dates(request, course_id): user_timezone = user_timezone_locale['user_timezone'] user_language = user_timezone_locale['user_language'] - missed_deadlines, enrollment_mode = dates_banner_should_display(course_key, request) + missed_deadlines = dates_banner_should_display(course_key, request) context = { 'course': course, @@ -1081,7 +1081,6 @@ def dates(request, course_id): course_key=course_key, ), 'missed_deadlines': missed_deadlines, - 'enrollment_mode': enrollment_mode, '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)} @@ -1667,7 +1666,7 @@ def render_xblock(request, usage_key_string, check_if_enrolled=True): 'mark-completed-on-view-after-delay': completion_service.get_complete_on_view_delay_ms() } - missed_deadlines, enrollment_mode = dates_banner_should_display(course_key, request) + missed_deadlines = dates_banner_should_display(course_key, request) context = { 'fragment': block.render('student_view', context=student_view_context), @@ -1682,7 +1681,6 @@ def render_xblock(request, usage_key_string, check_if_enrolled=True): 'staff_access': bool(request.user.has_perm(VIEW_XQA_INTERFACE, course)), 'xqa_server': settings.FEATURES.get('XQA_SERVER', 'http://your_xqa_server.com'), 'missed_deadlines': missed_deadlines, - 'enrollment_mode': enrollment_mode, 'web_app_course_url': reverse(COURSE_HOME_VIEW_NAME, args=[course.id]), 'on_courseware_page': True, 'content_type_gating_enabled': ContentTypeGatingConfig.enabled_for_enrollment( diff --git a/lms/templates/dates_banner.html b/lms/templates/dates_banner.html index 40a1455cd7..4b99e371e5 100644 --- a/lms/templates/dates_banner.html +++ b/lms/templates/dates_banner.html @@ -17,9 +17,6 @@ from course_modes.models import CourseMode