Merge pull request #23666 from edx/ndalfonso/AA-97-mobile-reset-message
AA-97 mobile reset message
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,21 @@
|
||||
from django.utils.translation import ugettext as _
|
||||
%>
|
||||
<div class="reset-deadlines-banner">
|
||||
<div class="reset-deadlines-text">${_("It looks like you've missed some important deadlines. Reset your deadlines and get started today.")}</div>
|
||||
<form method="post" action="${reset_deadlines_url}">
|
||||
<input type="hidden" id="csrf_token" name="csrfmiddlewaretoken" value="${csrf_token}">
|
||||
<input type="hidden" name="reset_deadlines_redirect_url_base" value="${reset_deadlines_redirect_url_base}">
|
||||
<input type="hidden" name="reset_deadlines_redirect_url_id_dict" value="${reset_deadlines_redirect_url_id_dict}">
|
||||
<button class="btn reset-deadlines-button">${_("Reset my deadlines")}</button>
|
||||
</form>
|
||||
<div class="reset-deadlines-text">
|
||||
% if web_app_course_url:
|
||||
${_("It looks like you've missed some important deadlines. Visit ")}
|
||||
<a href="${web_app_course_url}">${_("edx.org")}</a>
|
||||
${_(" 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
|
||||
</div>
|
||||
% if not web_app_course_url:
|
||||
<form method="post" action="${reset_deadlines_url}">
|
||||
<input type="hidden" id="csrf_token" name="csrfmiddlewaretoken" value="${csrf_token}">
|
||||
<input type="hidden" name="reset_deadlines_redirect_url_base" value="${reset_deadlines_redirect_url_base}">
|
||||
<input type="hidden" name="reset_deadlines_redirect_url_id_dict" value="${reset_deadlines_redirect_url_id_dict}">
|
||||
<button class="btn reset-deadlines-button">${_("Reset my deadlines")}</button>
|
||||
</form>
|
||||
% endif
|
||||
</div>
|
||||
|
||||
@@ -4,12 +4,6 @@
|
||||
|
||||
<%namespace name="static" file="../../static_content.html"/>
|
||||
|
||||
% if display_reset_dates_banner:
|
||||
<%include file="/reset_deadlines_banner.html" />
|
||||
<script type="text/javascript">
|
||||
$('.reset-deadlines-banner').css('display', 'flex');
|
||||
</script>
|
||||
% endif
|
||||
% for course_date in course_date_blocks:
|
||||
<%include file="../dates-summary.html" args="course_date=course_date"/>
|
||||
% endfor
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user