Revert "Merge pull request #24131 from edx/revert-24085-use-content-type-gating-in-dates-banner"
This reverts commitc3ec8b837a, reversing changes made to4252b14927.
This commit is contained in:
@@ -96,7 +96,6 @@ class ContentTypeGatingConfig(StackedConfigurationModel):
|
||||
``enabled_as_of`` before the enrollment was created.
|
||||
|
||||
Arguments:
|
||||
enrollment: The enrollment being queried.
|
||||
user: The user being queried.
|
||||
course_key: The CourseKey of the course being queried.
|
||||
"""
|
||||
|
||||
@@ -27,7 +27,7 @@ dates_banner_displayed = False
|
||||
%>
|
||||
<main role="main" class="course-outline" id="main" tabindex="-1">
|
||||
<div class="dates-banner-wrapper">
|
||||
% 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
|
||||
</div>
|
||||
|
||||
@@ -25,6 +25,7 @@ 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
|
||||
@@ -33,6 +34,7 @@ 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
|
||||
@@ -170,20 +172,29 @@ class TestCourseOutlinePage(SharedModuleStoreTestCase):
|
||||
|
||||
@RELATIVE_DATES_FLAG.override(active=True)
|
||||
@ddt.data(
|
||||
(CourseMode.AUDIT, False, True),
|
||||
(CourseMode.VERIFIED, False, True),
|
||||
(CourseMode.MASTERS, False, False),
|
||||
(CourseMode.VERIFIED, True, False),
|
||||
([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),
|
||||
)
|
||||
@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]
|
||||
enrollment = CourseEnrollment.objects.get(course_id=course.id)
|
||||
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.mode = enrollment_mode
|
||||
enrollment.save()
|
||||
self.user.is_staff = is_course_staff
|
||||
|
||||
@@ -31,6 +31,7 @@ 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
|
||||
@@ -96,17 +97,18 @@ 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['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,
|
||||
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
|
||||
|
||||
html = render_to_string('course_experience/course-outline-fragment.html', context)
|
||||
return Fragment(html)
|
||||
|
||||
Reference in New Issue
Block a user