Merge pull request #6995 from neilLasrado/develop

Added Student Batch Name & Batch Creation Tool in Schools Module.
diff --git a/erpnext/config/schools.py b/erpnext/config/schools.py
index 41a8e71..7a415f0 100644
--- a/erpnext/config/schools.py
+++ b/erpnext/config/schools.py
@@ -48,6 +48,10 @@
 				{
 					"type": "doctype",
 					"name": "Program Enrollment Tool"
+				},
+				{
+					"type": "doctype",
+					"name": "Student Batch Creation Tool"
 				}
 			]
 		},
@@ -65,6 +69,19 @@
 				},
 				{
 					"type": "doctype",
+					"name": "Course Scheduling Tool"
+				},
+				{
+					"type": "doctype",
+					"name": "Student Batch Attendance Tool"
+				}
+			]
+		},
+		{
+			"label": _("Assessment"),
+			"items": [
+				{
+					"type": "doctype",
 					"name": "Assessment"
 				},
 				{
@@ -73,11 +90,7 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Student Batch Attendance Tool"
-				},
-				{
-					"type": "doctype",
-					"name": "Scheduling Tool"
+					"name": "Grading Structure"
 				}
 			]
 		},
@@ -134,14 +147,6 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Student Category"
-				},
-				{
-					"type": "doctype",
-					"name": "Grading Structure"
-				},
-				{
-					"type": "doctype",
 					"name": "Instructor"
 				},
 				{
@@ -150,6 +155,14 @@
 				},
 				{
 					"type": "doctype",
+					"name": "Student Category"
+				},
+				{
+					"type": "doctype",
+					"name": "Student Batch Name"
+				},
+				{
+					"type": "doctype",
 					"name": "Academic Term"
 				},
 				{
diff --git a/erpnext/schools/doctype/scheduling_tool/__init__.py b/erpnext/schools/doctype/course_scheduling_tool/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/scheduling_tool/__init__.py
rename to erpnext/schools/doctype/course_scheduling_tool/__init__.py
diff --git a/erpnext/schools/doctype/scheduling_tool/scheduling_tool.js b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
similarity index 71%
rename from erpnext/schools/doctype/scheduling_tool/scheduling_tool.js
rename to erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
index 5011375..b8d4562 100644
--- a/erpnext/schools/doctype/scheduling_tool/scheduling_tool.js
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
@@ -1,10 +1,13 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
 cur_frm.add_fetch("student_group", "program", "program");
 cur_frm.add_fetch("student_group", "student_batch", "student_batch");
 cur_frm.add_fetch("student_group", "course", "course");
 cur_frm.add_fetch("student_group", "academic_year", "academic_year");
 cur_frm.add_fetch("student_group", "academic_term", "academic_term");
 
-frappe.ui.form.on("Scheduling Tool", "refresh", function(frm) {
+frappe.ui.form.on("Course Scheduling Tool", "refresh", function(frm) {
 	frm.disable_save();
 	frm.page.set_primary_action(__("Schedule Course"), function() {
 		frappe.call({
diff --git a/erpnext/schools/doctype/scheduling_tool/scheduling_tool.json b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
similarity index 99%
rename from erpnext/schools/doctype/scheduling_tool/scheduling_tool.json
rename to erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
index cf2c1a3..a66960e 100644
--- a/erpnext/schools/doctype/scheduling_tool/scheduling_tool.json
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
@@ -244,62 +244,6 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "room", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Room", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Room", 
-   "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_9", 
-   "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, 
-   "collapsible": 0, 
-   "columns": 0, 
    "fieldname": "instructor", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -358,6 +302,62 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "column_break_9", 
+   "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, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "room", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Room", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Room", 
+   "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": "section_break_7", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -592,10 +592,10 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2016-11-16 16:03:41.854229", 
+ "modified": "2016-11-21 16:58:29.295922", 
  "modified_by": "Administrator", 
  "module": "Schools", 
- "name": "Scheduling Tool", 
+ "name": "Course Scheduling Tool", 
  "name_case": "", 
  "owner": "Administrator", 
  "permissions": [
diff --git a/erpnext/schools/doctype/scheduling_tool/scheduling_tool.py b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
similarity index 96%
rename from erpnext/schools/doctype/scheduling_tool/scheduling_tool.py
rename to erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
index b8ba578..86fefe2 100644
--- a/erpnext/schools/doctype/scheduling_tool/scheduling_tool.py
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies and contributors
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
@@ -10,7 +10,7 @@
 from frappe.utils import add_days, getdate
 from erpnext.schools.utils import OverlapError
 
-class SchedulingTool(Document):
+class CourseSchedulingTool(Document):
 	def schedule_course(self):
 		"""Creates course schedules as per specified parametes"""
 		
@@ -102,3 +102,4 @@
 		course_schedule.from_time= self.from_time
 		course_schedule.to_time= self.to_time
 		return course_schedule
+	
diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.json b/erpnext/schools/doctype/program_enrollment/program_enrollment.json
index 8fed228..e7269f0 100644
--- a/erpnext/schools/doctype/program_enrollment/program_enrollment.json
+++ b/erpnext/schools/doctype/program_enrollment/program_enrollment.json
@@ -104,6 +104,35 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "student_batch_name", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Student Batch Name", 
+   "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": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "column_break_4", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -340,7 +369,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2016-11-07 05:25:17.473070", 
+ "modified": "2016-11-18 14:20:10.023790", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Program Enrollment", 
diff --git a/erpnext/schools/doctype/scheduling_tool/test_scheduling_tool.py b/erpnext/schools/doctype/scheduling_tool/test_scheduling_tool.py
deleted file mode 100644
index 4ec3747..0000000
--- a/erpnext/schools/doctype/scheduling_tool/test_scheduling_tool.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import frappe
-import unittest
-
-# test_records = frappe.get_test_records('Scheduling Tool')
-
-class TestSchedulingTool(unittest.TestCase):
-	pass
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.py b/erpnext/schools/doctype/student_attendance/student_attendance.py
index d9949b0..45b3014 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.py
+++ b/erpnext/schools/doctype/student_attendance/student_attendance.py
@@ -31,7 +31,8 @@
 				(self.student, self.course_schedule, self.name))
 		else:
 			attendance_records= frappe.db.sql("""select name from `tabStudent Attendance` where \
-				student= %s and date= %s and name != %s and course_schedule='' and docstatus=1""",
+				student= %s and date= %s and name != %s and docstatus=1 and \
+				(course_schedule is Null or course_schedule='')""",
 				(self.student, self.date, self.name))
 			
 		if attendance_records:
diff --git a/erpnext/schools/doctype/student_batch/student_batch.json b/erpnext/schools/doctype/student_batch/student_batch.json
index 1e529d7..e674bbb 100644
--- a/erpnext/schools/doctype/student_batch/student_batch.json
+++ b/erpnext/schools/doctype/student_batch/student_batch.json
@@ -18,7 +18,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "fieldname": "student_batch_name", 
-   "fieldtype": "Data", 
+   "fieldtype": "Link", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
@@ -28,6 +28,7 @@
    "label": "Student Batch Name", 
    "length": 0, 
    "no_copy": 0, 
+   "options": "Student Batch Name", 
    "permlevel": 0, 
    "precision": "", 
    "print_hide": 0, 
@@ -221,7 +222,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-11-07 05:59:36.920495", 
+ "modified": "2016-11-21 16:52:23.939904", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student Batch", 
diff --git a/erpnext/schools/doctype/scheduling_tool/__init__.py b/erpnext/schools/doctype/student_batch_creation_tool/__init__.py
similarity index 100%
copy from erpnext/schools/doctype/scheduling_tool/__init__.py
copy to erpnext/schools/doctype/student_batch_creation_tool/__init__.py
diff --git a/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.js b/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.js
new file mode 100644
index 0000000..3167174
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.js
@@ -0,0 +1,8 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Student Batch Creation Tool', {
+	refresh: function(frm) {
+		frm.disable_save();
+	}
+});
diff --git a/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.json b/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.json
new file mode 100644
index 0000000..d94c480
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.json
@@ -0,0 +1,176 @@
+{
+ "allow_copy": 1, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "beta": 0, 
+ "creation": "2016-11-14 18:20:12.160405", 
+ "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": "academic_year", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Academic Year", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Academic Year", 
+   "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_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": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "student_batch_name", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Student Batch Name", 
+   "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": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "make_student_batch", 
+   "fieldtype": "Button", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Make Student Batch", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "make_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
+  }
+ ], 
+ "hide_heading": 1, 
+ "hide_toolbar": 1, 
+ "idx": 0, 
+ "image_view": 0, 
+ "in_create": 0, 
+ "in_dialog": 0, 
+ "is_submittable": 0, 
+ "issingle": 1, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2016-11-21 16:47:56.823988", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Student Batch Creation Tool", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Academics User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 0, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.py b/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.py
new file mode 100644
index 0000000..deda137
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_creation_tool/student_batch_creation_tool.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, 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 StudentBatchCreationTool(Document):
+	def make_batch(self):
+		if self.academic_year and self.program and self.student_batch_name:
+			students = frappe.get_list("Program Enrollment", fields=["student", "student_name"],
+				 filters={"academic_year":self.academic_year, "program": self.program, "student_batch_name": self.student_batch_name},
+				 order_by= "student_name")
+			if students:
+				student_batch = frappe.new_doc("Student Batch")
+				student_batch.update({
+					"academic_year": self.academic_year,
+					"program": self.program,
+					"student_batch_name": self.student_batch_name,
+					"students": students
+				})
+				student_batch.save()
+				frappe.msgprint("Student Batch created.")
+			else:
+				frappe.msgprint("No students found.")
+
diff --git a/erpnext/schools/doctype/scheduling_tool/__init__.py b/erpnext/schools/doctype/student_batch_name/__init__.py
similarity index 100%
copy from erpnext/schools/doctype/scheduling_tool/__init__.py
copy to erpnext/schools/doctype/student_batch_name/__init__.py
diff --git a/erpnext/schools/doctype/student_batch_name/student_batch_name.js b/erpnext/schools/doctype/student_batch_name/student_batch_name.js
new file mode 100644
index 0000000..7ed3021
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_name/student_batch_name.js
@@ -0,0 +1,8 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Student Batch Name', {
+	refresh: function(frm) {
+
+	}
+});
diff --git a/erpnext/schools/doctype/student_batch_name/student_batch_name.json b/erpnext/schools/doctype/student_batch_name/student_batch_name.json
new file mode 100644
index 0000000..7f5f16d
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_name/student_batch_name.json
@@ -0,0 +1,89 @@
+{
+ "allow_copy": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "autoname": "field:batch_name", 
+ "beta": 0, 
+ "creation": "2016-11-17 18:45:57.965091", 
+ "custom": 0, 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Setup", 
+ "editable_grid": 1, 
+ "engine": "InnoDB", 
+ "fields": [
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "batch_name", 
+   "fieldtype": "Data", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Batch 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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 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, 
+ "modified": "2016-11-21 16:31:50.775958", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Student Batch Name", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Academics User", 
+   "set_user_permissions": 0, 
+   "share": 1, 
+   "submit": 0, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_batch_name/student_batch_name.py b/erpnext/schools/doctype/student_batch_name/student_batch_name.py
new file mode 100644
index 0000000..e6d38ea
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_name/student_batch_name.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, 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 StudentBatchName(Document):
+	pass
diff --git a/erpnext/schools/doctype/student_batch_name/test_student_batch_name.py b/erpnext/schools/doctype/student_batch_name/test_student_batch_name.py
new file mode 100644
index 0000000..09534f3
--- /dev/null
+++ b/erpnext/schools/doctype/student_batch_name/test_student_batch_name.py
@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+# test_records = frappe.get_test_records('Student Batch Name')
+
+class TestStudentBatchName(unittest.TestCase):
+	pass