From 3ff2488025559820ae7053c3588b151f6477843a Mon Sep 17 00:00:00 2001 From: Awais Jibran Date: Mon, 26 Feb 2018 15:14:47 +0500 Subject: [PATCH] Fix course home page bug --- .../tests/views/test_course_outline.py | 23 +++++++++++++++++++ .../course_experience/views/course_outline.py | 17 +++++--------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/openedx/features/course_experience/tests/views/test_course_outline.py b/openedx/features/course_experience/tests/views/test_course_outline.py index 698d557b60..f473f248df 100644 --- a/openedx/features/course_experience/tests/views/test_course_outline.py +++ b/openedx/features/course_experience/tests/views/test_course_outline.py @@ -495,6 +495,29 @@ class TestCourseOutlineResumeCourse(SharedModuleStoreTestCase, CompletionWaffleT # check resume course buttons self.visit_course_home(course, resume_count=1) + @override_switch( + '{}.{}'.format( + waffle.WAFFLE_NAMESPACE, waffle.ENABLE_VISUAL_PROGRESS + ), + active=True + ) + @patch('completion.waffle.get_current_site') + def test_course_home_for_global_staff(self, get_patched_current_site): + """ + Tests that staff user can access the course home without being enrolled + in the course. + """ + course = self.course + get_patched_current_site.return_value = self.site + self.user.is_staff = True + self.user.save() + + self.override_waffle_switch(True) + CourseEnrollment.get_enrollment(self.user, course.id).delete() + response = self.visit_course_home(course, start_count=1, resume_count=0) + content = pq(response.content) + self.assertTrue(content('.action-resume-course').attr('href').endswith('/course/' + course.url_name)) + class TestCourseOutlinePreview(SharedModuleStoreTestCase): """ diff --git a/openedx/features/course_experience/views/course_outline.py b/openedx/features/course_experience/views/course_outline.py index b95522c709..242e3fe84f 100644 --- a/openedx/features/course_experience/views/course_outline.py +++ b/openedx/features/course_experience/views/course_outline.py @@ -39,8 +39,10 @@ class CourseOutlineFragmentView(EdxFragmentView): # TODO: EDUCATOR-2283 Remove 'show_visual_progress' from context # and remove the check for it in the HTML file - show_visual_progress = (completion_waffle.visual_progress_enabled(course_key) and - self.user_enrolled_after_completion_collection(request.user, course_key)) + show_visual_progress = ( + completion_waffle.visual_progress_enabled(course_key) and + self.user_enrolled_after_completion_collection(request.user, course_key) + ) context = { 'csrf': csrf(request)['csrf_token'], 'course': course_overview, @@ -139,14 +141,7 @@ class CourseOutlineFragmentView(EdxFragmentView): check until all active enrollments are created after the date. """ begin_collection_date = datetime.datetime(2018, 01, 24, tzinfo=pytz.utc) - user = User.objects.get(username=user) - user_enrollment = CourseEnrollment.objects.get( - user=user, - course_id=course_key, - is_active=True - ) - - if user_enrollment and user_enrollment.created > begin_collection_date: + user_enrollment = CourseEnrollment.get_enrollment(user=user, course_key=course_key) + if user_enrollment and user_enrollment.is_active and user_enrollment.created > begin_collection_date: return True - return False