Merge pull request #9468 from manassolanki/issue-11

in program enrollment filter out students which are already enrolled
This commit is contained in:
Makarand Bauskar 2017-06-29 10:48:12 +05:30 committed by GitHub
commit ef95b4d6e3
2 changed files with 41 additions and 0 deletions

View File

@ -30,6 +30,16 @@ frappe.ui.form.on("Program Enrollment", {
} }
}); });
} }
frm.set_query("student", function() {
return{
query: "erpnext.schools.doctype.program_enrollment.program_enrollment.get_students",
filters: {
'academic_year': frm.doc.academic_year,
'academic_term': frm.doc.academic_term
}
}
});
}, },
program: function(frm) { program: function(frm) {

View File

@ -77,3 +77,34 @@ def get_program_courses(doctype, txt, searchfield, start, page_len, filters):
"_txt": txt.replace('%', ''), "_txt": txt.replace('%', ''),
"program": filters['program'] "program": filters['program']
}) })
@frappe.whitelist()
def get_students(doctype, txt, searchfield, start, page_len, filters):
if not filters.get("academic_term"):
filters["academic_term"] = frappe.defaults.get_defaults().academic_term
if not filters.get("academic_year"):
filters["academic_year"] = frappe.defaults.get_defaults().academic_year
enrolled_students = frappe.get_list("Program Enrollment", filters={
"academic_term": filters.get('academic_term'),
"academic_year": filters.get('academic_year')
}, fields=["student"])
students = [d.student for d in enrolled_students] if enrolled_students else [""]
return frappe.db.sql("""select
name, title from tabStudent
where
name not in (%s)
and
`%s` LIKE %s
order by
idx desc, name
limit %s, %s"""%(
", ".join(['%s']*len(students)), searchfield, "%s", "%s", "%s"),
tuple(students + ["%%%s%%" % txt, start, page_len]
)
)