From fc85768685eb575b8fb40f6f189b8942338f8b6a Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Wed, 5 Jul 2017 16:35:35 +0530 Subject: [PATCH] show inactive students in the monthly attendance reoprt --- erpnext/schools/api.py | 10 +++++++--- .../student_monthly_attendance_sheet.py | 9 +++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/erpnext/schools/api.py b/erpnext/schools/api.py index db65a69602..c613c8c5a6 100644 --- a/erpnext/schools/api.py +++ b/erpnext/schools/api.py @@ -114,13 +114,17 @@ def get_student_guardians(student): return guardians @frappe.whitelist() -def get_student_group_students(student_group): +def get_student_group_students(student_group, include_inactive=0): """Returns List of student, student_name in Student Group. :param student_group: Student Group. """ - students = frappe.get_list("Student Group Student", fields=["student", "student_name"] , - filters={"parent": student_group, "active": 1}, order_by= "group_roll_number") + if include_inactive: + students = frappe.get_list("Student Group Student", fields=["student", "student_name"] , + filters={"parent": student_group}, order_by= "group_roll_number") + else: + students = frappe.get_list("Student Group Student", fields=["student", "student_name"] , + filters={"parent": student_group, "active": 1}, order_by= "group_roll_number") return students @frappe.whitelist() diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py index 1e79a93282..d869cec01d 100644 --- a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py +++ b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py @@ -15,19 +15,24 @@ def execute(filters=None): to_date = get_last_day(filters["month"] + '-' + filters["year"]) total_days_in_month = date_diff(to_date, from_date) +1 columns = get_columns(total_days_in_month) - students = get_student_group_students(filters.get("student_group")) + students = get_student_group_students(filters.get("student_group"),1) students_list = get_students_list(students) att_map = get_attendance_list(from_date, to_date, filters.get("student_group"), students_list) data = [] for stud in students: row = [stud.student, stud.student_name] + student_status = frappe.db.get_value("Student", stud.student, "enabled") date = from_date total_p = total_a = 0.0 for day in range(total_days_in_month): status="None" if att_map.get(stud.student): status = att_map.get(stud.student).get(date, "None") - status_map = {"Present": "P", "Absent": "A", "None": ""} + elif not student_status: + status = "Inactive" + else: + status = "None" + status_map = {"Present": "P", "Absent": "A", "None": "", "Inactive":"-"} row.append(status_map[status]) if status == "Present": total_p += 1