Skip to content
Snippets Groups Projects
Unverified Commit 87059e76 authored by Calen Pennington's avatar Calen Pennington Committed by GitHub
Browse files

Merge pull request #23181 from cpennington/show-due-dates-self-paced-from-edx-when

Show due dates self paced from edx when
parents a3ac11cd f3bce467
No related branches found
No related tags found
No related merge requests found
......@@ -167,73 +167,3 @@ class CourseHomeA11yTest(CourseHomeBaseTest):
]
})
course_search_results_page.a11y_audit.check_for_accessibility_errors()
class CourseOutlineTest(UniqueCourseTest):
"""
Test Suite to verify the course outline page on the LMS.
"""
USERNAME = "STUDENT_TESTER"
EMAIL = "student101@example.com"
def setUp(self):
"""
Initialize pages and install a course fixture.
"""
super(CourseOutlineTest, self).setUp()
self.course_home_page = CourseHomePage(self.browser, self.course_id)
# Install a course with sections and problems
self.course_fix = CourseFixture(
self.course_info['org'],
self.course_info['number'],
self.course_info['run'],
self.course_info['display_name'],
start_date=datetime.now() + timedelta(days=-10),
end_date=datetime.now() + timedelta(days=10)
)
self.course_fix.add_children(
XBlockFixtureDesc('chapter', 'Test Section').add_children(
XBlockFixtureDesc('sequential', 'Test Subsection', metadata={
'due': (datetime.now()).isoformat(),
'format': 'Homework'
}).add_children(
XBlockFixtureDesc('problem', 'Test Problem', data=load_data_str('multiple_choice.xml')),
)
),
).install()
# Auto-auth register for the course.
auto_auth(self.browser, self.USERNAME, self.EMAIL, False, self.course_id)
def change_course_pacing_to_self_paced(self):
"""
Change the course pacing from Instructor Paced to Self-paced course
for a live course.
"""
self.course_fix.add_course_details({'start_date': (datetime.now() + timedelta(days=5))})
self.course_fix.configure_course()
self.course_fix.add_course_details({'self_paced': True})
self.course_fix.configure_course()
self.course_fix.add_course_details({'start_date': (datetime.now() + timedelta(days=-10))})
self.course_fix.configure_course()
def test_outline_when_pacing_changed_to_self_paced(self):
"""
Scenario: Ensure that due dates are not displayed on the course outline page
when switched to self-paced mode from instructor-paced.
Given an instructor paced course with a due graded content
Visit the course outline page
Verify the due date visibility
Change the course pacing to self-paced
Visit the course outline page again
Verify that due date is not visible
"""
self.course_home_page.visit()
due_date = self.course_home_page.outline.get_subsection_due_date()
self.assertIn(str(datetime.now().year), due_date)
self.change_course_pacing_to_self_paced()
self.course_home_page.visit()
due_date = self.course_home_page.outline.get_subsection_due_date()
self.assertNotIn(str(datetime.now().year), due_date)
......@@ -91,7 +91,7 @@ self_paced = context.get('self_paced', False)
##
## Exam subsections expose exam status message field as well as a status icon
<%
if subsection.get('due') is None or self_paced:
if subsection.get('due') is None or (self_paced and not in_edx_when):
# examples: Homework, Lab, etc.
data_string = subsection.get('format')
data_datetime = ""
......
......@@ -218,7 +218,7 @@ class TestCourseHomePage(CourseHomePageTestCase):
# Fetch the view and verify the query counts
# TODO: decrease query count as part of REVO-28
with self.assertNumQueries(73, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with self.assertNumQueries(74, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with check_mongo_calls(4):
url = course_home_url(self.course)
self.client.get(url)
......
......@@ -10,6 +10,7 @@ from completion import waffle as completion_waffle
from django.contrib.auth.models import User
from django.template.context_processors import csrf
from django.template.loader import render_to_string
import edx_when.api as edx_when_api
from opaque_keys.edx.keys import CourseKey
from pytz import UTC
from waffle.models import Switch
......@@ -71,6 +72,10 @@ class CourseOutlineFragmentView(EdxFragmentView):
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)
html = render_to_string('course_experience/course-outline-fragment.html', context)
return Fragment(html)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment