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):
mode = models.CharField(max_length=32, default=CertificateModes.honor)
name = models.CharField(blank=True, max_length=255)
created_date = models.DateTimeField(
auto_now_add=True, default=datetime.now)
auto_now_add=True, default=datetime.now)
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='')
class Meta:
......@@ -133,8 +133,9 @@ def certificate_status_for_student(student, course_id):
try:
generated_certificate = GeneratedCertificate.objects.get(
user=student, course_id=course_id)
d = {'status': generated_certificate.status}
user=student, course_id=course_id)
d = {'status': generated_certificate.status,
'mode': generated_certificate.mode}
if generated_certificate.grade:
d['grade'] = generated_certificate.grade
if generated_certificate.status == CertificateStatuses.downloadable:
......
......@@ -178,9 +178,15 @@ class XQueueCertInterface(object):
enrollment = CourseEnrollment.objects.get(user=student, course_id=course_id)
org = course_id.split('/')[0]
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(
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:
# honor code and audit students
template_pdf = "certificate-template-{0}-{1}.pdf".format(
......@@ -189,8 +195,7 @@ class XQueueCertInterface(object):
cert, created = GeneratedCertificate.objects.get_or_create(
user=student, course_id=course_id)
cert.mode = enrollment.mode
cert.mode = cert_mode
cert.user = student
cert.grade = grade['percent']
cert.course_id = course_id
......
......@@ -19,7 +19,7 @@ else:
% elif cert_status['status'] in ('generating', 'ready', 'notpassing', 'restricted'):
<p class="message-copy">${_("Your final grade:")}
<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">
${"{0:.0f}%".format(float(course.lowest_passing_grade)*100)}</span>.
% elif cert_status['status'] == 'restricted' and enrollment.mode == 'verified':
......@@ -44,6 +44,12 @@ else:
<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' 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':
<li class="action">
<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