From 396050703e03235368956cd726213c953ef7f6dc Mon Sep 17 00:00:00 2001 From: Nicholas D'Alfonso Date: Wed, 8 Apr 2020 11:48:01 -0400 Subject: [PATCH] AA-97 mobile reset message - remove code for displaying banner in mobile dates fragment - replace button with link to web app in reset dates banner on the mobile problem template - adjust spacing of reset dates button in banner when button wraps on smaller screen --- common/djangoapps/util/views.py | 1 - lms/djangoapps/courseware/views/views.py | 9 +---- lms/static/sass/base/_base.scss | 8 +++- .../sass/course/layout/_reset_deadlines.scss | 3 +- lms/static/sass/lms-mobile-rtl.scss | 25 ------------ lms/static/sass/lms-mobile.scss | 25 ------------ lms/templates/reset_deadlines_banner.html | 24 +++++++---- .../mobile/course-dates-fragment.html | 6 --- openedx/features/course_experience/utils.py | 1 - .../course_experience/views/course_dates.py | 40 ------------------- 10 files changed, 26 insertions(+), 116 deletions(-) diff --git a/common/djangoapps/util/views.py b/common/djangoapps/util/views.py index 6c475ba217..a3e0078436 100644 --- a/common/djangoapps/util/views.py +++ b/common/djangoapps/util/views.py @@ -205,7 +205,6 @@ def reset_course_deadlines(request): from openedx.features.course_experience.urls import COURSE_HOME_VIEW_NAME detail_id_dict = ast.literal_eval(request.POST.get('reset_deadlines_redirect_url_id_dict')) - print('***************', detail_id_dict) redirect_url = request.POST.get('reset_deadlines_redirect_url_base', COURSE_HOME_VIEW_NAME) course_key = CourseKey.from_string(detail_id_dict['course_id']) masquerade_details, masquerade_user = setup_masquerade( diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index 15e9efa58b..b58a0a5df0 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -1627,6 +1627,7 @@ def render_xblock(request, usage_key_string, check_if_enrolled=True): The returned HTML is a chromeless rendering of the xBlock (excluding content of the containing courseware). """ from lms.urls import RENDER_XBLOCK_NAME, RESET_COURSE_DEADLINES_NAME + from openedx.features.course_experience.urls import COURSE_HOME_VIEW_NAME usage_key = UsageKey.from_string(usage_key_string) @@ -1668,10 +1669,6 @@ def render_xblock(request, usage_key_string, check_if_enrolled=True): if RELATIVE_DATES_FLAG.is_enabled(course.id): display_reset_dates_banner = reset_deadlines_banner_should_display(course_key, request) - reset_deadlines_url = reverse(RESET_COURSE_DEADLINES_NAME) if display_reset_dates_banner else None - - reset_deadlines_redirect_url_base = RENDER_XBLOCK_NAME if reset_deadlines_url else None - context = { 'fragment': block.render('student_view', context=student_view_context), 'course': course, @@ -1685,9 +1682,7 @@ 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'), 'display_reset_dates_banner': display_reset_dates_banner, - 'reset_deadlines_url': reset_deadlines_url, - 'reset_deadlines_redirect_url_base': reset_deadlines_redirect_url_base, - 'reset_deadlines_redirect_url_id_dict': {'course_id': str(course.id), 'usage_key_string': usage_key_string} + 'web_app_course_url': reverse(COURSE_HOME_VIEW_NAME, args=[course.id]) } return render_to_response('courseware/courseware-chromeless.html', context) diff --git a/lms/static/sass/base/_base.scss b/lms/static/sass/base/_base.scss index 9fd3d4f6ff..255490b27b 100644 --- a/lms/static/sass/base/_base.scss +++ b/lms/static/sass/base/_base.scss @@ -314,9 +314,13 @@ div.reset-deadlines-banner { div.reset-deadlines-text { color: theme-color("inverse"); - padding-top: 10px; - margin-right: 10px; + margin: 10px 10px 10px 0; flex: 0 1 auto; + + a { + color: #FFFFFF; + text-decoration: underline; + } } form { diff --git a/lms/static/sass/course/layout/_reset_deadlines.scss b/lms/static/sass/course/layout/_reset_deadlines.scss index 126c737b2a..34b7b66978 100644 --- a/lms/static/sass/course/layout/_reset_deadlines.scss +++ b/lms/static/sass/course/layout/_reset_deadlines.scss @@ -11,8 +11,7 @@ div.reset-deadlines-banner { &.reset-deadlines-text { color: theme-color("inverse"); - padding-top: 10px; - margin-right: 10px; + margin: 10px 10px 10px 0; } &.reset-deadlines-button { diff --git a/lms/static/sass/lms-mobile-rtl.scss b/lms/static/sass/lms-mobile-rtl.scss index 8b01fa6029..26af472e93 100644 --- a/lms/static/sass/lms-mobile-rtl.scss +++ b/lms/static/sass/lms-mobile-rtl.scss @@ -3,28 +3,3 @@ @import 'bourbon/bourbon'; @import 'vendor/bi-app/bi-app-rtl'; // set the layout for right to left languages @import 'build-mobile'; - -.reset-deadlines-banner { - background-color: theme-color("primary"); - display: flex; - flex-wrap: wrap; - padding: 15px 20px; - margin-top: 5px; - - div, - button { - flex: 0 1 auto; - - &.reset-deadlines-text { - color: theme-color("inverse"); - padding-top: 10px; - margin-right: 10px; - } - - &.reset-deadlines-button { - color: #0075b4; - background-color: theme-color("inverse"); - cursor: pointer; - } - } -} diff --git a/lms/static/sass/lms-mobile.scss b/lms/static/sass/lms-mobile.scss index 7790a47f94..0d5626de56 100644 --- a/lms/static/sass/lms-mobile.scss +++ b/lms/static/sass/lms-mobile.scss @@ -3,28 +3,3 @@ @import 'bourbon/bourbon'; @import 'vendor/bi-app/bi-app-ltr'; // set the layout for left to right languages @import 'build-mobile'; - -.reset-deadlines-banner { - background-color: theme-color("primary"); - display: flex; - flex-wrap: wrap; - padding: 15px 20px; - margin-top: 5px; - - div, - button { - flex: 0 1 auto; - - &.reset-deadlines-text { - color: theme-color("inverse"); - padding-top: 10px; - margin-right: 10px; - } - - &.reset-deadlines-button { - color: #0075b4; - background-color: theme-color("inverse"); - cursor: pointer; - } - } -} diff --git a/lms/templates/reset_deadlines_banner.html b/lms/templates/reset_deadlines_banner.html index dc50a27e84..a4de68053e 100644 --- a/lms/templates/reset_deadlines_banner.html +++ b/lms/templates/reset_deadlines_banner.html @@ -5,11 +5,21 @@ from django.utils.translation import ugettext as _ %>
-
${_("It looks like you've missed some important deadlines. Reset your deadlines and get started today.")}
-
- - - - -
+
+ % if web_app_course_url: + ${_("It looks like you've missed some important deadlines. Visit ")} + ${_("edx.org")} + ${_(" to reset your deadlines and get started today.")} + % else: + ${_("It looks like you've missed some important deadlines. Reset your deadlines and get started today.")} + % endif +
+ % if not web_app_course_url: +
+ + + + +
+ % endif
diff --git a/openedx/features/course_experience/templates/course_experience/mobile/course-dates-fragment.html b/openedx/features/course_experience/templates/course_experience/mobile/course-dates-fragment.html index 129130a2db..5fb3e10f3d 100644 --- a/openedx/features/course_experience/templates/course_experience/mobile/course-dates-fragment.html +++ b/openedx/features/course_experience/templates/course_experience/mobile/course-dates-fragment.html @@ -4,12 +4,6 @@ <%namespace name="static" file="../../static_content.html"/> -% if display_reset_dates_banner: - <%include file="/reset_deadlines_banner.html" /> - -% endif % for course_date in course_date_blocks: <%include file="../dates-summary.html" args="course_date=course_date"/> % endfor diff --git a/openedx/features/course_experience/utils.py b/openedx/features/course_experience/utils.py index 7b93c2170e..1c2978db03 100644 --- a/openedx/features/course_experience/utils.py +++ b/openedx/features/course_experience/utils.py @@ -270,5 +270,4 @@ def reset_deadlines_banner_should_display(course_key, request): and subsection.get('due', timezone.now() + timedelta(1)) < timezone.now()): display_reset_dates_banner = True break - return display_reset_dates_banner diff --git a/openedx/features/course_experience/views/course_dates.py b/openedx/features/course_experience/views/course_dates.py index 6b69e4f0a0..aa31068c89 100644 --- a/openedx/features/course_experience/views/course_dates.py +++ b/openedx/features/course_experience/views/course_dates.py @@ -5,14 +5,9 @@ Fragment for rendering the course dates sidebar. from django.http import Http404 from django.template.loader import render_to_string -from django.urls import reverse -from django.utils.decorators import method_decorator -from django.views.decorators.csrf import ensure_csrf_cookie from django.utils.translation import get_language_bidi from opaque_keys.edx.keys import CourseKey from web_fragments.fragment import Fragment -from openedx.features.course_experience import RELATIVE_DATES_FLAG -from openedx.features.course_experience.utils import reset_deadlines_banner_should_display from lms.djangoapps.courseware.courses import get_course_date_blocks, get_course_with_access from openedx.core.djangoapps.plugin_api.views import EdxFragmentView @@ -54,7 +49,6 @@ class CourseDatesFragmentMobileView(CourseDatesFragmentView): """ template_name = 'course_experience/mobile/course-dates-fragment.html' - @method_decorator(ensure_csrf_cookie) def get(self, request, *args, **kwargs): if not request.user.is_authenticated: raise Http404 @@ -72,37 +66,3 @@ class CourseDatesFragmentMobileView(CourseDatesFragmentView): return self.get_css_dependencies('style-mobile-rtl') else: return self.get_css_dependencies('style-mobile') - - def render_to_fragment(self, request, course_id=None, **kwargs): - """ - Render the course dates fragment. - """ - from lms.urls import RESET_COURSE_DEADLINES_NAME - from openedx.features.course_experience.urls import COURSE_DATES_FRAGMENT_VIEW_NAME - - course_key = CourseKey.from_string(course_id) - course = get_course_with_access(request.user, 'load', course_key, check_if_enrolled=False) - course_date_blocks = get_course_date_blocks(course, request.user, request, num_assignments=2) - - display_reset_dates_banner = False - - if RELATIVE_DATES_FLAG.is_enabled(course.id): - display_reset_dates_banner = reset_deadlines_banner_should_display(course_key, request) - - reset_deadlines_url = reverse(RESET_COURSE_DEADLINES_NAME) if display_reset_dates_banner else None - - reset_deadlines_redirect_url_base = COURSE_DATES_FRAGMENT_VIEW_NAME if ( - reset_deadlines_url) else None - - context = { - 'course_date_blocks': [block for block in course_date_blocks if block.title != 'current_datetime'], - 'display_reset_dates_banner': display_reset_dates_banner, - 'reset_deadlines_url': reset_deadlines_url, - 'reset_deadlines_redirect_url_base': reset_deadlines_redirect_url_base, - 'reset_deadlines_redirect_url_id_dict': {'course_id': course_id} - } - html = render_to_string(self.template_name, context) - dates_fragment = Fragment(html) - self.add_fragment_resource_urls(dates_fragment) - - return dates_fragment