Merge pull request #15335 from edx/HarryRein/LEARNER-198
Only show 'Resume Course' button for enrolled users
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user