Merge pull request #7678 from neilLasrado/stud-att
Added validations to Student Attendance
This commit is contained in:
commit
c28598ae8b
@ -6,11 +6,15 @@ from __future__ import unicode_literals
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe import _
|
from frappe import _
|
||||||
|
from erpnext.schools.api import get_student_batch_students, get_student_group_students
|
||||||
|
|
||||||
|
|
||||||
class StudentAttendance(Document):
|
class StudentAttendance(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
self.validate_date()
|
self.validate_date()
|
||||||
self.validate_mandatory()
|
self.validate_mandatory()
|
||||||
|
self.validate_course_schedule()
|
||||||
|
self.validate_student()
|
||||||
self.validate_duplication()
|
self.validate_duplication()
|
||||||
|
|
||||||
def validate_date(self):
|
def validate_date(self):
|
||||||
@ -21,9 +25,27 @@ class StudentAttendance(Document):
|
|||||||
if not (self.student_batch or self.course_schedule):
|
if not (self.student_batch or self.course_schedule):
|
||||||
frappe.throw(_("""Student Batch or Course Schedule is mandatory"""))
|
frappe.throw(_("""Student Batch or Course Schedule is mandatory"""))
|
||||||
|
|
||||||
|
def validate_course_schedule(self):
|
||||||
|
if self.course_schedule:
|
||||||
|
self.student_batch = frappe.db.get_value("Course Schedule", self.course_schedule, "student_batch")
|
||||||
|
|
||||||
|
def validate_student(self):
|
||||||
|
if self.course_schedule:
|
||||||
|
student_group = frappe.db.get_value("Course Schedule", self.course_schedule, "student_group")
|
||||||
|
student_group_students = []
|
||||||
|
for d in get_student_group_students(student_group):
|
||||||
|
student_group_students.append(d.student)
|
||||||
|
if student_group and self.student not in student_group_students:
|
||||||
|
frappe.throw(_("""Student {0}: {1} does not belong to Student Group {2}""".format(self.student, self.student_name, student_group)))
|
||||||
|
else:
|
||||||
|
student_batch_students = []
|
||||||
|
for d in get_student_batch_students(self.student_batch):
|
||||||
|
student_batch_students.append(d.student)
|
||||||
|
if self.student not in student_batch_students:
|
||||||
|
frappe.throw(_("""Student {0}: {1} does not belong to Student Batch {2}""".format(self.student, self.student_name, self.student_batch)))
|
||||||
|
|
||||||
def validate_duplication(self):
|
def validate_duplication(self):
|
||||||
"""Check if the Attendance Record is Unique"""
|
"""Check if the Attendance Record is Unique"""
|
||||||
|
|
||||||
attendance_records=None
|
attendance_records=None
|
||||||
if self.course_schedule:
|
if self.course_schedule:
|
||||||
attendance_records= frappe.db.sql("""select name from `tabStudent Attendance` where \
|
attendance_records= frappe.db.sql("""select name from `tabStudent Attendance` where \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user