Example #1
0
def download(request, course_id):
    user = request.user

    if is_student_pass(user, request, course_id):
        pdf_file = generate_certificate(request, course_id)
        wrapper = FileWrapper(pdf_file)

        # `application/octet-stream` is to force download
        response = HttpResponse(wrapper, content_type='application/octet-stream')

        response['Content-Length'] = os.path.getsize(pdf_file.name)
        response['Content-Disposition'] = "attachment; filename=Edraak-Certificate.pdf"

        return response
    else:
        return redirect(reverse('dashboard'))
Example #2
0
def preview(request, course_id):
    user = request.user

    if is_student_pass(user, request, course_id):
        pdf_file = generate_certificate(request, course_id)
        image_file = NamedTemporaryFile(suffix='-cert.png')

        with Image(filename=pdf_file.name) as img:
            with img.clone() as i:
                # i.resize(445, 315)
                i.save(filename=image_file.name)

        wrapper = FileWrapper(image_file)
        response = HttpResponse(wrapper, content_type='image/png')
        response['Content-Length'] = os.path.getsize(image_file.name)

        return response
    else:
        return redirect(reverse('dashboard'))
Example #3
0
def view(request, course_id):
    user = request.user

    course_key = locator.CourseLocator.from_string(course_id)
    course = modulestore().get_course(course_key)

    if is_certificate_allowed(user, course) and is_student_pass(user, request, course_id):
        template = 'edraak_certificates/view.html'
    else:
        template = 'edraak_certificates/fail.html'

    course_end_date = course.end or date.today()
    course_expiration_date = course_end_date + relativedelta(years=settings.BAYT_VALID_YEARS)

    return render_to_response(template, {
        'user': user,
        'cert_course': course,  # Course name is set to `cert_course` to avoid header design bug
        'cert_end': course_expiration_date.strftime('%m-%Y')
    })
 def get_completed(self, obj):
     request = self.context['request']
     course_id_str = str(obj.id)
     return bool(is_student_pass(request.user, request, course_id_str))