From 810e4837572f89ac3e5c332ccf0ac877d7f6d68a Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Tue, 18 Apr 2017 15:37:22 +0530 Subject: [PATCH] Changes in the student group --- .../student_batch_name/test_records.json | 8 + .../doctype/student_group/student_group.js | 89 +++- .../doctype/student_group/student_group.json | 419 ++++++++++++------ .../doctype/student_group/student_group.py | 85 ++-- .../doctype/student_group/test_records.json | 13 +- .../student_group_instructor/__init__.py | 0 .../student_group_instructor.json | 129 ++++++ .../student_group_instructor.py | 10 + .../student_group_student.json | 93 ++-- .../student_group_student.py | 2 +- 10 files changed, 631 insertions(+), 217 deletions(-) create mode 100644 erpnext/schools/doctype/student_batch_name/test_records.json create mode 100644 erpnext/schools/doctype/student_group_instructor/__init__.py create mode 100644 erpnext/schools/doctype/student_group_instructor/student_group_instructor.json create mode 100644 erpnext/schools/doctype/student_group_instructor/student_group_instructor.py diff --git a/erpnext/schools/doctype/student_batch_name/test_records.json b/erpnext/schools/doctype/student_batch_name/test_records.json new file mode 100644 index 0000000000..bf365c638a --- /dev/null +++ b/erpnext/schools/doctype/student_batch_name/test_records.json @@ -0,0 +1,8 @@ +[ + { + "batch_name": "_Batch 1" + }, + { + "batch_name": "_Batch 2" + } +] \ No newline at end of file diff --git a/erpnext/schools/doctype/student_group/student_group.js b/erpnext/schools/doctype/student_group/student_group.js index 595fa08d9d..2e2e121db9 100644 --- a/erpnext/schools/doctype/student_group/student_group.js +++ b/erpnext/schools/doctype/student_group/student_group.js @@ -1,19 +1,23 @@ cur_frm.add_fetch("student", "title", "student_name"); frappe.ui.form.on("Student Group", { + onload: function(frm) { + frm.set_query("academic_term", function() { + return { + "filters": { + "academic_year": (frm.doc.academic_year) + } + }; + }); + }, + refresh: function(frm) { if (!frm.doc.__islocal) { frm.add_custom_button(__("Course Schedule"), function() { - frappe.route_options = { - student_group: frm.doc.name - } frappe.set_route("List", "Course Schedule"); }); frm.add_custom_button(__("Assessment Plan"), function() { - frappe.route_options = { - student_group: frm.doc.name - } frappe.set_route("List", "Assessment Plan"); }); frm.add_custom_button(__("Update Email Group"), function() { @@ -30,19 +34,68 @@ frappe.ui.form.on("Student Group", { }); } }, + + group_based_on: function(frm) { + if (frm.doc.group_based_on == "Batch") { + frm.doc.course = null; + } + else if (frm.doc.group_based_on == "Course") { + frm.doc.program = null; + frm.doc.batch = null; + } + frm.trigger("set_name"); + }, - onload: function(frm) { - frm.set_query("academic_term", function() { - return { - "filters": { - "academic_year": (frm.doc.academic_year) + set_name: function(frm) { + var name; + if (frm.doc.group_based_on == "Course") { + name = "Course-" + frm.doc.course + "-" + (frm.doc.academic_term?frm.doc.academic_term:frm.doc.academic_year); + } else if (frm.doc.group_based_on == "Batch") { + name = "Batch-" + frm.doc.program + "-" + frm.doc.batch + "-" + + (frm.doc.academic_term?frm.doc.academic_term:frm.doc.academic_year); + } else if (frm.doc.group_based_on == "Activity") { + name = "Activity" + "-" + (frm.doc.academic_term?frm.doc.academic_term:frm.doc.academic_year); + } + frm.set_value("student_group_name", name); + }, + + program:function(frm) { + frm.trigger("set_name"); + }, + + batch:function(frm) { + frm.trigger("set_name"); + }, + + course:function(frm) { + frm.trigger("set_name"); + }, + + update_students: function(frm) { + if (frm.doc.students.length === 0) { + frm.doc.next_group_roll_number = 1; + } + frappe.call({ + method: "update_students", + doc:frm.doc, + callback: function(r) { + if(r.message) { + $.each(r.message, function(i, d) { + var s = frm.add_child("students"); + s.student = d.student; + s.student_name = d.student_name; + if (d.active === 0) { + s.active = 0; + } + s.group_roll_number = frm.doc.next_group_roll_number; + frm.doc.next_group_roll_number += 1; + }); + frm.save(); + } else { + frappe.msgprint(__("Group already updated")) } - }; - }); + } + }) } -}); -//If Student Batch is entered, deduce program, academic_year and academic term from it -cur_frm.add_fetch("student_batch", "program", "program"); -cur_frm.add_fetch("student_batch", "academic_term", "academic_term"); -cur_frm.add_fetch("student_batch", "academic_year", "academic_year"); \ No newline at end of file +}); \ No newline at end of file diff --git a/erpnext/schools/doctype/student_group/student_group.json b/erpnext/schools/doctype/student_group/student_group.json index cf42e2437f..8474f74545 100644 --- a/erpnext/schools/doctype/student_group/student_group.json +++ b/erpnext/schools/doctype/student_group/student_group.json @@ -1,8 +1,9 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 1, "allow_rename": 1, - "autoname": "", + "autoname": "field:student_group_name", "beta": 0, "creation": "2015-09-07 12:55:52.072792", "custom": 0, @@ -12,36 +13,6 @@ "editable_grid": 0, "engine": "InnoDB", "fields": [ - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "student_batch", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Student Batch", - "length": 0, - "no_copy": 0, - "options": "Student Batch", - "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, - "unique": 0 - }, { "allow_on_submit": 0, "bold": 0, @@ -54,7 +25,7 @@ "ignore_xss_filter": 0, "in_filter": 0, "in_global_search": 0, - "in_list_view": 1, + "in_list_view": 0, "in_standard_filter": 1, "label": "Academic Year", "length": 0, @@ -77,107 +48,19 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fieldname": "academic_term", - "fieldtype": "Link", + "fieldname": "group_based_on", + "fieldtype": "Select", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, "in_global_search": 0, "in_list_view": 1, - "in_standard_filter": 1, - "label": "Academic Term", - "length": 0, - "no_copy": 0, - "options": "Academic Term", - "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": 1, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_3", - "fieldtype": "Column Break", - "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": "Group Based on", "length": 0, "no_copy": 0, - "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, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "program", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Program", - "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": 1, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "course", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 1, - "in_standard_filter": 1, - "label": "Course", - "length": 0, - "no_copy": 0, - "options": "Course", + "options": "\nBatch\nCourse\nActivity", "permlevel": 0, "precision": "", "print_hide": 0, @@ -220,12 +103,194 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_3", + "fieldtype": "Column Break", + "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, + "length": 0, + "no_copy": 0, + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "academic_term", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Academic Term", + "length": 0, + "no_copy": 0, + "options": "Academic Term", + "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": 1, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:doc.group_based_on == 'Batch'", + "fieldname": "program", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Program", + "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": 1, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:doc.group_based_on == 'Batch'", + "fieldname": "batch", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Batch", + "length": 0, + "no_copy": 0, + "options": "Student Batch Name", + "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": 1, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:doc.group_based_on == 'Course'", + "fieldname": "course", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 0, + "in_standard_filter": 1, + "label": "Course", + "length": 0, + "no_copy": 0, + "options": "Course", + "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": 1, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "group_based_on", + "fieldname": "student_group_name", + "fieldtype": "Data", + "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": "Student Group Name", + "length": 0, + "no_copy": 0, + "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, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, "collapsible": 0, "collapsible_depends_on": "", "columns": 0, + "depends_on": "eval:!doc.__islocal", "fieldname": "section_break_6", "fieldtype": "Section Break", "hidden": 0, @@ -250,6 +315,35 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "update_students", + "fieldtype": "Button", + "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": "Update Students", + "length": 0, + "no_copy": 0, + "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, + "unique": 0 + }, { "allow_on_submit": 1, "bold": 0, @@ -285,8 +379,8 @@ "bold": 0, "collapsible": 0, "columns": 0, - "fieldname": "amended_from", - "fieldtype": "Link", + "fieldname": "section_break_12", + "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, @@ -294,12 +388,71 @@ "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, - "label": "Amended From", + "label": "Instructors", "length": 0, - "no_copy": 1, - "options": "Student Group", + "no_copy": 0, "permlevel": 0, - "print_hide": 1, + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "instructors", + "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": "Instructors", + "length": 0, + "no_copy": 0, + "options": "Student Group Instructor", + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "next_group_roll_number", + "fieldtype": "Int", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Next Group Roll Number", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 1, "remember_last_selected_value": 0, @@ -310,18 +463,18 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 0, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2017-02-17 17:16:31.682311", + "modified": "2017-04-19 12:48:46.526133", "modified_by": "Administrator", "module": "Schools", "name": "Student Group", @@ -372,7 +525,7 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, - "search_fields": "program, course", + "search_fields": "program, batch, course", "show_name_in_global_search": 0, "sort_field": "modified", "sort_order": "DESC", diff --git a/erpnext/schools/doctype/student_group/student_group.py b/erpnext/schools/doctype/student_group/student_group.py index 996f518813..56c3524717 100644 --- a/erpnext/schools/doctype/student_group/student_group.py +++ b/erpnext/schools/doctype/student_group/student_group.py @@ -10,47 +10,64 @@ from erpnext.schools.utils import validate_duplicate_student from erpnext.schools.api import get_student_batch_students class StudentGroup(Document): - def autoname(self): - self.name = frappe.db.get_value("Course", self.course, "course_abbreviation") - if not self.name: - self.name = self.course - if self.student_batch: - self.name += "-" + self.student_batch - else: - prog_abb = frappe.db.get_value("Program", self.program, "program_abbreviation") - if not prog_abb: - prog_abb = self.program - if prog_abb: - self.name += "-" + prog_abb - if self.academic_year: - self.name += "-" + self.academic_year - if self.academic_term: - self.name += "-" + self.academic_term - def validate(self): + self.validate_mandatory_fields() self.validate_strength() - self.validate_student_name() - self.validate_name() - if self.student_batch: - self.validate_student_batch() + self.validate_students() validate_duplicate_student(self.students) + def validate_mandatory_fields(self): + if self.group_based_on == "Course" and not self.course: + frappe.throw(_("Please select Course")) + elif self.group_based_on == "Batch" and (not self.program or not self.batch): + frappe.throw(_("Please select Program and Batch")) + def validate_strength(self): if self.max_strength and len(self.students) > self.max_strength: frappe.throw(_("""Cannot enroll more than {0} students for this student group.""").format(self.max_strength)) - def validate_student_name(self): + def validate_students(self): + program_enrollment = self.get_program_enrollment() + students = [d.student for d in program_enrollment] if program_enrollment else None for d in self.students: - d.student_name = frappe.db.get_value("Student", d.student, "title") - - def validate_name(self): - if frappe.db.exists("Student Batch", self.name): - frappe.throw(_("""Student Batch exists with same name""")) + if d.student not in students: + frappe.throw(_("{0} - {1} is not enrolled in the given {2}".format(d.student, d.student_name, self.group_based_on))) + if not frappe.db.get_value("Student", d.student, "enabled") and d.active: + d.active = 0 + frappe.throw(_("{0} - {1} is inactive student".format(d.student, d.student_name))) - def validate_student_batch(self): - student_batch_students = [] - for d in get_student_batch_students(self.student_batch): - student_batch_students.append(d.student) - for d in self.students: - if d.student not in student_batch_students: - frappe.throw(_("""Student {0}: {1} does not belong to Student Batch {2}""".format(d.student, d.student_name, self.student_batch))) \ No newline at end of file + + def update_students(self): + enrolled_students = self.get_program_enrollment() + group_student_list = [student.student for student in self.students] + + if enrolled_students: + student_list = []; + for s in enrolled_students: + if s.student not in group_student_list: + student_list.append(s.update({"active": 1}) if frappe.db.get_value("Student", s.student, "enabled") + else s.update({"active": 0})) + return student_list + elif self.group_based_on != "Activity": + frappe.throw(_("No students are enrolled in the given {}".format(self.group_based_on))) + else: + frappe.throw(_("Select students manually for the Activity based Group")) + + def get_program_enrollment(self): + if self.group_based_on == "Batch": + return frappe.db.sql('''select student, student_name from `tabProgram Enrollment` where academic_year = %s + and program = %s and student_batch_name = %s order by student_name asc''',(self.academic_year, self.program, self.batch), as_dict=1) + + elif self.group_based_on == "Course": + return frappe.db.sql(''' + select + pe.student, pe.student_name + from + `tabProgram Enrollment` pe, `tabProgram Enrollment Course` pec + where + pe.name = pec.parent and pec.course = %s + order by + pe.student_name asc + ''', (self.course), as_dict=1) + else: + return diff --git a/erpnext/schools/doctype/student_group/test_records.json b/erpnext/schools/doctype/student_group/test_records.json index 06cb086c20..106368d7c9 100644 --- a/erpnext/schools/doctype/student_group/test_records.json +++ b/erpnext/schools/doctype/student_group/test_records.json @@ -1,14 +1,23 @@ [ { + "student_group_name": "Batch-_TP1-_Batch 1-2014-2015 (_Test Academic Term)", + "group_based_on": "Batch", "program": "_TP1", - "course": "TC100", + "batch": "_Batch 1", "academic_year": "2014-2015", "academic_term": "2014-2015 (_Test Academic Term)" }, { - "program": "_TP2", + "student_group_name": "Course-TC101-2014-2015 (_Test Academic Term)", + "group_based_on": "Course", "course": "TC101", "academic_year": "2014-2015", "academic_term": "2014-2015 (_Test Academic Term)" + }, + { + "student_group_name": "Activity-2014-2015 (_Test Academic Term)", + "group_based_on": "Activity", + "academic_year": "2014-2015", + "academic_term": "2014-2015 (_Test Academic Term)" } ] \ No newline at end of file diff --git a/erpnext/schools/doctype/student_group_instructor/__init__.py b/erpnext/schools/doctype/student_group_instructor/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/erpnext/schools/doctype/student_group_instructor/student_group_instructor.json b/erpnext/schools/doctype/student_group_instructor/student_group_instructor.json new file mode 100644 index 0000000000..541e9b336b --- /dev/null +++ b/erpnext/schools/doctype/student_group_instructor/student_group_instructor.json @@ -0,0 +1,129 @@ +{ + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2017-04-17 16:06:01.406768", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "instructor", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Instructor", + "length": 0, + "no_copy": 0, + "options": "Instructor", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_2", + "fieldtype": "Column Break", + "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, + "length": 0, + "no_copy": 0, + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "instructor_name", + "fieldtype": "Read Only", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Instructor Name", + "length": 0, + "no_copy": 0, + "options": "instructor.instructor_name", + "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, + "unique": 0 + } + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2017-04-17 16:06:05.792863", + "modified_by": "Administrator", + "module": "Schools", + "name": "Student Group Instructor", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 0, + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/schools/doctype/student_group_instructor/student_group_instructor.py b/erpnext/schools/doctype/student_group_instructor/student_group_instructor.py new file mode 100644 index 0000000000..b6cc588b67 --- /dev/null +++ b/erpnext/schools/doctype/student_group_instructor/student_group_instructor.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.model.document import Document + +class StudentGroupInstructor(Document): + pass diff --git a/erpnext/schools/doctype/student_group_student/student_group_student.json b/erpnext/schools/doctype/student_group_student/student_group_student.json index 5ca7b66c35..5fc434adf4 100644 --- a/erpnext/schools/doctype/student_group_student/student_group_student.json +++ b/erpnext/schools/doctype/student_group_student/student_group_student.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "beta": 0, @@ -21,6 +22,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Student", @@ -39,33 +41,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_2", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "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, - "unique": 0 - }, { "allow_on_submit": 0, "bold": 0, @@ -77,6 +52,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Student Name", @@ -94,6 +70,63 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_2", + "fieldtype": "Column Break", + "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, + "length": 0, + "no_copy": 0, + "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, + "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "group_roll_number", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Group Roll Number", + "length": 0, + "no_copy": 0, + "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, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, @@ -106,6 +139,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Active", @@ -124,17 +158,17 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 0, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2017-01-27 14:49:54.533005", + "modified": "2017-04-12 14:56:07.532226", "modified_by": "Administrator", "module": "Schools", "name": "Student Group Student", @@ -144,6 +178,7 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_field": "modified", "sort_order": "DESC", "track_changes": 0, diff --git a/erpnext/schools/doctype/student_group_student/student_group_student.py b/erpnext/schools/doctype/student_group_student/student_group_student.py index 1fe4ea1dc3..820e30118d 100644 --- a/erpnext/schools/doctype/student_group_student/student_group_student.py +++ b/erpnext/schools/doctype/student_group_student/student_group_student.py @@ -7,4 +7,4 @@ import frappe from frappe.model.document import Document class StudentGroupStudent(Document): - pass + pass \ No newline at end of file