Commit e57e4e0c by Harry Rein Committed by GitHub

Merge pull request #15335 from edx/HarryRein/LEARNER-198

Only show 'Resume Course' button for enrolled users
parents ceb126ef d5ed3de3
......@@ -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