Merge pull request #24144 from cpennington/hide-dates-banner-archived

Hide dates banner archived
This commit is contained in:
Calen Pennington
2020-06-11 14:03:09 -04:00
committed by GitHub
6 changed files with 49 additions and 47 deletions

View File

@@ -2,7 +2,6 @@
Dates Tab Views
"""
from rest_framework import status
from rest_framework.generics import RetrieveAPIView
from rest_framework.permissions import IsAuthenticated
@@ -85,6 +84,7 @@ class DatesTabView(RetrieveAPIView):
user_timezone = user_timezone_locale['user_timezone']
data = {
'has_ended': course.has_ended(),
'course_date_blocks': [block for block in blocks if not isinstance(block, TodaysDate)],
'missed_deadlines': missed_deadlines,
'missed_gated_content': missed_gated_content,

View File

@@ -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

View File

@@ -1081,7 +1081,8 @@ def dates(request, course_id):
'missed_gated_content': missed_gated_content,
'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)}
'reset_deadlines_redirect_url_id_dict': {'course_id': str(course.id)},
'has_ended': course.has_ended(),
}
return render_to_response('courseware/dates.html', context)
@@ -1680,6 +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,
'has_ended': course.has_ended(),
'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),

View File

@@ -8,14 +8,6 @@ from lms.djangoapps.courseware.date_summary import CourseAssignmentDate
from course_modes.models import CourseMode
%>
% if on_dates_tab and not missed_deadlines and getattr(course, 'self_paced', False):
<div class="dates-banner">
<div class="dates-banner-text">
<strong>${_("We've built a suggested schedule to help you stay on track.")}</strong>
${_("But don't worry—it's flexible so you can learn at your own pace. If you happen to fall behind on our suggested dates, you'll be able to adjust them to keep yourself on track.")}
</div>
</div>
% endif
<%
additional_styling_class = 'on-mobile' if is_mobile_app else 'has-button'
%>
@@ -93,13 +85,25 @@ additional_styling_class = 'on-mobile' if is_mobile_app else 'has-button'
% endif
</div>
</%def>
% if on_dates_tab and content_type_gating_enabled and not missed_deadlines:
${upgrade_to_complete_graded_banner()}
% elif missed_deadlines:
% if missed_gated_content:
${upgrade_to_reset_banner()}
% else:
${reset_dates_banner()}
% if not has_ended:
% if on_dates_tab and not missed_deadlines:
%if getattr(course, 'self_paced', False):
<div class="dates-banner">
<div class="dates-banner-text">
<strong>${_("We've built a suggested schedule to help you stay on track.")}</strong>
${_("But don't worry—it's flexible so you can learn at your own pace. If you happen to fall behind on our suggested dates, you'll be able to adjust them to keep yourself on track.")}
</div>
</div>
% endif
% if content_type_gating_enabled:
${upgrade_to_complete_graded_banner()}
% endif
% elif missed_deadlines:
% if missed_gated_content:
${upgrade_to_reset_banner()}
% else:
${reset_dates_banner()}
% endif
% endif
% endif

View File

@@ -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.has_ended(),
'is_enrolled': False,
'is_enrollment_open': True,
'upgrade_url': None,

View File

@@ -67,15 +67,6 @@ class CourseOutlineFragmentView(EdxFragmentView):
if not course_block_tree:
return None
context = {
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'due_date_display_format': course.due_date_display_format,
'blocks': course_block_tree,
'enable_links': user_is_enrolled or course.course_visibility == COURSE_VISIBILITY_PUBLIC,
'course_key': course_key,
}
resume_block = get_resume_block(course_block_tree) if user_is_enrolled else None
if not resume_block:
@@ -86,27 +77,32 @@ class CourseOutlineFragmentView(EdxFragmentView):
missed_deadlines, missed_gated_content = dates_banner_should_display(course_key, request.user)
context['gated_content'] = gated_content
context['xblock_display_names'] = xblock_display_names
page_context = kwargs.get('page_context', None)
if page_context:
context['self_paced'] = page_context.get('pacing_type', 'instructor_paced') == 'self_paced'
# We're using this flag to prevent old self-paced dates from leaking out on courses not
# managed by edx-when.
context['in_edx_when'] = edx_when_api.is_enabled_for_course(course_key)
reset_deadlines_url = reverse(RESET_COURSE_DEADLINES_NAME)
reset_deadlines_redirect_url_base = COURSE_HOME_VIEW_NAME
context['reset_deadlines_url'] = reset_deadlines_url
context['reset_deadlines_redirect_url_base'] = reset_deadlines_redirect_url_base
context['reset_deadlines_redirect_url_id_dict'] = {'course_id': str(course.id)}
context['verified_upgrade_link'] = verified_upgrade_deadline_link(request.user, course=course)
context['on_course_outline_page'] = True
context['missed_deadlines'] = missed_deadlines
context['missed_gated_content'] = missed_gated_content
context = {
'csrf': csrf(request)['csrf_token'],
'course': course_overview,
'due_date_display_format': course.due_date_display_format,
'blocks': course_block_tree,
'enable_links': user_is_enrolled or course.course_visibility == COURSE_VISIBILITY_PUBLIC,
'course_key': course_key,
'gated_content': gated_content,
'xblock_display_names': xblock_display_names,
'self_paced': course.self_paced,
# We're using this flag to prevent old self-paced dates from leaking out on courses not
# managed by edx-when.
'in_edx_when': edx_when_api.is_enabled_for_course(course_key),
'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)},
'verified_upgrade_link': verified_upgrade_deadline_link(request.user, course=course),
'on_course_outline_page': True,
'missed_deadlines': missed_deadlines,
'missed_gated_content': missed_gated_content,
'has_ended': course.has_ended(),
}
html = render_to_string('course_experience/course-outline-fragment.html', context)
return Fragment(html)