diff --git a/lms/djangoapps/courseware/courses.py b/lms/djangoapps/courseware/courses.py index 0738d1c525..b18820d14d 100644 --- a/lms/djangoapps/courseware/courses.py +++ b/lms/djangoapps/courseware/courses.py @@ -26,6 +26,7 @@ from django.http import Http404, QueryDict from enrollment.api import get_course_enrollment_details from edxmako.shortcuts import render_to_string from fs.errors import ResourceNotFound +from lms.djangoapps.certificates import api as certs_api from lms.djangoapps.courseware.courseware_access_exception import CoursewareAccessException from lms.djangoapps.courseware.exceptions import CourseAccessRedirect from opaque_keys.edx.keys import UsageKey @@ -370,14 +371,15 @@ def get_course_date_blocks(course, user): Return the list of blocks to display on the course info page, sorted by date. """ - block_classes = ( - CertificateAvailableDate, + block_classes = [ CourseEndDate, CourseStartDate, TodaysDate, VerificationDeadlineDate, VerifiedUpgradeDeadlineDate, - ) + ] + if certs_api.get_active_web_certificate(course): + block_classes.insert(0, CertificateAvailableDate) blocks = (cls(course, user) for cls in block_classes) diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index 392e6aaf89..ae4e03f3eb 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -1326,6 +1326,7 @@ class ProgressPageTests(ProgressPageBaseTests): resp = self._get_progress_page() self.assertNotContains(resp, 'Request Certificate') + @patch('lms.djangoapps.certificates.api.get_active_web_certificate', PropertyMock(return_value=True)) @patch.dict('django.conf.settings.FEATURES', {'CERTIFICATES_HTML_VIEW': True}) def test_view_certificate_link(self): """ @@ -1389,9 +1390,10 @@ class ProgressPageTests(ProgressPageBaseTests): resp = self._get_progress_page() self.assertNotContains(resp, u"View Your Certificate") self.assertNotContains(resp, u"You can now view your certificate") - self.assertContains(resp, "working on it...") - self.assertContains(resp, "creating your certificate") + self.assertContains(resp, "Your certificate is available") + self.assertContains(resp, "earned a certificate for this course.") + @patch('lms.djangoapps.certificates.api.get_active_web_certificate', PropertyMock(return_value=True)) @patch.dict('django.conf.settings.FEATURES', {'CERTIFICATES_HTML_VIEW': False}) def test_view_certificate_link_hidden(self): """ @@ -1458,6 +1460,7 @@ class ProgressPageTests(ProgressPageBaseTests): ), check_mongo_calls(1): self._get_progress_page() + @patch('lms.djangoapps.certificates.api.get_active_web_certificate', PropertyMock(return_value=True)) @ddt.data( *itertools.product( ( @@ -1589,6 +1592,7 @@ class ProgressPageTests(ProgressPageBaseTests): self.assertContains(resp, u"View Certificate") self.assert_invalidate_certificate(generated_certificate) + @patch('lms.djangoapps.certificates.api.get_active_web_certificate', PropertyMock(return_value=True)) def test_page_with_invalidated_certificate_with_pdf(self): """ Verify that for pdf certs if certificate is marked as invalidated than @@ -1613,6 +1617,7 @@ class ProgressPageTests(ProgressPageBaseTests): self.assert_invalidate_certificate(generated_certificate) @patch('courseware.views.views.is_course_passed', PropertyMock(return_value=True)) + @patch('lms.djangoapps.certificates.api.get_active_web_certificate', PropertyMock(return_value=True)) def test_message_for_audit_mode(self): """ Verify that message appears on progress page, if learner is enrolled in audit mode. @@ -1634,6 +1639,7 @@ class ProgressPageTests(ProgressPageBaseTests): ) @patch('courseware.views.views.is_course_passed', PropertyMock(return_value=True)) + @patch('lms.djangoapps.certificates.api.get_active_web_certificate', PropertyMock(return_value=True)) def test_message_for_honor_mode(self): """ Verify that message appears on progress page, if learner is enrolled in honor mode. diff --git a/lms/djangoapps/courseware/views/views.py b/lms/djangoapps/courseware/views/views.py index bf96e86bd7..61be589e4c 100644 --- a/lms/djangoapps/courseware/views/views.py +++ b/lms/djangoapps/courseware/views/views.py @@ -993,8 +993,9 @@ def _progress(request, course_key, student_id): 'supports_preview_menu': True, 'student': student, 'credit_course_requirements': _credit_course_requirements(course_key, student), - 'certificate_data': _get_cert_data(student, course, enrollment_mode, course_grade), } + if certs_api.get_active_web_certificate(course): + context['certificate_data'] = _get_cert_data(student, course, enrollment_mode, course_grade) context.update( get_experiment_user_metadata_context( course,