From 800c69eec328e47d9dcacbd70f9fa68890f1b755 Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Thu, 29 Jun 2017 12:56:03 +0530 Subject: [PATCH] validate the duplicate assessment criteria --- .../doctype/assessment_plan/assessment_plan.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/erpnext/schools/doctype/assessment_plan/assessment_plan.py b/erpnext/schools/doctype/assessment_plan/assessment_plan.py index f988886fca..a09f3ee67d 100644 --- a/erpnext/schools/doctype/assessment_plan/assessment_plan.py +++ b/erpnext/schools/doctype/assessment_plan/assessment_plan.py @@ -11,6 +11,7 @@ class AssessmentPlan(Document): def validate(self): self.validate_overlap() self.validate_max_score() + self.validate_assessment_criteria() def validate_overlap(self): """Validates overlap for Student Group, Instructor, Room""" @@ -37,3 +38,13 @@ class AssessmentPlan(Document): max_score += d.maximum_score if self.maximum_assessment_score != max_score: frappe.throw(_("Sum of Scores of Assessment Criteria needs to be {0}.".format(self.maximum_assessment_score))) + + def validate_assessment_criteria(self): + assessment_criteria_list = frappe.db.sql_list(''' select apc.assessment_criteria + from `tabAssessment Plan` ap , `tabAssessment Plan Criteria` apc + where ap.name = apc.parent and ap.course=%s and ap.student_group=%s and ap.assessment_group=%s + and ap.name != %s''', (self.course, self.student_group, self.assessment_group, self.name)) + for d in self.assessment_criteria: + if d.assessment_criteria in assessment_criteria_list: + frappe.throw(_("You have already assessed for the assessment criteria {}.") + .format(frappe.bold(d.assessment_criteria)))