def create_test_certificate(course_key): """ Generate the pdf certicate, save it on disk """ (course_display_name, university, teachers, certificate_language) = get_certificate_params(course_key) certificate_filename = make_certificate_filename(course_key, prefix="TEST_") certificate = CertificateInfo(settings.STUDENT_NAME_FOR_TEST_CERTIFICATE, course_display_name, university, certificate_filename, teachers, language=certificate_language) certificate.generate() return certificate
def generate_fun_certificate(student, course, teachers, university): """Generates a certificate for one student and one course.""" # grade the student cert, _created = GeneratedCertificate.objects.get_or_create( user=student, course_id=course.id) # TODO We need to create a request object manually. It's very ugly and we should # do something about it. request = RequestFactory().get('/') request.session = {} request.user = student grade = grades.grade(student, request, course) cert.grade = grade['percent'] cert.name = student.profile.name if grade['grade'] is None: cert.status = CertificateStatuses.notpassing else: key = make_certificate_hash_key() certificate_filename = "attestation_suivi_{}_{}.pdf".format( (unicode(course.id).replace('/', '_')), key) cert.key = key certificate_language = Course.get_course_language(unicode(course.id)) course_display_name = unicode(course.display_name).encode('utf-8') CertificateInfo(student.profile.name, course_display_name, university, certificate_filename, teachers, language=certificate_language).generate() set_certificate_filename(cert, certificate_filename) cert.save() logger.info("Honor certificate status for student {}: {}".format( student.username, cert.status)) trigger_tracking_log(cert, course, student) return cert.status
def regenerate_certificate(course_id, user, certificate): """Generate or Regenerate PDF and attach to already existing GeneratedCertificate, then force state to 'downloadable'. """ (course_display_name, university, teachers, certificate_language) = get_certificate_params(course_id) if certificate.status != CertificateStatuses.downloadable: certificate.key = make_certificate_hash_key() certificate.mode = GeneratedCertificate.MODES.honor certificate_filename = make_certificate_filename(course_id, key=certificate.key) CertificateInfo(user.profile.name, course_display_name, university, certificate_filename, teachers, language=certificate_language).generate() set_certificate_filename(certificate, certificate_filename) certificate.save()