diff --git a/lms/djangoapps/courseware/tests/test_course_info.py b/lms/djangoapps/courseware/tests/test_course_info.py index 4267b78530..9b8afb44c6 100644 --- a/lms/djangoapps/courseware/tests/test_course_info.py +++ b/lms/djangoapps/courseware/tests/test_course_info.py @@ -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) diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index b956a0c47d..9529b8f415 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -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 diff --git a/lms/templates/courseware/info.html b/lms/templates/courseware/info.html index be9bee148f..4d94b53bff 100644 --- a/lms/templates/courseware/info.html +++ b/lms/templates/courseware/info.html @@ -28,7 +28,7 @@ from openedx.core.djangolib.markup import HTML, Text