- % if relative_dates_flag_is_enabled and self_paced and not is_course_staff: + % if enrollment_mode and 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/tests/views/test_course_outline.py b/openedx/features/course_experience/tests/views/test_course_outline.py index de86b37cbb..709bd8ef56 100644 --- a/openedx/features/course_experience/tests/views/test_course_outline.py +++ b/openedx/features/course_experience/tests/views/test_course_outline.py @@ -25,7 +25,6 @@ from waffle.models import Switch from waffle.testutils import override_switch from course_modes.models import CourseMode -from course_modes.tests.factories import CourseModeFactory from lms.djangoapps.courseware.tests.factories import StaffFactory from lms.urls import RESET_COURSE_DEADLINES_NAME from gating import api as lms_gating_api @@ -34,7 +33,6 @@ from openedx.core.djangoapps.schedules.models import Schedule from openedx.core.djangoapps.schedules.tests.factories import ScheduleFactory from openedx.core.lib.gating import api as gating_api from openedx.features.course_experience import RELATIVE_DATES_FLAG -from openedx.features.content_type_gating.models import ContentTypeGatingConfig from openedx.features.course_experience.views.course_outline import ( DEFAULT_COMPLETION_TRACKING_START, CourseOutlineFragmentView @@ -172,29 +170,20 @@ class TestCourseOutlinePage(SharedModuleStoreTestCase): @RELATIVE_DATES_FLAG.override(active=True) @ddt.data( - ([CourseMode.AUDIT, CourseMode.VERIFIED], CourseMode.AUDIT, False, True), - ([CourseMode.AUDIT, CourseMode.VERIFIED], CourseMode.VERIFIED, False, True), - ([CourseMode.AUDIT, CourseMode.VERIFIED, CourseMode.MASTERS], CourseMode.MASTERS, False, True), - ([CourseMode.PROFESSIONAL], CourseMode.PROFESSIONAL, False, True), - ([CourseMode.AUDIT, CourseMode.VERIFIED], CourseMode.VERIFIED, True, False), + (CourseMode.AUDIT, False, True), + (CourseMode.VERIFIED, False, True), + (CourseMode.MASTERS, False, False), + (CourseMode.VERIFIED, True, False), ) @ddt.unpack def test_reset_course_deadlines_banner_shows_for_self_paced_course( self, - course_modes, enrollment_mode, is_course_staff, should_display ): - ContentTypeGatingConfig.objects.create( - enabled=True, - enabled_as_of=datetime.datetime(2018, 1, 1), - ) course = self.courses[0] - for mode in course_modes: - CourseModeFactory.create(course_id=course.id, mode_slug=mode) - - enrollment = CourseEnrollment.objects.get(course_id=course.id, user=self.user) + enrollment = CourseEnrollment.objects.get(course_id=course.id) enrollment.mode = enrollment_mode enrollment.save() self.user.is_staff = is_course_staff diff --git a/openedx/features/course_experience/views/course_outline.py b/openedx/features/course_experience/views/course_outline.py index 750b40e832..8005a74f25 100644 --- a/openedx/features/course_experience/views/course_outline.py +++ b/openedx/features/course_experience/views/course_outline.py @@ -31,7 +31,6 @@ from openedx.core.djangoapps.content.course_overviews.models import CourseOvervi from openedx.core.djangoapps.plugin_api.views import EdxFragmentView from openedx.core.djangoapps.schedules.utils import reset_self_paced_schedule from openedx.features.course_experience import RELATIVE_DATES_FLAG -from openedx.features.content_type_gating.models import ContentTypeGatingConfig from student.models import CourseEnrollment from util.milestones_helpers import get_course_content_milestones from xmodule.course_module import COURSE_VISIBILITY_PUBLIC @@ -97,18 +96,17 @@ class CourseOutlineFragmentView(EdxFragmentView): reset_deadlines_url = reverse(RESET_COURSE_DEADLINES_NAME) reset_deadlines_redirect_url_base = COURSE_HOME_VIEW_NAME + course_enrollment = None + if not request.user.is_anonymous: + course_enrollment = CourseEnrollment.objects.filter(course=course_overview, user=request.user).filter( + Q(mode=CourseMode.AUDIT) | Q(mode=CourseMode.VERIFIED)).first() + 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['content_type_gating_enabled'] = ContentTypeGatingConfig.enabled_for_enrollment( - 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 + context['enrollment_mode'] = getattr(course_enrollment, 'mode', None) + context['verified_upgrade_link'] = verified_upgrade_deadline_link(request.user, course=course), + context['on_course_outline_page'] = True, html = render_to_string('course_experience/course-outline-fragment.html', context) return Fragment(html)