def enroll_students(self): """Enrolls students or applicants. :param self: Program Enrollment Tool This is a copy of ERPNext function meant to allow loading from custom doctypes and frappe.enqueue Used in csf_tz.custom_api.enroll_students """ from erpnext.education.api import enroll_student total = len(self.students) for i, stud in enumerate(self.students): frappe.publish_realtime("program_enrollment_tool", dict(progress=[i+1, total]), user=frappe.session.user) if stud.student: prog_enrollment = frappe.new_doc("Program Enrollment") prog_enrollment.student = stud.student prog_enrollment.student_name = stud.student_name prog_enrollment.program = self.new_program prog_enrollment.academic_year = self.new_academic_year prog_enrollment.academic_term = self.new_academic_term prog_enrollment.student_batch_name = stud.student_batch_name if stud.student_batch_name else self.new_student_batch prog_enrollment.save() elif stud.student_applicant: prog_enrollment = enroll_student(stud.student_applicant) prog_enrollment.academic_year = self.academic_year prog_enrollment.academic_term = self.academic_term prog_enrollment.student_batch_name = stud.student_batch_name if stud.student_batch_name else self.new_student_batch prog_enrollment.save()
def enroll_students(self): total = len(self.students) for i, stud in enumerate(self.students): frappe.publish_realtime("program_enrollment_tool", dict(progress=[i + 1, total]), user=frappe.session.user) if stud.student: prog_enrollment = frappe.new_doc("Program Enrollment") prog_enrollment.student = stud.student prog_enrollment.student_name = stud.student_name prog_enrollment.student_category = stud.student_category prog_enrollment.program = self.new_program prog_enrollment.academic_year = self.new_academic_year prog_enrollment.academic_term = self.new_academic_term prog_enrollment.student_batch_name = ( stud.student_batch_name if stud.student_batch_name else self.new_student_batch) prog_enrollment.save() elif stud.student_applicant: prog_enrollment = enroll_student(stud.student_applicant) prog_enrollment.academic_year = self.academic_year prog_enrollment.academic_term = self.academic_term prog_enrollment.student_batch_name = ( stud.student_batch_name if stud.student_batch_name else self.new_student_batch) prog_enrollment.save() frappe.msgprint(_("{0} Students have been enrolled").format(total))
def enroll_students(self): for stud in self.students: if stud.student: prog_enrollment = frappe.new_doc("Program Enrollment") prog_enrollment.student = stud.student prog_enrollment.student_name = stud.student_name prog_enrollment.student_batch_name = stud.student_batch_name prog_enrollment.program = self.new_program prog_enrollment.academic_year = self.new_academic_year prog_enrollment.save() elif stud.student_applicant: prog_enrollment = enroll_student(stud.student_applicant) prog_enrollment.academic_year = self.academic_year prog_enrollment.save() frappe.msgprint("Students have been enrolled.")
def enroll_random_student(current_date): batch = ["Section-A", "Section-B"] random_student = get_random("Student Applicant", {"application_status": "Approved"}) if random_student: enrollment = enroll_student(random_student) enrollment.academic_year = get_random("Academic Year") enrollment.enrollment_date = current_date enrollment.student_batch_name = batch[weighted_choice([9,3])] fee_schedule = get_fee_schedule(enrollment.program) for fee in fee_schedule: enrollment.append("fees", fee) enrolled_courses = get_course(enrollment.program) for course in enrolled_courses: enrollment.append("courses", course) enrollment.submit() frappe.db.commit() assign_student_group(enrollment.student, enrollment.student_name, enrollment.program, enrolled_courses, enrollment.student_batch_name)