예제 #1
0
파일: utils.py 프로젝트: wbaiyan/fun-apps
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
예제 #2
0
파일: utils.py 프로젝트: wbaiyan/fun-apps
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
예제 #3
0
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()