Merge pull request #10497 from edx/rc/2015-11-03

Fixing cert_status None bug
This commit is contained in:
Eric Fischer
2015-11-04 11:07:20 -05:00
3 changed files with 15 additions and 5 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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)