fix: validation for attendance marked on future dates
diff --git a/erpnext/education/doctype/student_attendance/student_attendance.py b/erpnext/education/doctype/student_attendance/student_attendance.py
index c1b6850..55c6de6 100644
--- a/erpnext/education/doctype/student_attendance/student_attendance.py
+++ b/erpnext/education/doctype/student_attendance/student_attendance.py
@@ -6,13 +6,13 @@
import frappe
from frappe.model.document import Document
from frappe import _
-from frappe.utils import get_link_to_form
+from frappe.utils import get_link_to_form, getdate
from erpnext.education.api import get_student_group_students
-
class StudentAttendance(Document):
def validate(self):
self.validate_mandatory()
+ self.validate_date()
self.set_date()
self.set_student_group()
self.validate_student()
@@ -27,6 +27,10 @@
frappe.throw(_('{0} or {1} is mandatory').format(frappe.bold('Student Group'),
frappe.bold('Course Schedule')), title=_('Mandatory Fields'))
+ def validate_date(self):
+ if getdate(self.date) > getdate():
+ frappe.throw(_('Attendance cannot be marked for future dates.'))
+
def set_student_group(self):
if self.course_schedule:
self.student_group = frappe.db.get_value('Course Schedule', self.course_schedule, 'student_group')
diff --git a/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
index 0384505..973082f 100644
--- a/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
+++ b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
@@ -52,6 +52,8 @@
},
date: function(frm) {
+ if (frm.doc.date > frappe.datetime.get_today())
+ frappe.throw(__("Cannot mark attendance for future dates."));
frm.trigger("student_group");
},