From b3b003f51817be129606b1f88b6c02e7fcffa1bb Mon Sep 17 00:00:00 2001 From: scmmishra Date: Mon, 8 Oct 2018 15:24:10 +0530 Subject: [PATCH] course_activity: create doctype for tracking student course activity Co-authored-by: Chinmay Pai --- .../student_course_activity.json | 75 ++++++++++++++++++- .../student_course_activity.py | 17 ++++- 2 files changed, 88 insertions(+), 4 deletions(-) diff --git a/erpnext/education/doctype/student_course_activity/student_course_activity.json b/erpnext/education/doctype/student_course_activity/student_course_activity.json index 96041c89ad..1d8f98d0b1 100644 --- a/erpnext/education/doctype/student_course_activity/student_course_activity.json +++ b/erpnext/education/doctype/student_course_activity/student_course_activity.json @@ -3,6 +3,7 @@ "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, + "autoname": "format:{student_name}-{program_name}", "beta": 0, "creation": "2018-10-01 17:35:54.391413", "custom": 0, @@ -19,8 +20,8 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fieldname": "data_1", - "fieldtype": "Data", + "fieldname": "student_name", + "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, @@ -28,8 +29,76 @@ "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, + "label": "Student Name", "length": 0, "no_copy": 0, + "options": "Student", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "program_name", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Program Name", + "length": 0, + "no_copy": 0, + "options": "Program", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "lms_activity", + "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "LMS Activity", + "length": 0, + "no_copy": 0, + "options": "LMS Activity", "permlevel": 0, "precision": "", "print_hide": 0, @@ -54,7 +123,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2018-10-01 17:35:54.391413", + "modified": "2018-10-08 12:10:28.602848", "modified_by": "Administrator", "module": "Education", "name": "Student Course Activity", diff --git a/erpnext/education/doctype/student_course_activity/student_course_activity.py b/erpnext/education/doctype/student_course_activity/student_course_activity.py index 92d26822d1..bf5778fc36 100644 --- a/erpnext/education/doctype/student_course_activity/student_course_activity.py +++ b/erpnext/education/doctype/student_course_activity/student_course_activity.py @@ -7,4 +7,19 @@ import frappe from frappe.model.document import Document class StudentCourseActivity(Document): - pass + def validate(self): + self.check_if_enrolled() + # self.check_if_course_present() + + def check_if_enrolled(self): + programs_list = frappe.get_list("Program Enrollment", filters={'student': self.student_name}, fields=['program']) + programs_enrolled_by_student = [item.program for item in programs_list] + if self.program_name not in programs_enrolled_by_student: + frappe.throw("Student {0} is not enrolled in program {1} ".format(self.student_name, self.program_name)) + + # def check_if_course_present(self): + # """ Get set of unique courses from lms_activity child table and make a list of it as assign it to course_list""" + # course_list = list(set([activity.course_name for activity in self.lms_activity])) + # current_program = frappe.get_doc('Program', self.program_name) + # courses_in_current_program = [course.course_name for course in current_program.courses] + # if len(set(courses_in_current_program) - set(course_list)) == 0: \ No newline at end of file