Пример #1
0
def preview_report_card(doc):
    doc = frappe._dict(json.loads(doc))
    doc.students = [doc.student]
    if not (doc.student_name and doc.student_batch):
        program_enrollment = frappe.get_all(
            "Program Enrollment",
            fields=["student_batch_name", "student_name"],
            filters={
                "student": doc.student,
                "docstatus": ('!=', 2),
                "academic_year": doc.academic_year
            })
        if program_enrollment:
            doc.batch = program_enrollment[0].student_batch_name
            doc.student_name = program_enrollment[0].student_name

    # get the assessment result of the selected student
    values = get_formatted_result(
        doc,
        get_course=True,
        get_all_assessment_groups=doc.include_all_assessment)
    assessment_result = values.get("assessment_result").get(doc.student)
    courses = values.get("course_dict")
    course_criteria = get_courses_criteria(courses)

    # get the assessment group as per the user selection
    if doc.include_all_assessment:
        assessment_groups = get_child_assessment_groups(doc.assessment_group)
    else:
        assessment_groups = [doc.assessment_group]

    # get the attendance of the student for that peroid of time.
    doc.attendance = get_attendance_count(doc.students[0], doc.academic_year,
                                          doc.academic_term)

    template = "erpnext/education/doctype/student_report_generation_tool/student_report_generation_tool.html"
    base_template_path = "frappe/www/printview.html"

    from frappe.www.printview import get_letter_head
    letterhead = get_letter_head(frappe._dict({"letter_head": doc.letterhead}),
                                 not doc.add_letterhead)

    html = frappe.render_template(
        template, {
            "doc": doc,
            "assessment_result": assessment_result,
            "courses": courses,
            "assessment_groups": assessment_groups,
            "course_criteria": course_criteria,
            "letterhead": letterhead and letterhead.get('content', None),
            "add_letterhead": doc.add_letterhead if doc.add_letterhead else 0
        })
    final_template = frappe.render_template(base_template_path, {
        "body": html,
        "title": "Report Card"
    })

    frappe.response.filename = "Report Card " + doc.students[0] + ".pdf"
    frappe.response.filecontent = get_pdf(final_template)
    frappe.response.type = "download"
def preview_report_card(doc):
	doc = frappe._dict(json.loads(doc))
	doc.students = [doc.student]
	if not (doc.student_name and doc.student_batch):
		program_enrollment = frappe.get_all("Program Enrollment", fields=["student_batch_name", "student_name"],
			filters={"student": doc.student, "docstatus": ('!=', 2), "academic_year": doc.academic_year})
		if program_enrollment:
			doc.batch = program_enrollment[0].student_batch_name
			doc.student_name = program_enrollment[0].student_name

	# get the assessment result of the selected student
	values = get_formatted_result(doc, get_course=True, get_all_assessment_groups=doc.include_all_assessment)
	assessment_result = values.get("assessment_result").get(doc.student)
	courses = values.get("course_dict")
	course_criteria = get_courses_criteria(courses)

	# get the assessment group as per the user selection
	if doc.include_all_assessment:
		assessment_groups = get_child_assessment_groups(doc.assessment_group)
	else:
		assessment_groups = [doc.assessment_group]

	# get the attendance of the student for that peroid of time.
	doc.attendance = get_attendance_count(doc.students[0], doc.academic_year, doc.academic_term)

	template = "erpnext/education/doctype/student_report_generation_tool/student_report_generation_tool.html"
	base_template_path = "frappe/www/printview.html"

	from frappe.www.printview import get_letter_head
	letterhead = get_letter_head(frappe._dict({"letter_head": doc.letterhead}), not doc.add_letterhead)

	html = frappe.render_template(template,
		{
			"doc": doc,
			"assessment_result": assessment_result,
			"courses": courses,
			"assessment_groups": assessment_groups,
			"course_criteria": course_criteria,
			"letterhead": letterhead.content,
			"add_letterhead": doc.add_letterhead if doc.add_letterhead else 0
		})
	final_template = frappe.render_template(base_template_path, {"body": html, "title": "Report Card"})

	frappe.response.filename = "Report Card " + doc.students[0] + ".pdf"
	frappe.response.filecontent = get_pdf(final_template)
	frappe.response.type = "download"