Commit d5ed3de3 by Harry Rein

Hiding 'Resume Course' button for users that are not enrolled in the course and…

Hiding 'Resume Course' button for users that are not enrolled in the course and adding test to assure behavior.
parent c21b3c8f
......@@ -172,7 +172,16 @@ class CourseInfoLastAccessedTestCase(LoginEnrollmentTestCase, ModuleStoreTestCas
content = pq(response.content)
self.assertEqual(content('.page-header-secondary a').length, 0)
def test_last_accessed_shown(self):
def get_resume_course_url(self, course_info_url):
"""
Retrieves course info page and returns the resume course url
or None if the button doesn't exist.
"""
info_page_response = self.client.get(course_info_url)
content = pq(info_page_response.content)
return content('.page-header-secondary .last-accessed-link').attr('href')
def test_resume_course_visibility(self):
SelfPacedConfiguration(enable_course_home_improvements=True).save()
chapter = ItemFactory.create(
category="chapter", parent_location=self.course.location
......@@ -190,9 +199,20 @@ class CourseInfoLastAccessedTestCase(LoginEnrollmentTestCase, ModuleStoreTestCas
)
self.client.get(section_url)
info_url = reverse('info', args=(unicode(self.course.id),))
info_page_response = self.client.get(info_url)
content = pq(info_page_response.content)
self.assertEqual(content('.page-header-secondary .last-accessed-link').attr('href'), section_url)
# Assuring a non-authenticated user cannot see the resume course button.
resume_course_url = self.get_resume_course_url(info_url)
self.assertEqual(resume_course_url, None)
# Assuring an unenrolled user cannot see the resume course button.
self.setup_user()
resume_course_url = self.get_resume_course_url(info_url)
self.assertEqual(resume_course_url, None)
# Assuring an enrolled user can see the resume course button.
self.enroll(self.course)
resume_course_url = self.get_resume_course_url(info_url)
self.assertEqual(resume_course_url, section_url)
@attr(shard=1)
......
......@@ -289,7 +289,8 @@ def course_info(request, course_id):
masquerade, user = setup_masquerade(request, course_key, staff_access, reset_masquerade_data=True)
# if user is not enrolled in a course then app will show enroll/get register link inside course info page.
show_enroll_banner = request.user.is_authenticated() and not CourseEnrollment.is_enrolled(user, course.id)
user_is_enrolled = CourseEnrollment.is_enrolled(user, course.id)
show_enroll_banner = request.user.is_authenticated() and not user_is_enrolled
if show_enroll_banner and hasattr(course_key, 'ccx'):
# if course is CCX and user is not enrolled/registered then do not let him open course direct via link for
# self registration. Because only CCX coach can register/enroll a student. If un-enrolled user try
......@@ -334,6 +335,7 @@ def course_info(request, course_id):
'supports_preview_menu': True,
'studio_url': get_studio_url(course, 'course_info'),
'show_enroll_banner': show_enroll_banner,
'user_is_enrolled': user_is_enrolled,
'dates_fragment': dates_fragment,
'url_to_enroll': url_to_enroll,
# TODO: (Experimental Code). See https://openedx.atlassian.net/wiki/display/RET/2.+In-course+Verification+Prompts
......@@ -343,9 +345,9 @@ def course_info(request, course_id):
}
# Get the URL of the user's last position in order to display the 'where you were last' message
context['last_accessed_courseware_url'] = None
context['resume_course_url'] = None
if SelfPacedConfiguration.current().enable_course_home_improvements:
context['last_accessed_courseware_url'] = get_last_accessed_courseware(course, request, user)
context['resume_course_url'] = get_last_accessed_courseware(course, request, user)
if not is_course_open_for_learner(user, course):
# Disable student view button if user is staff and
......
......@@ -28,7 +28,7 @@ from openedx.core.djangolib.markup import HTML, Text
<h2 class="title">${_("You are not enrolled yet")}</h2>
<div class="copy">
<p class='enroll-message'>
${Text(_("You are not currently enrolled in this course. {link_start}Sign up now!{link_end}")).format(
${Text(_("You are not currently enrolled in this course. {link_start}Enroll now!{link_end}")).format(
link_start=HTML("<a href={}>").format(url_to_enroll),
link_end=HTML("</a>")
)}
......@@ -69,9 +69,9 @@ from openedx.core.djangolib.markup import HTML, Text
<div class="page-subtitle">${course.display_name_with_default}</div>
</h2>
</div>
% if last_accessed_courseware_url:
% if resume_course_url and user_is_enrolled:
<div class="page-header-secondary">
<a href="${last_accessed_courseware_url}" class="last-accessed-link">${_("Resume Course")}</a>
<a href="${resume_course_url}" class="last-accessed-link">${_("Resume Course")}</a>
</div>
% endif
</div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment