From dc469ea5ecf1b9f415159ae3021b5817d0d7e011 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Tue, 3 Nov 2015 17:10:19 -0500 Subject: [PATCH] Fix cert_status None. Add GeneratedCertificate to admin --- common/djangoapps/student/tests/tests.py | 4 ++-- common/djangoapps/student/views.py | 6 +++--- lms/djangoapps/certificates/admin.py | 10 ++++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/common/djangoapps/student/tests/tests.py b/common/djangoapps/student/tests/tests.py index afb4877980..a2c1e05ae4 100644 --- a/common/djangoapps/student/tests/tests.py +++ b/common/djangoapps/student/tests/tests.py @@ -195,14 +195,14 @@ class CourseEndingTest(TestCase): # test when the display is unavailable or notpassing, we get the correct results out course2.certificates_display_behavior = 'early_no_info' cert_status = {'status': 'unavailable'} - self.assertIsNone(_cert_info(user, course2, cert_status, course_mode)) + self.assertEqual(_cert_info(user, course2, cert_status, course_mode), {}) cert_status = { 'status': 'notpassing', 'grade': '67', 'download_url': download_url, 'mode': 'honor' } - self.assertIsNone(_cert_info(user, course2, cert_status, course_mode)) + self.assertEqual(_cert_info(user, course2, cert_status, course_mode), {}) @ddt.ddt diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index 736a333823..f67bf08adf 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -312,7 +312,7 @@ def _cert_info(user, course_overview, cert_status, course_mode): # pylint: disa is_hidden_status = cert_status['status'] in ('unavailable', 'processing', 'generating', 'notpassing') if course_overview.certificates_display_behavior == 'early_no_info' and is_hidden_status: - return None + return {} status = template_state.get(cert_status['status'], default_status) @@ -1033,8 +1033,8 @@ def change_enrollment(request, check_access=True): if not enrollment: return HttpResponseBadRequest(_("You are not enrolled in this course")) - certicifate_info = cert_info(user, enrollment.course_overview, enrollment.mode) - if certicifate_info.get('status') in DISABLE_UNENROLL_CERT_STATES: + certificate_info = cert_info(user, enrollment.course_overview, enrollment.mode) + if certificate_info.get('status') in DISABLE_UNENROLL_CERT_STATES: return HttpResponseBadRequest(_("Your certificate prevents you from unenrolling from this course")) CourseEnrollment.unenroll(user, course_id) diff --git a/lms/djangoapps/certificates/admin.py b/lms/djangoapps/certificates/admin.py index 38983e2988..f878e083b2 100644 --- a/lms/djangoapps/certificates/admin.py +++ b/lms/djangoapps/certificates/admin.py @@ -11,6 +11,7 @@ from certificates.models import ( BadgeImageConfiguration, CertificateTemplate, CertificateTemplateAsset, + GeneratedCertificate, ) @@ -46,8 +47,17 @@ class CertificateTemplateAssetAdmin(admin.ModelAdmin): list_display = ('description', '__unicode__') +class GeneratedCertificateAdmin(admin.ModelAdmin): + """ + Django admin customizations for GeneratedCertificate model + """ + search_fields = ('course_id', 'user__username') + list_display = ('id', 'course_id', 'mode', 'user') + + admin.site.register(CertificateGenerationConfiguration) admin.site.register(CertificateHtmlViewConfiguration, ConfigurationModelAdmin) admin.site.register(BadgeImageConfiguration) admin.site.register(CertificateTemplate, CertificateTemplateAdmin) admin.site.register(CertificateTemplateAsset, CertificateTemplateAssetAdmin) +admin.site.register(GeneratedCertificate, GeneratedCertificateAdmin)