Commit 16568766 by Diana Huang

If student has not passed verification, issue an honor code cert.

Also, display a message on their dashboard.
parent fc46efb6
...@@ -93,9 +93,9 @@ class GeneratedCertificate(models.Model): ...@@ -93,9 +93,9 @@ class GeneratedCertificate(models.Model):
mode = models.CharField(max_length=32, default=CertificateModes.honor) mode = models.CharField(max_length=32, default=CertificateModes.honor)
name = models.CharField(blank=True, max_length=255) name = models.CharField(blank=True, max_length=255)
created_date = models.DateTimeField( created_date = models.DateTimeField(
auto_now_add=True, default=datetime.now) auto_now_add=True, default=datetime.now)
modified_date = models.DateTimeField( modified_date = models.DateTimeField(
auto_now=True, default=datetime.now) auto_now=True, default=datetime.now)
error_reason = models.CharField(max_length=512, blank=True, default='') error_reason = models.CharField(max_length=512, blank=True, default='')
class Meta: class Meta:
...@@ -133,8 +133,9 @@ def certificate_status_for_student(student, course_id): ...@@ -133,8 +133,9 @@ def certificate_status_for_student(student, course_id):
try: try:
generated_certificate = GeneratedCertificate.objects.get( generated_certificate = GeneratedCertificate.objects.get(
user=student, course_id=course_id) user=student, course_id=course_id)
d = {'status': generated_certificate.status} d = {'status': generated_certificate.status,
'mode': generated_certificate.mode}
if generated_certificate.grade: if generated_certificate.grade:
d['grade'] = generated_certificate.grade d['grade'] = generated_certificate.grade
if generated_certificate.status == CertificateStatuses.downloadable: if generated_certificate.status == CertificateStatuses.downloadable:
......
...@@ -178,9 +178,15 @@ class XQueueCertInterface(object): ...@@ -178,9 +178,15 @@ class XQueueCertInterface(object):
enrollment = CourseEnrollment.objects.get(user=student, course_id=course_id) enrollment = CourseEnrollment.objects.get(user=student, course_id=course_id)
org = course_id.split('/')[0] org = course_id.split('/')[0]
course_num = course_id.split('/')[1] course_num = course_id.split('/')[1]
if enrollment.mode == CertificateModes.verified: cert_mode = enrollment.mode
if enrollment.mode == CertificateModes.verified and SoftwareSecurePhotoVerification.user_is_verified(student):
template_pdf = "certificate-template-{0}-{1}-verified.pdf".format( template_pdf = "certificate-template-{0}-{1}-verified.pdf".format(
org, course_num) org, course_num)
elif (enrollment.mode == CertificateModes.verified and not
SoftwareSecurePhotoVerification.user_is_verified(student)):
template_pdf = "certificate-template-{0}-{1}.pdf".format(
org, course_num)
cert_mode = CertificateModes.honor
else: else:
# honor code and audit students # honor code and audit students
template_pdf = "certificate-template-{0}-{1}.pdf".format( template_pdf = "certificate-template-{0}-{1}.pdf".format(
...@@ -189,8 +195,7 @@ class XQueueCertInterface(object): ...@@ -189,8 +195,7 @@ class XQueueCertInterface(object):
cert, created = GeneratedCertificate.objects.get_or_create( cert, created = GeneratedCertificate.objects.get_or_create(
user=student, course_id=course_id) user=student, course_id=course_id)
cert.mode = enrollment.mode cert.mode = cert_mode
cert.user = student cert.user = student
cert.grade = grade['percent'] cert.grade = grade['percent']
cert.course_id = course_id cert.course_id = course_id
......
...@@ -19,7 +19,7 @@ else: ...@@ -19,7 +19,7 @@ else:
% elif cert_status['status'] in ('generating', 'ready', 'notpassing', 'restricted'): % elif cert_status['status'] in ('generating', 'ready', 'notpassing', 'restricted'):
<p class="message-copy">${_("Your final grade:")} <p class="message-copy">${_("Your final grade:")}
<span class="grade-value">${"{0:.0f}%".format(float(cert_status['grade'])*100)}</span>. <span class="grade-value">${"{0:.0f}%".format(float(cert_status['grade'])*100)}</span>.
% if cert_status['status'] == 'notpassing': % if cert_status['status'] == 'notpassing' and enrollment.mode != 'audit':
${_("Grade required for a certificate:")} <span class="grade-value"> ${_("Grade required for a certificate:")} <span class="grade-value">
${"{0:.0f}%".format(float(course.lowest_passing_grade)*100)}</span>. ${"{0:.0f}%".format(float(course.lowest_passing_grade)*100)}</span>.
% elif cert_status['status'] == 'restricted' and enrollment.mode == 'verified': % elif cert_status['status'] == 'restricted' and enrollment.mode == 'verified':
...@@ -44,6 +44,12 @@ else: ...@@ -44,6 +44,12 @@ else:
<a class="btn" href="${cert_status['download_url']}" <a class="btn" href="${cert_status['download_url']}"
title="${_('This link will open/download a PDF document')}"> title="${_('This link will open/download a PDF document')}">
${_("Download Your Certificate (PDF)")}</a></li> ${_("Download Your Certificate (PDF)")}</a></li>
% elif cert_status['show_download_url'] and enrollment.mode == 'verified' and cert_status['mode'] == 'honor':
<li class="action">
<p>${_('Since we did not have a valid set of verification photos from you when certificates were generated, we could not grant you a verified certificate. An honor code certificate has been granted instead.')}</p>
<a class="btn" href="${cert_status['download_url']}"
title="${_('This link will open/download a PDF document')}">
${_("Download Your Certificate (PDF)")}</a></li>
% elif cert_status['show_download_url'] and enrollment.mode == 'verified': % elif cert_status['show_download_url'] and enrollment.mode == 'verified':
<li class="action"> <li class="action">
<a class="btn" href="${cert_status['download_url']}" <a class="btn" href="${cert_status['download_url']}"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment