From 696f1df043abad61fa052000dae96a8538dc3c62 Mon Sep 17 00:00:00 2001 From: Diana Huang Date: Wed, 20 Nov 2013 15:21:31 -0500 Subject: [PATCH] Pass through the certificate mode correctly. --- common/djangoapps/student/tests/tests.py | 46 ++++++++++++++---------- common/djangoapps/student/views.py | 10 +++--- lms/djangoapps/certificates/models.py | 2 +- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/common/djangoapps/student/tests/tests.py b/common/djangoapps/student/tests/tests.py index 06d61c0425..41736c1449 100644 --- a/common/djangoapps/student/tests/tests.py +++ b/common/djangoapps/student/tests/tests.py @@ -152,38 +152,43 @@ class CourseEndingTest(TestCase): {'status': 'processing', 'show_disabled_download_button': False, 'show_download_url': False, - 'show_survey_button': False, }) + 'show_survey_button': False, + }) cert_status = {'status': 'unavailable'} self.assertEqual(_cert_info(user, course, cert_status), {'status': 'processing', 'show_disabled_download_button': False, 'show_download_url': False, - 'show_survey_button': False}) - - cert_status = {'status': 'generating', 'grade': '67'} - self.assertEqual(_cert_info(user, course, cert_status), - {'status': 'generating', - 'show_disabled_download_button': True, - 'show_download_url': False, - 'show_survey_button': True, - 'survey_url': survey_url, - 'grade': '67' + 'show_survey_button': False, + 'mode': None }) - cert_status = {'status': 'regenerating', 'grade': '67'} + cert_status = {'status': 'generating', 'grade': '67', 'mode': 'honor'} self.assertEqual(_cert_info(user, course, cert_status), {'status': 'generating', 'show_disabled_download_button': True, 'show_download_url': False, 'show_survey_button': True, 'survey_url': survey_url, - 'grade': '67' + 'grade': '67', + 'mode': 'honor' + }) + + cert_status = {'status': 'regenerating', 'grade': '67', 'mode': 'verified'} + self.assertEqual(_cert_info(user, course, cert_status), + {'status': 'generating', + 'show_disabled_download_button': True, + 'show_download_url': False, + 'show_survey_button': True, + 'survey_url': survey_url, + 'grade': '67', + 'mode': 'verified' }) download_url = 'http://s3.edx/cert' cert_status = {'status': 'downloadable', 'grade': '67', - 'download_url': download_url} + 'download_url': download_url, 'mode': 'honor'} self.assertEqual(_cert_info(user, course, cert_status), {'status': 'ready', 'show_disabled_download_button': False, @@ -191,30 +196,33 @@ class CourseEndingTest(TestCase): 'download_url': download_url, 'show_survey_button': True, 'survey_url': survey_url, - 'grade': '67' + 'grade': '67', + 'mode': 'honor' }) cert_status = {'status': 'notpassing', 'grade': '67', - 'download_url': download_url} + 'download_url': download_url, 'mode': 'honor'} self.assertEqual(_cert_info(user, course, cert_status), {'status': 'notpassing', 'show_disabled_download_button': False, 'show_download_url': False, 'show_survey_button': True, 'survey_url': survey_url, - 'grade': '67' + 'grade': '67', + 'mode': 'honor' }) # Test a course that doesn't have a survey specified course2 = Mock(end_of_course_survey_url=None) cert_status = {'status': 'notpassing', 'grade': '67', - 'download_url': download_url} + 'download_url': download_url, 'mode': 'honor'} self.assertEqual(_cert_info(user, course2, cert_status), {'status': 'notpassing', 'show_disabled_download_button': False, 'show_download_url': False, 'show_survey_button': False, - 'grade': '67' + 'grade': '67', + 'mode': 'honor' }) diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index f92ffe9d3e..ac909491bb 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -185,7 +185,8 @@ def _cert_info(user, course, cert_status): default_info = {'status': default_status, 'show_disabled_download_button': False, 'show_download_url': False, - 'show_survey_button': False} + 'show_survey_button': False, + } if cert_status is None: return default_info @@ -203,7 +204,8 @@ def _cert_info(user, course, cert_status): d = {'status': status, 'show_download_url': status == 'ready', - 'show_disabled_download_button': status == 'generating', } + 'show_disabled_download_button': status == 'generating', + 'mode': cert_status.get('mode', None)} if (status in ('generating', 'ready', 'notpassing', 'restricted') and course.end_of_course_survey_url is not None): @@ -296,7 +298,7 @@ def complete_course_mode_info(course_id, enrollment): def dashboard(request): user = request.user - # Build our (course, enorllment) list for the user, but ignore any courses that no + # Build our (course, enorllment) list for the user, but ignore any courses that no # longer exist (because the course IDs have changed). Still, we don't delete those # enrollments, because it could have been a data push snafu. course_enrollment_pairs = [] @@ -1515,4 +1517,4 @@ def change_email_settings(request): log.info(u"User {0} ({1}) opted out of receiving emails from course {2}".format(user.username, user.email, course_id)) track.views.server_track(request, "change-email-settings", {"receive_emails": "no", "course": course_id}, page='dashboard') - return HttpResponse(json.dumps({'success': True})) \ No newline at end of file + return HttpResponse(json.dumps({'success': True})) diff --git a/lms/djangoapps/certificates/models.py b/lms/djangoapps/certificates/models.py index 4e948d4b06..6a380a2f7b 100644 --- a/lms/djangoapps/certificates/models.py +++ b/lms/djangoapps/certificates/models.py @@ -144,4 +144,4 @@ def certificate_status_for_student(student, course_id): return d except GeneratedCertificate.DoesNotExist: pass - return {'status': CertificateStatuses.unavailable} + return {'status': CertificateStatuses.unavailable, 'mode': CertificateModes.honor}