Merge pull request #7088 from rohitwaghchaure/documentation_november

[fix] Documentation
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index ddaa155..85ac910 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
 from __future__ import unicode_literals
 import frappe
 
-__version__ = '7.1.19'
+__version__ = '7.1.20'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/account/account_tree.js b/erpnext/accounts/doctype/account/account_tree.js
index 4cf9a67..fc6a1b4 100644
--- a/erpnext/accounts/doctype/account/account_tree.js
+++ b/erpnext/accounts/doctype/account/account_tree.js
@@ -30,7 +30,9 @@
 			options: ['Asset', 'Liability', 'Equity', 'Income', 'Expense'].join('\n'),
 			depends_on: 'eval:doc.is_group && !doc.parent_account'},
 		{fieldtype:'Select', fieldname:'account_type', label:__('Account Type'),
-			options: ['', 'Bank', 'Cash', 'Stock', 'Tax', 'Chargeable', 'Fixed Asset'].join('\n'),
+			options: ['', 'Accumulated Depreciation', 'Bank', 'Cash', 'Chargeable', 'Cost of Goods Sold', 'Depreciation', 
+				'Equity', 'Expense Account', 'Expenses Included In Valuation', 'Fixed Asset', 'Income Account', 'Payable', 'Receivable', 
+				'Round Off', 'Stock', 'Stock Adjustment', 'Stock Received But Not Billed', 'Tax', 'Temporary'].join('\n'),
 			description: __("Optional. This setting will be used to filter in various transactions.")
 		},
 		{fieldtype:'Float', fieldname:'tax_rate', label:__('Tax Rate'),
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index e0a8121..d6cf120 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -123,7 +123,7 @@
 		select
 			name, item_code, item_name, description, item_group, expense_account, has_batch_no,
 			has_serial_no, expense_account, selling_cost_center, stock_uom, image, 
-			default_warehouse, is_stock_item
+			default_warehouse, is_stock_item, barcode
 		from
 			tabItem
 		where
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 4cd66f5..5609fce 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -503,9 +503,23 @@
 						frappe.model.set_value(cdt, cdn, "billing_hours", data.billing_hours);
 						frappe.model.set_value(cdt, cdn, "billing_amount", data.billing_amount);
 						frappe.model.set_value(cdt, cdn, "timesheet_detail", data.timesheet_detail);
+						calculate_total_billing_amount(frm)
 					}
 				}
 			})
 		}
 	}
 })
+
+var calculate_total_billing_amount =  function(frm) {
+	var doc = frm.doc;
+
+	doc.total_billing_amount = 0.0
+	if(doc.timesheets) {
+		$.each(doc.timesheets, function(index, data){
+			doc.total_billing_amount += data.billing_amount
+		})
+	}
+
+	refresh_field('total_billing_amount')
+}
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index 57ffcb1..9aafdae 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -246,6 +246,8 @@
 		var me = this;
 
 		this.items = this.item_data;
+		this.actual_qty_dict = {};
+
 		if(load_doc) {
 			this.frm.doc =  JSON.parse(localStorage.getItem('doc'));
 		}
@@ -444,7 +446,7 @@
 			})
 		}
 
-		key =  this.search.$input.val().toLowerCase();
+		key =  this.search.$input.val().toLowerCase().replace(/[&\/\\#,+()\[\]$~.'":*?<>{}]/g,'\\$&');
 		var re = new RegExp('%', 'g');
 		var reg = new RegExp(key.replace(re, '[\\w*\\s*[a-zA-Z0-9]*]*'))
 		search_status = true
@@ -680,7 +682,7 @@
 				item_code: d.item_code,
 				item_name: (d.item_name===d.item_code || !d.item_name) ? "" : ("<br>" + d.item_name),
 				qty: d.qty,
-				actual_qty: me.actual_qty,
+				actual_qty: me.actual_qty_dict[d.item_code] || 0,
 				projected_qty: d.projected_qty,
 				rate: format_number(d.rate, me.frm.doc.currency),
 				amount: format_currency(d.amount, me.frm.doc.currency)
@@ -1083,9 +1085,11 @@
 
 	get_actual_qty: function(item) {
 		this.actual_qty = 0.0;
+
 		var warehouse = this.pos_profile_data['warehouse'] || item.default_warehouse;
 		if(warehouse && this.bin_data[item.item_code]) {
 			this.actual_qty = this.bin_data[item.item_code][warehouse] || 0;
+			this.actual_qty_dict[item.item_code] = this.actual_qty
 		}
 
 		return this.actual_qty
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index 97d2cdb..e66d20e 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -324,12 +324,17 @@
 		additional_conditions.append("posting_date >= %(from_date)s")
 
 	if filters:
-		for key in ['cost_center', 'project']:
-			if filters.get(key):
-				additional_conditions.append("%s = '%s'"%(key, filters.get(key)))
+		if filters.get("project"):
+			additional_conditions.append("project = '%s'"%(frappe.db.escape(filters.get("project"))))
+		if filters.get("cost_center"):
+			additional_conditions.append(get_cost_center_cond(filters.get("cost_center")))
 
 	return " and {}".format(" and ".join(additional_conditions)) if additional_conditions else ""
 
+def get_cost_center_cond(cost_center):
+	lft, rgt = frappe.db.get_value("Cost Center", cost_center, ["lft", "rgt"])
+	return (""" cost_center in (select name from `tabCost Center` where lft >=%s and rgt <=%s)"""%(lft, rgt))
+
 def get_columns(periodicity, period_list, accumulated_values=1, company=None):
 	columns = [{
 		"fieldname": "account",
diff --git a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
index d6bbee5..1d417da 100644
--- a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
+++ b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
@@ -31,7 +31,7 @@
 			purchase_receipt = d.purchase_receipt
 		elif d.po_detail:
 			purchase_receipt = ", ".join(frappe.db.sql_list("""select distinct parent
-			from `tabPurchase Receipt Item` where docstatus=1 and prevdoc_detail_docname=%s""", d.po_detail))
+			from `tabPurchase Receipt Item` where docstatus=1 and purchase_order_item=%s""", d.po_detail))
 
 		expense_account = d.expense_account or aii_account_map.get(d.company)
 		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, d.supplier,
diff --git a/erpnext/config/schools.py b/erpnext/config/schools.py
index 7a415f0..c35c1f2 100644
--- a/erpnext/config/schools.py
+++ b/erpnext/config/schools.py
@@ -56,6 +56,41 @@
 			]
 		},
 		{
+			"label": _("Attendance"),
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Student Attendance"
+				},
+				{
+					"type": "doctype",
+					"name": "Student Leave Application"
+				},
+				{
+					"type": "doctype",
+					"name": "Student Batch Attendance Tool"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Absent Student Report",
+					"doctype": "Attendance"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Student Batch-Wise Attendance",
+					"doctype": "Attendance"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Student Monthly Attendance Sheet",
+					"doctype": "Attendance"
+				}
+			]
+		},
+		{
 			"label": _("Schedule"),
 			"items": [
 				{
@@ -65,15 +100,7 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Student Attendance"
-				},
-				{
-					"type": "doctype",
 					"name": "Course Scheduling Tool"
-				},
-				{
-					"type": "doctype",
-					"name": "Student Batch Attendance Tool"
 				}
 			]
 		},
diff --git a/erpnext/docs/assets/img/setup/data-import/data-import-tool-template.gif b/erpnext/docs/assets/img/setup/data-import/data-import-tool-template.gif
new file mode 100644
index 0000000..c4d28f4
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/data-import/data-import-tool-template.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/data-import/import-csv.png b/erpnext/docs/assets/img/setup/data-import/import-csv.png
new file mode 100644
index 0000000..3b9bc9f
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/data-import/import-csv.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/data-import/import-file.png b/erpnext/docs/assets/img/setup/data-import/import-file.png
new file mode 100644
index 0000000..c99e015
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/data-import/import-file.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/__init__.py b/erpnext/docs/assets/img/setup/integration-service/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/__init__.py
diff --git a/erpnext/docs/assets/img/setup/integration-service/api-step-1.png b/erpnext/docs/assets/img/setup/integration-service/api-step-1.png
new file mode 100644
index 0000000..d51434d
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/api-step-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/api-step-2.png b/erpnext/docs/assets/img/setup/integration-service/api-step-2.png
new file mode 100644
index 0000000..f4dfa43
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/api-step-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/api-step-3.png b/erpnext/docs/assets/img/setup/integration-service/api-step-3.png
new file mode 100644
index 0000000..070fded
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/api-step-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/create_dropbox_service.png b/erpnext/docs/assets/img/setup/integration-service/create_dropbox_service.png
new file mode 100644
index 0000000..daa792c
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/create_dropbox_service.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/dropbox-2.png b/erpnext/docs/assets/img/setup/integration-service/dropbox-2.png
similarity index 100%
rename from erpnext/docs/assets/img/setup/dropbox-2.png
rename to erpnext/docs/assets/img/setup/integration-service/dropbox-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/dropbox-3.png b/erpnext/docs/assets/img/setup/integration-service/dropbox-3.png
similarity index 100%
rename from erpnext/docs/assets/img/setup/dropbox-3.png
rename to erpnext/docs/assets/img/setup/integration-service/dropbox-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/dropbox-open-1.png b/erpnext/docs/assets/img/setup/integration-service/dropbox-open-1.png
similarity index 100%
rename from erpnext/docs/assets/img/setup/dropbox-open-1.png
rename to erpnext/docs/assets/img/setup/integration-service/dropbox-open-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/dropbox-open-2.png b/erpnext/docs/assets/img/setup/integration-service/dropbox-open-2.png
similarity index 100%
rename from erpnext/docs/assets/img/setup/dropbox-open-2.png
rename to erpnext/docs/assets/img/setup/integration-service/dropbox-open-2.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/dropbox-open-3.png b/erpnext/docs/assets/img/setup/integration-service/dropbox-open-3.png
similarity index 100%
rename from erpnext/docs/assets/img/setup/dropbox-open-3.png
rename to erpnext/docs/assets/img/setup/integration-service/dropbox-open-3.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/ldap_settings.png b/erpnext/docs/assets/img/setup/integration-service/ldap_settings.png
new file mode 100644
index 0000000..c0ecbc7
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/ldap_settings.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/login_via_ldap.png b/erpnext/docs/assets/img/setup/integration-service/login_via_ldap.png
new file mode 100644
index 0000000..15fd387
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/login_via_ldap.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/payment_gateway_account_paypal.png b/erpnext/docs/assets/img/setup/integration-service/payment_gateway_account_paypal.png
new file mode 100644
index 0000000..e6f1665
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/payment_gateway_account_paypal.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/payment_gateway_account_razorpay.png b/erpnext/docs/assets/img/setup/integration-service/payment_gateway_account_razorpay.png
new file mode 100644
index 0000000..e09e797
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/payment_gateway_account_razorpay.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/paypal_coa.png b/erpnext/docs/assets/img/setup/integration-service/paypal_coa.png
new file mode 100644
index 0000000..bf0ed19
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/paypal_coa.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/paypal_settings.png b/erpnext/docs/assets/img/setup/integration-service/paypal_settings.png
new file mode 100644
index 0000000..f5f5e54
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/paypal_settings.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/razorpay_coa.png b/erpnext/docs/assets/img/setup/integration-service/razorpay_coa.png
new file mode 100644
index 0000000..68cad28
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/razorpay_coa.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/razorpay_settings.png b/erpnext/docs/assets/img/setup/integration-service/razorpay_settings.png
new file mode 100644
index 0000000..042b422
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/razorpay_settings.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/sanbox-credentials.png b/erpnext/docs/assets/img/setup/integration-service/sanbox-credentials.png
new file mode 100644
index 0000000..21e8460
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/sanbox-credentials.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/setup-backup-frequency.png b/erpnext/docs/assets/img/setup/integration-service/setup-backup-frequency.png
new file mode 100644
index 0000000..916679e
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/setup-backup-frequency.png
Binary files differ
diff --git a/erpnext/docs/assets/img/setup/integration-service/setup-sanbox-1.png b/erpnext/docs/assets/img/setup/integration-service/setup-sanbox-1.png
new file mode 100644
index 0000000..932a62a
--- /dev/null
+++ b/erpnext/docs/assets/img/setup/integration-service/setup-sanbox-1.png
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/import-3.png b/erpnext/docs/assets/old_images/erpnext/import-3.png
deleted file mode 100644
index 9387dd5..0000000
--- a/erpnext/docs/assets/old_images/erpnext/import-3.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/assets/old_images/erpnext/import-4.png b/erpnext/docs/assets/old_images/erpnext/import-4.png
deleted file mode 100644
index fce1f51..0000000
--- a/erpnext/docs/assets/old_images/erpnext/import-4.png
+++ /dev/null
Binary files differ
diff --git a/erpnext/docs/current/models/stock/material_request_item.html b/erpnext/docs/current/models/stock/material_request_item.html
deleted file mode 100644
index ae9978a..0000000
--- a/erpnext/docs/current/models/stock/material_request_item.html
+++ /dev/null
@@ -1,426 +0,0 @@
-<!-- title: Material Request Item -->
-
-
-
-
-
-<div class="dev-header">
-
-<a class="btn btn-default btn-sm" disabled style="margin-bottom: 10px;">
-	Version 7.x.x</a>
-
-
-	<a class="btn btn-default btn-sm" href="https://github.com/frappe/erpnext/tree/develop/erpnext/stock/doctype/material_request_item"
-		target="_blank" style="margin-left: 10px; margin-bottom: 10px;"><i class="octicon octicon-mark-github"></i> Source</a>
-
-</div>
-
-
-<span class="label label-info">Child Table</span>
-
-
-    <p><b>Table Name:</b> <code>tabMaterial Request Item</code></p>
-
-
-
-
-<h3>Fields</h3>
-
-<table class="table table-bordered">
-    <thead>
-        <tr>
-            <th style="width: 5%">Sr</th>
-            <th style="width: 25%">Fieldname</th>
-            <th style="width: 20%">Type</th>
-            <th style="width: 25%">Label</th>
-            <th style="width: 25%">Options</th>
-        </tr>
-    </thead>
-    <tbody>
-        
-        <tr >
-            <td>1</td>
-            <td class="danger" title="Mandatory"><code>item_code</code></td>
-            <td >
-                Link</td>
-            <td >
-                Item Code
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/stock/item">Item</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>2</td>
-            <td ><code>col_break1</code></td>
-            <td class="info">
-                Column Break</td>
-            <td >
-                
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>3</td>
-            <td ><code>item_name</code></td>
-            <td >
-                Data</td>
-            <td >
-                Item Name
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr class="info">
-            <td>4</td>
-            <td ><code>section_break_4</code></td>
-            <td >
-                Section Break</td>
-            <td >
-                Description
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>5</td>
-            <td class="danger" title="Mandatory"><code>description</code></td>
-            <td >
-                Text Editor</td>
-            <td >
-                Description
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>6</td>
-            <td ><code>column_break_6</code></td>
-            <td class="info">
-                Column Break</td>
-            <td >
-                
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>7</td>
-            <td ><code>image</code></td>
-            <td >
-                Attach Image</td>
-            <td >
-                Image
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr class="info">
-            <td>8</td>
-            <td ><code>quantity_and_warehouse</code></td>
-            <td >
-                Section Break</td>
-            <td >
-                Quantity and Warehouse
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>9</td>
-            <td class="danger" title="Mandatory"><code>qty</code></td>
-            <td >
-                Float</td>
-            <td >
-                Quantity
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>10</td>
-            <td class="danger" title="Mandatory"><code>uom</code></td>
-            <td >
-                Link</td>
-            <td >
-                Stock UOM
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/setup/uom">UOM</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>11</td>
-            <td ><code>warehouse</code></td>
-            <td >
-                Link</td>
-            <td >
-                For Warehouse
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/stock/warehouse">Warehouse</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>12</td>
-            <td ><code>col_break2</code></td>
-            <td class="info">
-                Column Break</td>
-            <td >
-                
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>13</td>
-            <td class="danger" title="Mandatory"><code>schedule_date</code></td>
-            <td >
-                Date</td>
-            <td >
-                Required Date
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr class="info">
-            <td>14</td>
-            <td ><code>more_info</code></td>
-            <td >
-                Section Break</td>
-            <td >
-                More Information
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>15</td>
-            <td ><code>item_group</code></td>
-            <td >
-                Link</td>
-            <td >
-                Item Group
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/setup/item_group">Item Group</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>16</td>
-            <td ><code>brand</code></td>
-            <td >
-                Link</td>
-            <td >
-                Brand
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/setup/brand">Brand</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>17</td>
-            <td ><code>lead_time_date</code></td>
-            <td >
-                Date</td>
-            <td >
-                Lead Time Date
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>18</td>
-            <td ><code>sales_order</code></td>
-            <td >
-                Link</td>
-            <td >
-                Sales Order
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/selling/sales_order">Sales Order</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>19</td>
-            <td ><code>project</code></td>
-            <td >
-                Link</td>
-            <td >
-                Project
-                
-            </td>
-            <td>
-                
-                
-
-
-<a href="https://frappe.github.io/erpnext/current/models/projects/project">Project</a>
-
-
-                
-            </td>
-        </tr>
-        
-        <tr >
-            <td>20</td>
-            <td ><code>col_break3</code></td>
-            <td class="info">
-                Column Break</td>
-            <td >
-                
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>21</td>
-            <td ><code>min_order_qty</code></td>
-            <td >
-                Float</td>
-            <td >
-                Min Order Qty
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>22</td>
-            <td ><code>projected_qty</code></td>
-            <td >
-                Float</td>
-            <td >
-                Projected Qty
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>23</td>
-            <td ><code>actual_qty</code></td>
-            <td >
-                Float</td>
-            <td >
-                Actual Qty
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>24</td>
-            <td ><code>ordered_qty</code></td>
-            <td >
-                Float</td>
-            <td >
-                Completed Qty
-                
-            </td>
-            <td></td>
-        </tr>
-        
-        <tr >
-            <td>25</td>
-            <td ><code>page_break</code></td>
-            <td >
-                Check</td>
-            <td >
-                Page Break
-                
-            </td>
-            <td></td>
-        </tr>
-        
-    </tbody>
-</table>
-
-
-    
-    
-    <h4>Child Table Of</h4>
-    <ul>
-    
-        <li>
-
-
-<a href="https://frappe.github.io/erpnext/current/models/stock/material_request">Material Request</a>
-
-</li>
-    
-    </ul>
-    
-
-
-<!-- autodoc -->
-<!-- jinja -->
-<!-- static -->
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/articles/index.txt b/erpnext/docs/user/manual/en/setting-up/articles/index.txt
index 6f99f89..e6a3b85 100644
--- a/erpnext/docs/user/manual/en/setting-up/articles/index.txt
+++ b/erpnext/docs/user/manual/en/setting-up/articles/index.txt
@@ -9,5 +9,4 @@
 naming-series-current-value
 overwriting-data-from-data-import-tool
 rename-user
-setting-up-dropbox-backups
 using-custom-domain-on-erpnext
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/articles/setting-up-dropbox-backups.md b/erpnext/docs/user/manual/en/setting-up/articles/setting-up-dropbox-backups.md
deleted file mode 100644
index 68e4031..0000000
--- a/erpnext/docs/user/manual/en/setting-up/articles/setting-up-dropbox-backups.md
+++ /dev/null
@@ -1,74 +0,0 @@
-#Setting Up Dropbox Backups
-
-We always recommend customers to maintain backup of their data in ERPNext. he database backup is downloaded in the form of an SQL file. If needed, this SQL file of backup can be restored in the another ERPNext account as well.
-
-You can automate database backup download of your ERPNext account into your Dropbox account.
-
-####Step 1: Go to Setup
-
-`Explore > Setup > Integrations > Dropbox Backup`
-
-####Step 2: Activate
-
-In the Dropbox Backup, check "Send Backups to Dropbox" to active this feature. On checking this field, you will find field to set Frequency and notification Email.
-
-####Step 3: Set Frequency
-
-Set Frequency to download backup in your Dropbox account.
-
-<img class="screenshot" alt="set frequency" src="{{docs_base_url}}/assets/img/setup/dropbox-1.png">
-
-####Step 4: Allow Dropbox Access
-
-After setting frequency and updating notification email, click on `Allow Dropbox access`. On clicking this button, the Dropbox login page will open in the new tab. This might require you to allow pop-up for your ERPNext account.
-
-####Step 5: Login to Dropbox
-
-Login to your Dropbox account by entering login credentials.
-
-<img class="screenshot" alt="Login" src="{{docs_base_url}}/assets/img/setup/dropbox-2.png">
-
-####Step 6: Allow
-
-On successfull login, you will find a confirmation message as following. Click on "Allow" to let your ERPNext account have access to your Dropbox account.
-
-<img class="screenshot" alt="Allow" src="{{docs_base_url}}/assets/img/setup/dropbox-3.png">
-
-With this, a folder called "ERPNext" will be created in your Dropbox account, and database backup will start to auto-download in it.
-
-##Open Source Users
-
-####Step 1: Go to
-
-<a href="https://www.dropbox.com/developers/apps" target="_blank" style="line-height: 1.42857143;">https://www.dropbox.com/developers/apps</a>
-
-####Step 2:Create a new app
-
-<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/dropbox-open-3.png">
-
-####Step 3: Fill in details for the app
-
-<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/dropbox-open-1.png">
-
--
-<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/dropbox-open-2.png">
-
-####Step 4: Settings in Site Config
-
-After the app is created, note the app key and app secret and enter in `sites/{sitename}/site_config.json` as follows,
-
-<div>
-	<pre>
-		<code>{ 
- "db_name": "demo", 
- "db_password": "DZ1Idd55xJ9qvkHvUH", 
- "dropbox_access_key": "ACCESSKEY", 
- "dropbox_secret_key": "SECRECTKEY" 
-} 		
-		</code>
-	</pre>
-</div>
-
-####Step 5: Complete Backup
-
-Setup dropbox backups from the backup manager as shown in previous section.
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md b/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md
index e59ed21..563568a 100644
--- a/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md
+++ b/erpnext/docs/user/manual/en/setting-up/data/data-import-tool.md
@@ -1,8 +1,6 @@
-The Data Import Tool is a great way to upload (or edit) bulk data, specially
-master data, into the system.
+The Data Import Tool is a great way to upload (or edit) bulk data, specially master data, into the system.
 
-To Open the data import tool, you either go to Setup or go to the Transaction
-you want to Import. If Data Import is allowed, you will see an Import Button:
+To Open the data import tool, you either go to Setup or go to the Transaction you want to Import. If Data Import is allowed, you will see an Import Button:
 
 <img alt="Start Import" class="screenshot" src="{{docs_base_url}}/assets/img/setup/data-import/data-import-1.png">
 
@@ -20,22 +18,24 @@
 implemented where there are multiple values for any property. For example an
 Item can have multiple prices, An Invoice has multiple Items and so on.
 
-<img alt="Download Template" class="screenshot" src="{{docs_base_url}}/assets/img/setup/data-import/data-import-2.png">
-
-  * Click on the table you want to download or "All Tables"
-  * For bulk editing, you can click on "Download With Data"
+  * Select Doctype for which template should be downloaded.
+  * Check fields to be included in the template.
+  * Click on "Download Blank Template".
+  * For bulk editing, you can click on "Download With Data".
+  
+<img alt="Download Template" class="screenshot" src="{{docs_base_url}}/assets/img/setup/data-import/data-import-tool-template.gif">
 
 ### 2\. Fill in the Template
 
 After downloading the template, open it in a spreadsheet application and fill
 in the data below the column headings.
 
-![Spreadsheet]({{docs_base_url}}/assets/old_images/erpnext/import-3.png)
+<img alt="Download Template" class="screenshot" src="{{docs_base_url}}/assets/img/setup/data-import/import-file.png">
 
 Then export your template or save it as a **Comma Separated Values** (CSV)
 file.
 
-![Spreadsheet]({{docs_base_url}}/assets/old_images/erpnext/import-4.png)
+<img alt="Download Template" class="screenshot" src="{{docs_base_url}}/assets/img/setup/data-import/import-csv.png">
 
 ### 3\. Upload the .csv File
 
@@ -49,7 +49,7 @@
 1. Make sure that if your application allows, use encoding as UTF-8.
 1. Keep the ID column blank for new records.
 
-### 4\. Uploading All Tables (Main + Child)
+### 4. Uploading All Tables (Main + Child)
 
 If you select all tables, you will get columns belonging to all the tables in
 one row separated by `~` columns.
@@ -67,7 +67,7 @@
 > To see how its done, enter a few records manually using forms and export
 "All Tables" with "Download with Data"
 
-### 5\. Overwriting
+### 5. Overwriting
 
 ERPNext also allows you to overwrite all / certain columns. If you want to
 update certain columns, you can download the template with data. Remember to
@@ -76,7 +76,7 @@
 > Note: For child records, if you select Overwrite, it will delete all the
 child records of that parent.
 
-### 6\. Upload Limitations
+### 6. Upload Limitations
 
 ERPNext restricts the amount of data you can upload in one file. Though the
 number may vary based on the type of data. It is usually safe to upload around
@@ -107,4 +107,10 @@
 clear way of saving as UTF-8. So save your file as a CSV, then open it in
 Notepad, and save as “UTF-8”. (Sorry blame Microsoft for this!)
 
+####Help Video on Importing Data in ERPNext from Spreadsheet file
+
+
+
+<iframe width="660" height="371" src="https://www.youtube.com/embed/Ta2Xx3QoK3E" frameborder="0" allowfullscreen></iframe>
+
 {next}
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/__init__.py b/erpnext/docs/user/manual/en/setting-up/integration-services/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/__init__.py
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/dropbox-backup.md b/erpnext/docs/user/manual/en/setting-up/integration-services/dropbox-backup.md
new file mode 100644
index 0000000..7fc283b
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/dropbox-backup.md
@@ -0,0 +1,81 @@
+#Setting Up Dropbox Backups
+
+We always recommend customers to maintain backup of their data in ERPNext. he database backup is downloaded in the form of an SQL file. If needed, this SQL file of backup can be restored in the another ERPNext account as well.
+
+You can automate database backup download of your ERPNext account into your Dropbox account.
+
+####Step 1: Create Dropbox service
+
+`Explore > Setup > Integration Service`
+
+Make a new Integration Service and select `Dropbox` as a service from dropdown then save the document.
+
+####Step 2: Activate
+
+After saving a document, click on `Dropbox Settings` button, to setup service.
+
+<img class="screenshot" alt="create dropbox service" src="{{docs_base_url}}/assets/img/setup/integration-service/create_service.png">
+
+####Step 3: Set Frequency
+
+Set Frequency to download backup in your Dropbox account.
+
+<img class="screenshot" alt="set frequency" src="{{docs_base_url}}/assets/img/setup/integration-service/setup-backup-frequency.png">
+
+####Step 4: Allow Dropbox Access
+
+After setting frequency and updating other details, click on `Allow Dropbox access`. On clicking this button, the Dropbox login page will open in the new tab. This might require you to allow pop-up for your ERPNext account.
+
+####Step 5: Login to Dropbox
+
+Login to your Dropbox account by entering login credentials.
+
+<img class="screenshot" alt="Login" src="{{docs_base_url}}/assets/img/setup/integration-service/dropbox-2.png">
+
+####Step 6: Allow
+
+On successfull login, you will find a confirmation message as following. Click on "Allow" to let your ERPNext account have access to your Dropbox account.
+
+<img class="screenshot" alt="Allow" src="{{docs_base_url}}/assets/img/setup/integration-service/dropbox-3.png">
+
+####Step 7: Enable Service
+After generating access token, go back to Dropbox Integration Service record and check `enable`. This will enable backup auto-download.
+
+With this, a folder called "ERPNext" will be created in your Dropbox account, and database backup will start to auto-download in it.
+
+##Open Source Users
+
+####Step 1: Go to
+
+<a href="https://www.dropbox.com/developers/apps" target="_blank" style="line-height: 1.42857143;">https://www.dropbox.com/developers/apps</a>
+
+####Step 2:Create a new app
+
+<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/integration-service/dropbox-open-3.png">
+
+####Step 3: Fill in details for the app
+
+<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/integration-service/dropbox-open-1.png">
+
+-
+<img class="screenshot" alt="Create new" src="{{docs_base_url}}/assets/img/setup/integration-service/dropbox-open-2.png">
+
+####Step 4: Settings in Site Config
+
+After the app is created, note the app key and app secret on Dropbox Settings page or enter in `sites/{sitename}/site_config.json` as follows,
+
+<div>
+	<pre>
+		<code>{ 
+ "db_name": "demo", 
+ "db_password": "DZ1Idd55xJ9qvkHvUH", 
+ "dropbox_access_key": "ACCESSKEY", 
+ "dropbox_secret_key": "SECRECTKEY" 
+} 		
+		</code>
+	</pre>
+</div>
+
+####Step 5: Complete Backup
+
+Setup dropbox backups from the backup manager as shown in previous section.
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/index.md b/erpnext/docs/user/manual/en/setting-up/integration-services/index.md
new file mode 100644
index 0000000..e7b5a61
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/index.md
@@ -0,0 +1,5 @@
+
+Integration Services is platform to configure 3rd Party Services.
+
+###Services
+{index}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/index.txt b/erpnext/docs/user/manual/en/setting-up/integration-services/index.txt
new file mode 100644
index 0000000..fc5e8a4
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/index.txt
@@ -0,0 +1,4 @@
+dropbox-backup
+paypal-integration
+razorpay-integration
+ldap-integration
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/ldap-integration.md b/erpnext/docs/user/manual/en/setting-up/integration-services/ldap-integration.md
new file mode 100644
index 0000000..34678a9
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/ldap-integration.md
@@ -0,0 +1,24 @@
+#Setting up LDAP
+
+Lightweight Directory Access Protocol is a centralised access controll system used by many small medium scale organisations.
+
+By settings up LDAP service, you able to login to ERPNext account by using LDAP credentials.
+
+####Step 1: Create Razorpay service
+
+`Explore > Setup > Integration Service`
+
+Make a new Integration Service and select `LDAP` as a service from dropdown then save the document.
+After saving a document, click on `LDAP Settings` button, to setup service.
+
+####Step 2: Setup  ldap service
+
+To enable ldap service, you need to configure parameters like LDAP Server Url, Organizational Unit, Base Distinguished Name (DN) and Password for Base DN
+
+<img class="screenshot" alt="LDAP Settings" src="{{docs_base_url}}/assets/img/setup/integration-service/ldap_settings.png">
+
+####Step 3: Enable Service
+After setting up credentials on LDAP Settings, go back to LDAP Service record and enable it.
+While enabling, it will validate LDAP details and on successful validation, it will enables LDAP login option.
+
+<img class="screenshot" alt="LOGIN via LDAP" src="{{docs_base_url}}/assets/img/setup/integration-service/login_via_ldap.png">
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/paypal-integration.md b/erpnext/docs/user/manual/en/setting-up/integration-services/paypal-integration.md
new file mode 100644
index 0000000..d1054ba
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/paypal-integration.md
@@ -0,0 +1,58 @@
+#Setting up PayPal
+
+A payment gateway is an e-commerce application service provider service that authorizes credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar.
+
+A payment gateway facilitates the transfer of information between a payment portal (such as a website, mobile phone or interactive voice response service) and the Front End Processor or acquiring bank.
+
+####Step 1: Create PayPal service
+
+`Explore > Setup > Integration Service`
+
+Make a new Integration Service and select `PayPal` as a service from dropdown then save the document.
+After saving a document, click on `PayPal Settings` button, to setup service.
+
+####Step 2: Setup  payment service
+
+To enable PayPal payment service, you need to configure parameters like API Username, API Password and Signature.
+
+<img class="screenshot" alt="PayPal Settings" src="{{docs_base_url}}/assets/img/setup/integration-service/paypal_settings.png">
+
+You also can set test payment environment, by settings `Use Sandbox`
+
+####Step 3: Enable Service
+After setting up credentials on PayPal Settings, go back to PayPal Service record and enable it.
+On enabling service, the system will create Payment Gateway record and Account head in chart of account with account type as Bank.
+
+<img class="screenshot" alt="PayPal COA" src="{{docs_base_url}}/assets/img/setup/integration-service/paypal_coa.png">
+
+Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template.
+
+<img class="screenshot" alt="Payment Gateway Account" src="{{docs_base_url}}/assets/img/setup/integration-service/payment_gateway_account_paypal.png">
+
+After enabling service and configuring Payment Gateway Account your system is able to accept online payments.
+
+####Supporting transaction currencies
+AUD, BRL, CAD, CZK, DKK, EUR, HKD, HUF, ILS, JPY, MYR, MXN, TWD, NZD, NOK, PHP, PLN, GBP, RUB, SGD, SEK, CHF, THB, TRY, USD
+
+##Get PayPal credentials
+
+#### Paypal Sanbox API Signature
+ - Login to paypal developer account, <a href="https://developer.paypal.com/">PayPal Developer Account</a>
+ - From **Accounts** tab. create a new business account.
+<img class="screenshot" alt="Payment Request" src="{{ docs_base_url }}/assets/img/setup/integration-service/setup-sanbox-1.png">
+ 
+ - From this account profile you will get your sandbox api credentials
+<img class="screenshot" alt="Payment Request" src="{{ docs_base_url }}/assets/img/setup/integration-service/sanbox-credentials.png">
+
+
+---
+
+#### PayPal Account API Signature
+ - Login to PayPal Account and go to profile
+<img class="screenshot" alt="Payment Request" src="{{ docs_base_url }}/assets/img/setup/integration-service/api-step-1.png">
+
+ - From **My Selling Tools** go to **api Access**
+<img class="screenshot" alt="Payment Request" src="{{ docs_base_url }}/assets/img/setup/integration-service/api-step-2.png">
+
+ - On API Access Page, choose option 2 to generate API credentials
+<img class="screenshot" alt="Payment Request" src="{{ docs_base_url }}/assets/img/setup/integration-service/api-step-3.png">
diff --git a/erpnext/docs/user/manual/en/setting-up/integration-services/razorpay-integration.md b/erpnext/docs/user/manual/en/setting-up/integration-services/razorpay-integration.md
new file mode 100644
index 0000000..ad43f63
--- /dev/null
+++ b/erpnext/docs/user/manual/en/setting-up/integration-services/razorpay-integration.md
@@ -0,0 +1,33 @@
+#Setting up Razorpay
+
+A payment gateway is an e-commerce application service provider service that authorizes credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar.
+
+A payment gateway facilitates the transfer of information between a payment portal (such as a website, mobile phone or interactive voice response service) and the Front End Processor or acquiring bank.
+
+####Step 1: Create Razorpay service
+
+`Explore > Setup > Integration Service`
+
+Make a new Integration Service and select `Razorpay` as a service from dropdown then save the document.
+After saving a document, click on `Razorpay Settings` button, to setup service.
+
+####Step 2: Setup  payment service
+
+To enable Razorpay payment service, you need to configure parameters like API Username, API Password and Signature.
+
+<img class="screenshot" alt="Razorpay Settings" src="{{docs_base_url}}/assets/img/setup/integration-service/razorpay_settings.png">
+
+####Step 3: Enable Service
+After setting up credentials on Razorpay Settings, go back to Razorpay Service record and enable it.
+On enabling service, the system will create Payment Gateway record and Account head in chart of account with account type as Bank.
+
+<img class="screenshot" alt="Razorpay COA" src="{{docs_base_url}}/assets/img/setup/integration-service/razorpay_coa.png">
+
+Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template.
+
+<img class="screenshot" alt="Payment Gateway Account" src="{{docs_base_url}}/assets/img/setup/integration-service/payment_gateway_account_razorpay.png">
+
+After enabling service and configuring Payment Gateway Account your system is able to accept online payments.
+
+####Supporting transaction currencies
+INR
diff --git a/erpnext/docs/user/manual/en/setting-up/print/multi-lingual-print-format.md b/erpnext/docs/user/manual/en/setting-up/print/custom-translations.md
similarity index 98%
rename from erpnext/docs/user/manual/en/setting-up/print/multi-lingual-print-format.md
rename to erpnext/docs/user/manual/en/setting-up/print/custom-translations.md
index a15834c..1dab1c1 100644
--- a/erpnext/docs/user/manual/en/setting-up/print/multi-lingual-print-format.md
+++ b/erpnext/docs/user/manual/en/setting-up/print/custom-translations.md
@@ -1,4 +1,4 @@
-#Multi-lngual Print Formats
+#Custom Translations
 
 User can print the customer's and supplier's document in their local language. For an example if I have customers from germany, france who want quotation in german, french language will be possible with these feature.
 
diff --git a/erpnext/docs/user/manual/en/setting-up/print/index.txt b/erpnext/docs/user/manual/en/setting-up/print/index.txt
index 80b5946..fa23652 100644
--- a/erpnext/docs/user/manual/en/setting-up/print/index.txt
+++ b/erpnext/docs/user/manual/en/setting-up/print/index.txt
@@ -5,4 +5,4 @@
 address-template
 terms-and-conditions
 cheque-print-template
-multi-lingual-print-format
\ No newline at end of file
+custom-translations
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md b/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md
index 15dd117..f03bbd8 100644
--- a/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md
+++ b/erpnext/docs/user/manual/en/using-erpnext/articles/merging-documents.md
@@ -1,6 +1,6 @@
 #Merging Documents
 
-For a document, of you have two records which are identical, and meant for common purpose, you can merge them into one record.
+For a document, if you have two records which are identical, and meant for common purpose, you can merge them into one record.
 
 Following are step to merge documents. Let's assume we are merging two Accounts.
 
@@ -10,7 +10,7 @@
 
 #### Step 2: Go to Account 
 
-For an Account to be merge, click on "Rename" option.
+For an Account to be merged, click on the "Rename" option.
 
 <img alt="Sales Order File Attachment" class="screenshot" src="{{docs_base_url}}/assets/img/articles/merge-docs-1.png">
 
@@ -18,7 +18,7 @@
 
 In the New Name field, enter another account name with which this account will be merged. Check "Merge with existing" option. Then press 'Rename' button to merge.
 
-Following is how merged account will appear in the Chart of Account master.
+Following is how the merged account will appear in the Chart of Accounts master.
 
 <img alt="Sales Order File Attachment" class="screenshot" src="{{docs_base_url}}/assets/img/articles/merge-docs-2.gif">
 
@@ -28,4 +28,4 @@
 
 <div class="well"> Note: Group Account cannot be merged into Child Account and vice versa.</div>
 
-<!-- markdown -->
\ No newline at end of file
+<!-- markdown -->
diff --git a/erpnext/docs/user/manual/en/website/articles/index.txt b/erpnext/docs/user/manual/en/website/articles/index.txt
index a89040a..97c24d5 100644
--- a/erpnext/docs/user/manual/en/website/articles/index.txt
+++ b/erpnext/docs/user/manual/en/website/articles/index.txt
@@ -1,3 +1,3 @@
 managing-user-sign-up-via-website
 website-security
-wesite-home-page
\ No newline at end of file
+website-home-page
diff --git a/erpnext/docs/user/manual/en/website/articles/wesite-home-page.md b/erpnext/docs/user/manual/en/website/articles/website-home-page.md
similarity index 97%
rename from erpnext/docs/user/manual/en/website/articles/wesite-home-page.md
rename to erpnext/docs/user/manual/en/website/articles/website-home-page.md
index 0cf5fdc..9212643 100644
--- a/erpnext/docs/user/manual/en/website/articles/wesite-home-page.md
+++ b/erpnext/docs/user/manual/en/website/articles/website-home-page.md
@@ -1,4 +1,4 @@
-<h1>Wesite Home Page</h1>
+<h1>Website Home Page</h1>
 
 It is very much possible in ERPNext to setup certain standard page as default website Home Page. Following are steps to setup default website home page.
 
diff --git a/erpnext/manufacturing/doctype/workstation/workstation.py b/erpnext/manufacturing/doctype/workstation/workstation.py
index b939803..5095784 100644
--- a/erpnext/manufacturing/doctype/workstation/workstation.py
+++ b/erpnext/manufacturing/doctype/workstation/workstation.py
@@ -60,9 +60,10 @@
 	workstation = frappe.get_doc("Workstation", workstation)
 
 	for working_hour in workstation.working_hours:
-		slot_length = (to_timedelta(working_hour.end_time or "") - to_timedelta(working_hour.start_time or "")).total_seconds()
-		if slot_length >= operation_length:
-			return
+		if working_hour.start_time and working_hour.end_time:
+			slot_length = (to_timedelta(working_hour.end_time or "") - to_timedelta(working_hour.start_time or "")).total_seconds()
+			if slot_length >= operation_length:
+				return
 
 	frappe.throw(_("Operation {0} longer than any available working hours in workstation {1}, break down the operation into multiple operations").format(operation, workstation.name), NotInWorkingHoursError)
 
diff --git a/erpnext/projects/doctype/timesheet/timesheet.json b/erpnext/projects/doctype/timesheet/timesheet.json
index d06fbb5..baad029 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.json
+++ b/erpnext/projects/doctype/timesheet/timesheet.json
@@ -6,7 +6,7 @@
  "beta": 0, 
  "creation": "2013-02-28 17:57:33", 
  "custom": 0, 
- "description": "Batch Time Logs for Billing.", 
+ "description": "", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "document_type": "Document", 
@@ -877,7 +877,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-11-22 01:42:54.204441", 
+ "modified": "2016-11-23 17:35:51.194690", 
  "modified_by": "Administrator", 
  "module": "Projects", 
  "name": "Timesheet", 
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 39e87f8..c80d418 100644
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -143,8 +143,35 @@
 			if(!cur_frm.doc.items[0].item_code) {
 				cur_frm.doc.items = cur_frm.doc.items.splice(1);
 			}
+
+			// find the doctype of the items table
+			var items_doctype = frappe.meta.get_docfield(cur_frm.doctype, 'items').options;
+			
+			// find the link fieldname from items table for the given
+			// source_doctype
+			var link_fieldname = null;
+			frappe.get_meta(items_doctype).fields.forEach(function(d) { 
+				if(d.options===opts.source_doctype) link_fieldname = d.fieldname; });
+
+			// search in existing items if the source_name is already set
+			var already_set = false;
+
+			$.each(cur_frm.doc.items, function(i, d) {
+				if(d[link_fieldname]==opts.source_name) {
+					already_set = true;
+					return false;
+				}
+			});
+
+			if(already_set) {
+				frappe.msgprint(__("You have already selected items from {0} {1}", 
+					[opts.source_doctype, opts.source_name]));
+				return;
+			}
+
 		}
 
+
 		return frappe.call({
 			// Sometimes we hit the limit for URL length of a GET request
 			// as we send the full target_doc. Hence this is a POST request.
diff --git a/erpnext/schools/doctype/assessment/assessment.js b/erpnext/schools/doctype/assessment/assessment.js
index efadbd6..e842f41 100644
--- a/erpnext/schools/doctype/assessment/assessment.js
+++ b/erpnext/schools/doctype/assessment/assessment.js
@@ -6,46 +6,46 @@
 cur_frm.add_fetch("supervisor", "instructor_name", "supervisor_name");
 cur_frm.add_fetch("student", "title", "student_name");
 
-frappe.ui.form.on("Assessment" ,{
-	student_group : function(frm) {
-		frm.set_value("results" ,"");
-		if (frm.doc.student_group) {
-			frappe.call({
-				method: "erpnext.schools.api.get_student_group_students",
-				args: {
-					"student_group": frm.doc.student_group
-				},
-				callback: function(r) {
-					if (r.message) {
-						$.each(r.message, function(i, d) {
-							var row = frappe.model.add_child(cur_frm.doc, "Assessment Result", "results");
-							row.student = d.student;
-							row.student_name = d.student_name;
-						});
-					}
-					refresh_field("results");
-				}
-			});
-		}
-	}
+frappe.ui.form.on("Assessment", {
+    student_group: function(frm) {
+        frm.set_value("results", "");
+        if (frm.doc.student_group) {
+            frappe.call({
+                method: "erpnext.schools.api.get_student_group_students",
+                args: {
+                    "student_group": frm.doc.student_group
+                },
+                callback: function(r) {
+                    if (r.message) {
+                        $.each(r.message, function(i, d) {
+                            var row = frappe.model.add_child(cur_frm.doc, "Assessment Result", "results");
+                            row.student = d.student;
+                            row.student_name = d.student_name;
+                        });
+                    }
+                    refresh_field("results");
+                }
+            });
+        }
+    }
 });
 
-frappe.ui.form.on("Assessment Result" ,{
-	result : function(frm, cdt, cdn) {
-		if(frm.doc.grading_structure){
-			var assessment_result = locals[cdt][cdn];
-			frappe.call({
-				method:"erpnext.schools.doctype.assessment.assessment.get_grade",
-				args:{
-					grading_structure: frm.doc.grading_structure,
-					result: assessment_result.result
-				},
-				callback: function(r){
-					if(r.message){
-						frappe.model.set_value(cdt, cdn, 'grade', r.message);
-					}
-				}
-			});
-		}
-	}
+frappe.ui.form.on("Assessment Result", {
+    result: function(frm, cdt, cdn) {
+        if (frm.doc.grading_structure) {
+            var assessment_result = locals[cdt][cdn];
+            frappe.call({
+                method: "erpnext.schools.doctype.assessment.assessment.get_grade",
+                args: {
+                    grading_structure: frm.doc.grading_structure,
+                    result: assessment_result.result
+                },
+                callback: function(r) {
+                    if (r.message) {
+                        frappe.model.set_value(cdt, cdn, 'grade', r.message);
+                    }
+                }
+            });
+        }
+    }
 });
\ No newline at end of file
diff --git a/erpnext/schools/doctype/assessment/assessment.py b/erpnext/schools/doctype/assessment/assessment.py
index cb307cb..003b427 100644
--- a/erpnext/schools/doctype/assessment/assessment.py
+++ b/erpnext/schools/doctype/assessment/assessment.py
@@ -10,7 +10,7 @@
 class Assessment(Document):
 	def validate(self):
 		self.validate_overlap()
-	
+
 	def validate_overlap(self):
 		"""Validates overlap for Student Group/Student Batch, Instructor, Room"""
 		
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.js b/erpnext/schools/doctype/course_schedule/course_schedule.js
index ab34ae9..04a8cde 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.js
+++ b/erpnext/schools/doctype/course_schedule/course_schedule.js
@@ -1,137 +1,134 @@
 frappe.provide("schools")
 
-frappe.ui.form.on("Course Schedule" ,{
-	onload: function(frm) {
-		if (frm.doc.from_datetime && frm.doc.to_datetime) {
-			var from_datetime = moment(frm.doc.from_datetime);
-			var to_datetime = moment(frm.doc.to_datetime);
-			frm.doc.schedule_date = from_datetime.format(moment.defaultFormat);
-			frm.doc.from_time = from_datetime.format("HH:mm:ss");
-			frm.doc.to_time = to_datetime.format("HH:mm:ss");
-		}
-	},
-	
-	refresh :function(frm) {
-		if(!frm.doc.__islocal && frm.doc.student_group) {
-			frappe.call({
-				method: "erpnext.schools.api.check_attendance_records_exist",
-				args: {
-					"course_schedule": frm.doc.name
-				},
-				callback: function(r) {
-					if(r.message) {
-						hide_field('attendance');
-						frm.events.view_attendance(frm)
-					}
-					else {
-						frappe.call({
-							method: "erpnext.schools.api.get_student_group_students",
-							args: {
-								"student_group": frm.doc.student_group
-							},
-							callback: function(r) {
-								if (r.message) {
-									frm.events.get_students(frm, r.message)
-								}
-							}
-						});
-					}
-				}
-			});
-		}
-		else {
-			hide_field('attendance');
-		}
-	},
-	
-	view_attendance: function(frm) {
-		hide_field('attendance');
-		frm.add_custom_button(__("View attendance"), function() {
-			frappe.route_options = {
-				course_schedule: frm.doc.name
-			}
-			frappe.set_route("List", "Student Attendance");
-		});
-	},
-	
-	get_students: function(frm, students) {
-		if(!frm.students_area) {
-		frm.students_area = $('<div>')
-			.appendTo(frm.fields_dict.students_html.wrapper);
-		}
-		frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
-	}
+frappe.ui.form.on("Course Schedule", {
+    onload: function(frm) {
+        if (frm.doc.from_datetime && frm.doc.to_datetime) {
+            var from_datetime = moment(frm.doc.from_datetime);
+            var to_datetime = moment(frm.doc.to_datetime);
+            frm.doc.schedule_date = from_datetime.format(moment.defaultFormat);
+            frm.doc.from_time = from_datetime.format("HH:mm:ss");
+            frm.doc.to_time = to_datetime.format("HH:mm:ss");
+        }
+    },
+
+    refresh: function(frm) {
+        if (!frm.doc.__islocal && frm.doc.student_group) {
+            frappe.call({
+                method: "erpnext.schools.api.check_attendance_records_exist",
+                args: {
+                    "course_schedule": frm.doc.name
+                },
+                callback: function(r) {
+                    if (r.message) {
+                        hide_field('attendance');
+                        frm.events.view_attendance(frm)
+                    } else {
+                        frappe.call({
+                            method: "erpnext.schools.api.get_student_group_students",
+                            args: {
+                                "student_group": frm.doc.student_group
+                            },
+                            callback: function(r) {
+                                if (r.message) {
+                                    frm.events.get_students(frm, r.message)
+                                }
+                            }
+                        });
+                    }
+                }
+            });
+        } else {
+            hide_field('attendance');
+        }
+    },
+
+    view_attendance: function(frm) {
+        hide_field('attendance');
+        frm.add_custom_button(__("View attendance"), function() {
+            frappe.route_options = {
+                course_schedule: frm.doc.name
+            }
+            frappe.set_route("List", "Student Attendance");
+        });
+    },
+
+    get_students: function(frm, students) {
+        if (!frm.students_area) {
+            frm.students_area = $('<div>')
+                .appendTo(frm.fields_dict.students_html.wrapper);
+        }
+        frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
+    }
 });
 
 
 schools.StudentsEditor = Class.extend({
-	init: function(frm, wrapper, students) {
-		this.wrapper = wrapper;
-		this.frm = frm;
-		this.make(frm, students);
-	},
-	make: function(frm, students) {
-		var me = this;
-		
-		$(this.wrapper).empty();
-		var student_toolbar = $('<p>\
+    init: function(frm, wrapper, students) {
+        this.wrapper = wrapper;
+        this.frm = frm;
+        this.make(frm, students);
+    },
+    make: function(frm, students) {
+        var me = this;
+
+        $(this.wrapper).empty();
+        var student_toolbar = $('<p>\
 			<button class="btn btn-default btn-add btn-xs" style="margin-right: 5px;"></button>\
 			<button class="btn btn-xs btn-default btn-remove" style="margin-right: 5px;"></button>\
 			<button class="btn btn-default btn-primary btn-mark-att btn-xs"></button></p>').appendTo($(this.wrapper));
 
-		student_toolbar.find(".btn-add")
-			.html(__('Check all'))
-			.on("click", function() {
-			$(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
-				if(!$(check).is(":checked")) {
-					check.checked = true;
-				}
-			});
-		});
+        student_toolbar.find(".btn-add")
+            .html(__('Check all'))
+            .on("click", function() {
+                $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+                    if (!$(check).is(":checked")) {
+                        check.checked = true;
+                    }
+                });
+            });
 
-		student_toolbar.find(".btn-remove")
-			.html(__('Uncheck all'))
-			.on("click", function() {
-			$(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
-				if($(check).is(":checked")) {
-					check.checked = false;
-				}
-			});
-		});
-		
-		student_toolbar.find(".btn-mark-att")
-			.html(__('Mark Attendence'))
-			.on("click", function() {
-				var students_present = [];
-				var students_absent = [];
-				$(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
-					if($(check).is(":checked")) {
-						students_present.push(students[i]);
-					}
-					else {
-						students_absent.push(students[i]);
-					}
-				});
-				frappe.call({
-					method: "erpnext.schools.api.mark_attendance",
-					args: {
-						"students_present": students_present,
-						"students_absent": students_absent,
-						"course_schedule": frm.doc.name
-					},
-					callback: function(r) {
-						frm.events.view_attendance(frm)
-					}
-				});
-		});
+        student_toolbar.find(".btn-remove")
+            .html(__('Uncheck all'))
+            .on("click", function() {
+                $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+                    if ($(check).is(":checked")) {
+                        check.checked = false;
+                    }
+                });
+            });
 
-		
-		$.each(students, function(i, m) {
-			$(repl('<div class="col-sm-6">\
+        student_toolbar.find(".btn-mark-att")
+            .html(__('Mark Attendence'))
+            .on("click", function() {
+                var students_present = [];
+                var students_absent = [];
+                $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+                    if ($(check).is(":checked")) {
+                        students_present.push(students[i]);
+                    } else {
+                        students_absent.push(students[i]);
+                    }
+                });
+                frappe.call({
+                    method: "erpnext.schools.api.mark_attendance",
+                    args: {
+                        "students_present": students_present,
+                        "students_absent": students_absent,
+                        "course_schedule": frm.doc.name
+                    },
+                    callback: function(r) {
+                        frm.events.view_attendance(frm)
+                    }
+                });
+            });
+
+
+        $.each(students, function(i, m) {
+            $(repl('<div class="col-sm-6">\
 				<div class="checkbox">\
 				<label><input type="checkbox" class="students-check" student="%(student)s">\
 				%(student)s</label>\
-			</div></div>', {student: m.student_name})).appendTo(me.wrapper);
-		});
-	}
+			</div></div>', { student: m.student_name })).appendTo(me.wrapper);
+        });
+    }
 })
\ No newline at end of file
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.json b/erpnext/schools/doctype/course_schedule/course_schedule.json
index 4a4b2d3..122285e 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.json
+++ b/erpnext/schools/doctype/course_schedule/course_schedule.json
@@ -478,7 +478,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2016-11-16 16:38:00.454295", 
+ "modified": "2016-12-01 12:59:25.086606", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Course Schedule", 
@@ -490,6 +490,27 @@
    "apply_user_permissions": 0, 
    "cancel": 0, 
    "create": 1, 
+   "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
    "delete": 1, 
    "email": 1, 
    "export": 1, 
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
index b8d4562..ea62b8f 100644
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
+++ b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
@@ -7,12 +7,15 @@
 cur_frm.add_fetch("student_group", "academic_year", "academic_year");
 cur_frm.add_fetch("student_group", "academic_term", "academic_term");
 
-frappe.ui.form.on("Course Scheduling Tool", "refresh", function(frm) {
-	frm.disable_save();
-	frm.page.set_primary_action(__("Schedule Course"), function() {
-		frappe.call({
-			method: "schedule_course",
-			doc:frm.doc
-		})
-	});
+frappe.ui.form.on("Course Scheduling Tool", {
+
+    refresh: function(frm) {
+        frm.disable_save();
+        frm.page.set_primary_action(__("Schedule Course"), function() {
+            frappe.call({
+                method: "schedule_course",
+                doc: frm.doc
+            })
+        });
+    }
 });
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student/student.json b/erpnext/schools/doctype/student/student.json
index d188db3..6984d38 100644
--- a/erpnext/schools/doctype/student/student.json
+++ b/erpnext/schools/doctype/student/student.json
@@ -24,6 +24,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "First Name", 
    "length": 0, 
    "no_copy": 0, 
@@ -32,6 +33,7 @@
    "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, 
@@ -50,6 +52,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Middle Name", 
    "length": 0, 
    "no_copy": 0, 
@@ -58,6 +61,7 @@
    "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, 
@@ -76,6 +80,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Last Name", 
    "length": 0, 
    "no_copy": 0, 
@@ -84,6 +89,7 @@
    "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, 
@@ -102,6 +108,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -109,6 +116,7 @@
    "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, 
@@ -127,6 +135,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Naming Series", 
    "length": 0, 
    "no_copy": 0, 
@@ -136,6 +145,7 @@
    "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, 
@@ -154,6 +164,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Student Email ID", 
    "length": 0, 
    "no_copy": 0, 
@@ -162,6 +173,7 @@
    "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, 
@@ -180,6 +192,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Student Mobile Number", 
    "length": 0, 
    "no_copy": 0, 
@@ -189,6 +202,7 @@
    "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, 
@@ -208,6 +222,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 1, 
+   "in_standard_filter": 0, 
    "label": "Joining Date", 
    "length": 0, 
    "no_copy": 0, 
@@ -216,6 +231,7 @@
    "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, 
@@ -234,6 +250,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Image", 
    "length": 0, 
    "no_copy": 0, 
@@ -242,6 +259,7 @@
    "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, 
@@ -262,6 +280,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Personal Details", 
    "length": 0, 
    "no_copy": 0, 
@@ -270,6 +289,7 @@
    "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, 
@@ -288,6 +308,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Date of Birth", 
    "length": 0, 
    "no_copy": 0, 
@@ -296,6 +317,7 @@
    "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, 
@@ -314,6 +336,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Blood Group", 
    "length": 0, 
    "no_copy": 0, 
@@ -323,6 +346,7 @@
    "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, 
@@ -341,6 +365,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -348,6 +373,7 @@
    "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, 
@@ -366,6 +392,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Gender", 
    "length": 0, 
    "no_copy": 0, 
@@ -375,6 +402,7 @@
    "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, 
@@ -393,6 +421,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Nationality", 
    "length": 0, 
    "no_copy": 0, 
@@ -402,6 +431,7 @@
    "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, 
@@ -420,6 +450,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Student Applicant", 
    "length": 0, 
    "no_copy": 0, 
@@ -429,6 +460,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -447,6 +479,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Home Address", 
    "length": 0, 
    "no_copy": 0, 
@@ -455,6 +488,7 @@
    "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, 
@@ -473,6 +507,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Address Line 1", 
    "length": 0, 
    "no_copy": 0, 
@@ -481,6 +516,7 @@
    "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, 
@@ -499,6 +535,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Address Line 2", 
    "length": 0, 
    "no_copy": 0, 
@@ -507,6 +544,7 @@
    "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, 
@@ -525,6 +563,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Pincode", 
    "length": 0, 
    "no_copy": 0, 
@@ -533,6 +572,7 @@
    "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, 
@@ -551,6 +591,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -558,6 +599,7 @@
    "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, 
@@ -576,6 +618,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "City", 
    "length": 0, 
    "no_copy": 0, 
@@ -584,6 +627,7 @@
    "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, 
@@ -602,6 +646,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "State", 
    "length": 0, 
    "no_copy": 0, 
@@ -610,6 +655,7 @@
    "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, 
@@ -628,6 +674,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Guardian Details", 
    "length": 0, 
    "no_copy": 0, 
@@ -636,6 +683,7 @@
    "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, 
@@ -654,6 +702,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Guardians", 
    "length": 0, 
    "no_copy": 0, 
@@ -663,6 +712,7 @@
    "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, 
@@ -681,6 +731,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Sibling Details", 
    "length": 0, 
    "no_copy": 0, 
@@ -690,6 +741,7 @@
    "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, 
@@ -708,6 +760,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Siblings", 
    "length": 0, 
    "no_copy": 0, 
@@ -717,6 +770,7 @@
    "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, 
@@ -736,6 +790,7 @@
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
    "in_list_view": 0, 
+   "in_standard_filter": 0, 
    "label": "Title", 
    "length": 0, 
    "no_copy": 0, 
@@ -744,6 +799,7 @@
    "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, 
@@ -763,7 +819,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2016-10-26 12:24:10.533118", 
+ "modified": "2016-12-01 12:55:32.453131", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student", 
@@ -774,6 +830,27 @@
    "amend": 0, 
    "apply_user_permissions": 0, 
    "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 1, 
    "email": 1, 
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.js b/erpnext/schools/doctype/student_attendance/student_attendance.js
index 6e79d52..ec2a0cb 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.js
+++ b/erpnext/schools/doctype/student_attendance/student_attendance.js
@@ -2,10 +2,4 @@
 // For license information, please see license.txt
 
 cur_frm.add_fetch("course_schedule", "schedule_date", "date");
-cur_frm.add_fetch("course_schedule", "student_batch", "student_batch");
-
-frappe.ui.form.on('Student Attendance', {
-	refresh: function(frm) {
-
-	}
-});
+cur_frm.add_fetch("course_schedule", "student_batch", "student_batch")
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.json b/erpnext/schools/doctype/student_attendance/student_attendance.json
index 70fcdf3..3ea47f37 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.json
+++ b/erpnext/schools/doctype/student_attendance/student_attendance.json
@@ -252,7 +252,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-11-16 16:58:35.779867", 
+ "modified": "2016-12-01 12:56:21.537215", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student Attendance", 
@@ -265,6 +265,27 @@
    "cancel": 1, 
    "create": 1, 
    "delete": 1, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 1, 
+   "write": 1
+  }, 
+  {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
    "email": 1, 
    "export": 1, 
    "if_owner": 0, 
diff --git a/erpnext/schools/doctype/student_batch/student_batch.json b/erpnext/schools/doctype/student_batch/student_batch.json
index 51dc541..f571d9d 100644
--- a/erpnext/schools/doctype/student_batch/student_batch.json
+++ b/erpnext/schools/doctype/student_batch/student_batch.json
@@ -75,6 +75,35 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "default": "1", 
+   "fieldname": "enabled", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Active", 
+   "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": "column_break_2", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -280,7 +309,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-11-21 19:08:05.775954", 
+ "modified": "2016-12-01 13:18:12.024001", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student Batch", 
@@ -307,6 +336,27 @@
    "share": 1, 
    "submit": 0, 
    "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 0
   }
  ], 
  "quick_entry": 1, 
diff --git a/erpnext/schools/doctype/student_batch/student_batch.py b/erpnext/schools/doctype/student_batch/student_batch.py
index ec2dc79..1a0d799 100644
--- a/erpnext/schools/doctype/student_batch/student_batch.py
+++ b/erpnext/schools/doctype/student_batch/student_batch.py
@@ -8,12 +8,11 @@
 import frappe
 
 class StudentBatch(Document):
-    def autoname(self):
-        prog_abb = frappe.db.get_value("Program", self.program, "program_abbreviation")
-        if not prog_abb:
-            prog_abb = self.program
-        self.name = prog_abb + "-"+ self.student_batch_name + "-" + self.academic_year
-        
-    def validate(self):
-        validate_duplicate_student(self.students)
-        
\ No newline at end of file
+	def autoname(self):
+		prog_abb = frappe.db.get_value("Program", self.program, "program_abbreviation")
+		if not prog_abb:
+			prog_abb = self.program
+		self.name = prog_abb + "-"+ self.student_batch_name + "-" + self.academic_year
+		
+	def validate(self):
+		validate_duplicate_student(self.students)
diff --git a/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js b/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js
index a6d035a..6dc9181 100644
--- a/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js
+++ b/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.js
@@ -3,126 +3,124 @@
 frappe.provide("schools")
 
 frappe.ui.form.on('Student Batch Attendance Tool', {
-	refresh: function(frm) {
-		frm.disable_save();
-		hide_field('attendance');
-	},
-	
-	student_batch :function(frm) {
-		if(frm.doc.student_batch && frm.doc.date) {
-			frappe.call({
-				method: "erpnext.schools.api.check_attendance_records_exist",
-				args: {
-					"student_batch": frm.doc.student_batch,
-					"date": frm.doc.date
-				},
-				callback: function(r) {
-					if(r.message) {
-						frappe.msgprint("Attendance already marked.");
-						hide_field('attendance');
-					}
-					else {
-						frappe.call({
-							method: "erpnext.schools.api.get_student_batch_students",
-							args: {
-								"student_batch": frm.doc.student_batch
-							},
-							callback: function(r) {
-								if (r.message) {
-									unhide_field('attendance');
-									frm.events.get_students(frm, r.message)
-								}
-							}
-						});
-					}
-				}
-			});
-		}
-	},
-	
-	date: function(frm) {
-		frm.trigger("student_batch");
-	},
-	
-	get_students: function(frm, students) {
-		if(!frm.students_area) {
-		frm.students_area = $('<div>')
-			.appendTo(frm.fields_dict.students_html.wrapper);
-		}
-		frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
-	}
+    refresh: function(frm) {
+        frm.disable_save();
+        hide_field('attendance');
+    },
+
+    student_batch: function(frm) {
+        if (frm.doc.student_batch && frm.doc.date) {
+            frappe.call({
+                method: "erpnext.schools.api.check_attendance_records_exist",
+                args: {
+                    "student_batch": frm.doc.student_batch,
+                    "date": frm.doc.date
+                },
+                callback: function(r) {
+                    if (r.message) {
+                        frappe.msgprint("Attendance already marked.");
+                        hide_field('attendance');
+                    } else {
+                        frappe.call({
+                            method: "erpnext.schools.api.get_student_batch_students",
+                            args: {
+                                "student_batch": frm.doc.student_batch
+                            },
+                            callback: function(r) {
+                                if (r.message) {
+                                    unhide_field('attendance');
+                                    frm.events.get_students(frm, r.message)
+                                }
+                            }
+                        });
+                    }
+                }
+            });
+        }
+    },
+
+    date: function(frm) {
+        frm.trigger("student_batch");
+    },
+
+    get_students: function(frm, students) {
+        if (!frm.students_area) {
+            frm.students_area = $('<div>')
+                .appendTo(frm.fields_dict.students_html.wrapper);
+        }
+        frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
+    }
 });
 
 
 schools.StudentsEditor = Class.extend({
-	init: function(frm, wrapper, students) {
-		this.wrapper = wrapper;
-		this.frm = frm;
-		this.make(frm, students);
-	},
-	make: function(frm, students) {
-		var me = this;
-		
-		$(this.wrapper).empty();
-		var student_toolbar = $('<p>\
+    init: function(frm, wrapper, students) {
+        this.wrapper = wrapper;
+        this.frm = frm;
+        this.make(frm, students);
+    },
+    make: function(frm, students) {
+        var me = this;
+
+        $(this.wrapper).empty();
+        var student_toolbar = $('<p>\
 			<button class="btn btn-default btn-add btn-xs" style="margin-right: 5px;"></button>\
 			<button class="btn btn-xs btn-default btn-remove" style="margin-right: 5px;"></button>\
 			<button class="btn btn-default btn-primary btn-mark-att btn-xs"></button></p>').appendTo($(this.wrapper));
 
-		student_toolbar.find(".btn-add")
-			.html(__('Check all'))
-			.on("click", function() {
-			$(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
-				if(!$(check).is(":checked")) {
-					check.checked = true;
-				}
-			});
-		});
+        student_toolbar.find(".btn-add")
+            .html(__('Check all'))
+            .on("click", function() {
+                $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+                    if (!$(check).is(":checked")) {
+                        check.checked = true;
+                    }
+                });
+            });
 
-		student_toolbar.find(".btn-remove")
-			.html(__('Uncheck all'))
-			.on("click", function() {
-			$(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
-				if($(check).is(":checked")) {
-					check.checked = false;
-				}
-			});
-		});
-		
-		student_toolbar.find(".btn-mark-att")
-			.html(__('Mark Attendence'))
-			.on("click", function() {
-				var students_present = [];
-				var students_absent = [];
-				$(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
-					if($(check).is(":checked")) {
-						students_present.push(students[i]);
-					}
-					else {
-						students_absent.push(students[i]);
-					}
-				});
-				frappe.call({
-					method: "erpnext.schools.api.mark_attendance",
-					args: {
-						"students_present": students_present,
-						"students_absent": students_absent,
-						"student_batch": frm.doc.student_batch,
-						"date": frm.doc.date
-					},
-					callback: function(r) {
-						hide_field('attendance');
-					}
-				});
-		});
+        student_toolbar.find(".btn-remove")
+            .html(__('Uncheck all'))
+            .on("click", function() {
+                $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+                    if ($(check).is(":checked")) {
+                        check.checked = false;
+                    }
+                });
+            });
 
-		
-		$.each(students, function(i, m) {
-			$(repl('<div class="col-sm-6">\
+        student_toolbar.find(".btn-mark-att")
+            .html(__('Mark Attendence'))
+            .on("click", function() {
+                var students_present = [];
+                var students_absent = [];
+                $(me.wrapper).find('input[type="checkbox"]').each(function(i, check) {
+                    if ($(check).is(":checked")) {
+                        students_present.push(students[i]);
+                    } else {
+                        students_absent.push(students[i]);
+                    }
+                });
+                frappe.call({
+                    method: "erpnext.schools.api.mark_attendance",
+                    args: {
+                        "students_present": students_present,
+                        "students_absent": students_absent,
+                        "student_batch": frm.doc.student_batch,
+                        "date": frm.doc.date
+                    },
+                    callback: function(r) {
+                        hide_field('attendance');
+                    }
+                });
+            });
+
+
+        $.each(students, function(i, m) {
+            $(repl('<div class="col-sm-6">\
 				<div class="checkbox">\
 				<label><input type="checkbox" class="students-check" student="%(student)s">\
 				%(student)s</label>\
-			</div></div>', {student: m.student_name})).appendTo(me.wrapper);
-		});
-	}
-});
+			</div></div>', { student: m.student_name })).appendTo(me.wrapper);
+        });
+    }
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.json b/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.json
index 3361dcb..defc886 100644
--- a/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.json
+++ b/erpnext/schools/doctype/student_batch_attendance_tool/student_batch_attendance_tool.json
@@ -163,7 +163,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-11-16 17:16:43.835693", 
+ "modified": "2016-12-01 12:58:31.822014", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student Batch Attendance Tool", 
@@ -176,6 +176,27 @@
    "cancel": 0, 
    "create": 1, 
    "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
    "email": 1, 
    "export": 0, 
    "if_owner": 0, 
diff --git a/erpnext/schools/doctype/student_group/student_group.js b/erpnext/schools/doctype/student_group/student_group.js
index 784f557..6f4084b 100644
--- a/erpnext/schools/doctype/student_group/student_group.js
+++ b/erpnext/schools/doctype/student_group/student_group.js
@@ -1,34 +1,36 @@
 cur_frm.add_fetch("student", "title", "student_name");
 
-frappe.ui.form.on("Student Group", "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"), function() {
-			frappe.route_options = {
-				student_group: frm.doc.name
-			}
-			frappe.set_route("List", "Assessment");
-		});
-	}
-});
+frappe.ui.form.on("Student Group", {
+    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");
+            });
 
-frappe.ui.form.on("Student Group", "onload", function(frm){
-	cur_frm.set_query("academic_term",function(){
-		return{
-			"filters":{
-				"academic_year": (frm.doc.academic_year)
-			}
-		};
-	});
+            frm.add_custom_button(__("Assessment"), function() {
+                frappe.route_options = {
+                    student_group: frm.doc.name
+                }
+                frappe.set_route("List", "Assessment");
+            });
+        }
+    },
+
+    onload: function(frm) {
+        cur_frm.set_query("academic_term", function() {
+            return {
+                "filters": {
+                    "academic_year": (frm.doc.academic_year)
+                }
+            };
+        });
+    }
 });
 
 //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");
+cur_frm.add_fetch("student_batch", "academic_year", "academic_year");
\ 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 adab0c7..9e44f51 100644
--- a/erpnext/schools/doctype/student_group/student_group.json
+++ b/erpnext/schools/doctype/student_group/student_group.json
@@ -311,7 +311,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2016-11-07 05:26:38.673266", 
+ "modified": "2016-12-01 12:57:17.125085", 
  "modified_by": "Administrator", 
  "module": "Schools", 
  "name": "Student Group", 
@@ -322,6 +322,27 @@
    "amend": 0, 
    "apply_user_permissions": 0, 
    "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 1, 
    "email": 1, 
diff --git a/erpnext/schools/doctype/student_leave_application/__init__.py b/erpnext/schools/doctype/student_leave_application/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/doctype/student_leave_application/__init__.py
diff --git a/erpnext/schools/doctype/student_leave_application/student_leave_application.js b/erpnext/schools/doctype/student_leave_application/student_leave_application.js
new file mode 100644
index 0000000..4746148
--- /dev/null
+++ b/erpnext/schools/doctype/student_leave_application/student_leave_application.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 Leave Application', {
+	refresh: function(frm) {
+
+	}
+});
diff --git a/erpnext/schools/doctype/student_leave_application/student_leave_application.json b/erpnext/schools/doctype/student_leave_application/student_leave_application.json
new file mode 100644
index 0000000..238b134
--- /dev/null
+++ b/erpnext/schools/doctype/student_leave_application/student_leave_application.json
@@ -0,0 +1,280 @@
+{
+ "allow_copy": 0, 
+ "allow_import": 0, 
+ "allow_rename": 0, 
+ "autoname": "SLA.######", 
+ "beta": 0, 
+ "creation": "2016-11-28 15:38:54.793854", 
+ "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": "student", 
+   "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", 
+   "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": 1, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "student_name", 
+   "fieldtype": "Read Only", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Student Name", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "student.title", 
+   "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_3", 
+   "fieldtype": "Column Break", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "", 
+   "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": "date", 
+   "fieldtype": "Date", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "in_standard_filter": 0, 
+   "label": "Date", 
+   "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
+  }, 
+  {
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "section_break_5", 
+   "fieldtype": "Section 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": "reason", 
+   "fieldtype": "Text", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Reason", 
+   "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": "amended_from", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Amended From", 
+   "length": 0, 
+   "no_copy": 1, 
+   "options": "Student Leave Application", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "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": 1, 
+ "issingle": 0, 
+ "istable": 0, 
+ "max_attachments": 0, 
+ "modified": "2016-12-01 12:57:55.914656", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Student Leave Application", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Instructor", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 1, 
+   "write": 1
+  }, 
+  {
+   "amend": 1, 
+   "apply_user_permissions": 0, 
+   "cancel": 1, 
+   "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": 1, 
+   "write": 1
+  }
+ ], 
+ "quick_entry": 1, 
+ "read_only": 0, 
+ "read_only_onload": 0, 
+ "sort_field": "modified", 
+ "sort_order": "DESC", 
+ "title_field": "student_name", 
+ "track_seen": 0
+}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_leave_application/student_leave_application.py b/erpnext/schools/doctype/student_leave_application/student_leave_application.py
new file mode 100644
index 0000000..4a36590
--- /dev/null
+++ b/erpnext/schools/doctype/student_leave_application/student_leave_application.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 StudentLeaveApplication(Document):
+	pass
diff --git a/erpnext/schools/doctype/student_leave_application/test_student_leave_application.py b/erpnext/schools/doctype/student_leave_application/test_student_leave_application.py
new file mode 100644
index 0000000..ddb30ac
--- /dev/null
+++ b/erpnext/schools/doctype/student_leave_application/test_student_leave_application.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 Leave Application')
+
+class TestStudentLeaveApplication(unittest.TestCase):
+	pass
diff --git a/erpnext/schools/report/absent_student_report/__init__.py b/erpnext/schools/report/absent_student_report/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/__init__.py
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.js b/erpnext/schools/report/absent_student_report/absent_student_report.js
new file mode 100644
index 0000000..7515f22
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.js
@@ -0,0 +1,15 @@
+// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+
+frappe.query_reports["Absent Student Report"] = {
+	"filters": [
+		{
+			"fieldname":"date",
+			"label": __("Date"),
+			"fieldtype": "Date",
+			"default": get_today(),
+			"reqd": 1
+		}
+	]
+}
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.json b/erpnext/schools/report/absent_student_report/absent_student_report.json
new file mode 100644
index 0000000..5f3ca71
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.json
@@ -0,0 +1,18 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2013-05-13 14:04:03", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 1, 
+ "is_standard": "Yes", 
+ "modified": "2016-12-01 14:28:27.184668", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Absent Student Report", 
+ "owner": "Administrator", 
+ "ref_doctype": "Student Attendance", 
+ "report_name": "Absent Student Report", 
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.py b/erpnext/schools/report/absent_student_report/absent_student_report.py
new file mode 100644
index 0000000..82a20aa
--- /dev/null
+++ b/erpnext/schools/report/absent_student_report/absent_student_report.py
@@ -0,0 +1,60 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import cstr, cint, getdate
+from frappe import msgprint, _
+
+def execute(filters=None):
+	if not filters: filters = {}
+
+	if not filters.get("date"):
+		msgprint(_("Please select date"), raise_exception=1)
+	
+	columns = get_columns(filters)
+
+	absent_students = get_absent_students(filters.get("date"))
+	leave_applicants = get_leave_applications(filters.get("date"))
+
+	data = []
+	for student in absent_students:
+		if not student.student in leave_applicants:
+			row = [student.student, student.student_name, student.student_batch]
+			stud_details = frappe.db.get_value("Student", student.student, ['student_email_id', 'student_mobile_number'], as_dict=True)
+			
+			if stud_details.student_email_id:
+				row+=[stud_details.student_email_id]
+			else:
+				row+= [""]
+			
+			if stud_details.student_mobile_number:
+				row+=[stud_details.student_mobile_number]
+			else:
+				row+= [""]
+				
+			data.append(row)
+	
+	return columns, data
+
+def get_columns(filters):
+	columns = [ 
+		_("Student") + ":Link/Student:90", 
+		_("Student Name") + "::150", 
+		_("Student Batch") + "::180",
+		_("Student Email ID") + "::180",
+		_("Student Mobile No.") + "::150",
+	]
+	return columns
+
+def get_absent_students(date):
+	absent_students = frappe.db.sql("""select student, student_name, student_batch from `tabStudent Attendance` 
+		where docstatus = 1 and status="Absent" and date = %s order by student_batch, student_name""", date, as_dict=1)
+	return absent_students
+
+def get_leave_applications(date):
+	leave_applicants = []
+	for student in frappe.db.sql("""select student from `tabStudent Leave Application` 
+		where docstatus = 1 and date = %s""", date):
+		leave_applicants.append(student[0])
+	return leave_applicants
\ No newline at end of file
diff --git a/erpnext/schools/report/student_batch_wise_attendance/__init__.py b/erpnext/schools/report/student_batch_wise_attendance/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/report/student_batch_wise_attendance/__init__.py
diff --git a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.js b/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.js
new file mode 100644
index 0000000..51f7346
--- /dev/null
+++ b/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.js
@@ -0,0 +1,12 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.query_reports["Student Batch-Wise Attendance"] = {
+    "filters": [{
+        "fieldname": "date",
+        "label": __("Date"),
+        "fieldtype": "Date",
+        "default": get_today(),
+        "reqd": 1
+    }]
+}
\ No newline at end of file
diff --git a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.json b/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.json
new file mode 100644
index 0000000..8e5e483
--- /dev/null
+++ b/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.json
@@ -0,0 +1,18 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2016-11-28 22:07:03.859124", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 0, 
+ "is_standard": "Yes", 
+ "modified": "2016-12-01 15:48:50.120579", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Student Batch-Wise Attendance", 
+ "owner": "Administrator", 
+ "ref_doctype": "Student Attendance", 
+ "report_name": "Student Batch-Wise Attendance", 
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.py b/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.py
new file mode 100644
index 0000000..eaf090e
--- /dev/null
+++ b/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.py
@@ -0,0 +1,64 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import cstr, cint, getdate
+from frappe import msgprint, _
+
+def execute(filters=None):
+	if not filters: filters = {}
+
+	if not filters.get("date"):
+		msgprint(_("Please select date"), raise_exception=1)
+	
+	columns = get_columns(filters)
+
+	active_student_batch = get_active_student_batch()
+
+	data = []
+	for student_batch in active_student_batch:
+		row = [student_batch.name]
+		present_students = 0
+		absent_students = 0
+		student_batch_strength = get_student_batch_strength(student_batch.name)
+		student_attendance = get_student_attendance(student_batch.name, filters.get("date"))
+		if student_attendance:
+			for attendance in student_attendance:
+				if attendance.status== "Present":
+					present_students = attendance.count
+				elif attendance.status== "Absent":
+					absent_students = attendance.count
+
+		unmarked_students = student_batch_strength - (present_students + absent_students)
+		row+= [student_batch_strength, present_students, absent_students, unmarked_students]
+		data.append(row)
+
+	return columns, data
+
+def get_columns(filters):
+	columns = [ 
+		_("Student batch") + ":Link/Student Batch:250", 
+		_("Student batch Strength") + "::170", 
+		_("Present") + "::90", 
+		_("Absent") + "::90",
+		_("Not Marked") + "::90"
+	]
+	return columns
+
+def get_active_student_batch():
+	active_student_batch = frappe.db.sql("""select name from `tabStudent Batch` 
+		where active = 1 order by name""", as_dict=1)
+	return active_student_batch
+
+def get_student_batch_strength(student_batch):
+	student_batch_strength = frappe.db.sql("""select count(*) from `tabStudent Batch Student` 
+		where parent = %s""", student_batch)[0][0]
+	return student_batch_strength
+
+def get_student_attendance(student_batch, date):
+	student_attendance = frappe.db.sql("""select count(*) as count, status from `tabStudent Attendance` where \
+				student_batch= %s and date= %s and docstatus=1 and\
+				(course_schedule is Null or course_schedule='') group by status""",
+				(student_batch, date), as_dict=1)
+	return student_attendance
\ No newline at end of file
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/__init__.py b/erpnext/schools/report/student_monthly_attendance_sheet/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/schools/report/student_monthly_attendance_sheet/__init__.py
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
new file mode 100644
index 0000000..32c0551
--- /dev/null
+++ b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
@@ -0,0 +1,42 @@
+// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+
+frappe.query_reports["Student Monthly Attendance Sheet"] = {
+	"filters": [
+		{
+			"fieldname":"month",
+			"label": __("Month"),
+			"fieldtype": "Select",
+			"options": "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug\nSep\nOct\nNov\nDec",
+			"default": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
+				"Dec"][frappe.datetime.str_to_obj(frappe.datetime.get_today()).getMonth()],
+		},
+		{
+			"fieldname":"year",
+			"label": __("Year"),
+			"fieldtype": "Select",
+			"reqd": 1
+		},
+		{
+			"fieldname":"student_batch",
+			"label": __("Student Batch"),
+			"fieldtype": "Link",
+			"options": "Student Batch",
+			"reqd": 1
+		}
+	],
+
+	"onload": function() {
+		return  frappe.call({
+			method: "erpnext.schools.report.student_monthly_attendance_sheet.student_monthly_attendance_sheet.get_attendance_years",
+			callback: function(r) {
+				var year_filter = frappe.query_report_filters_by_name.year;
+				year_filter.df.options = r.message;
+				year_filter.df.default = r.message.split("\n")[0];
+				year_filter.refresh();
+				year_filter.set_input(year_filter.df.default);
+			}
+		});
+	}
+}
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
new file mode 100644
index 0000000..1d8f4d0
--- /dev/null
+++ b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
@@ -0,0 +1,18 @@
+{
+ "add_total_row": 0, 
+ "apply_user_permissions": 1, 
+ "creation": "2013-05-13 14:04:03", 
+ "disabled": 0, 
+ "docstatus": 0, 
+ "doctype": "Report", 
+ "idx": 1, 
+ "is_standard": "Yes", 
+ "modified": "2016-12-01 14:29:53.547378", 
+ "modified_by": "Administrator", 
+ "module": "Schools", 
+ "name": "Student Monthly Attendance Sheet", 
+ "owner": "Administrator", 
+ "ref_doctype": "Student Attendance", 
+ "report_name": "Student Monthly Attendance Sheet", 
+ "report_type": "Script Report"
+}
\ No newline at end of file
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
new file mode 100644
index 0000000..8c6006e
--- /dev/null
+++ b/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
@@ -0,0 +1,82 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.utils import cstr, cint, getdate
+from frappe import msgprint, _
+from calendar import monthrange
+from erpnext.schools.api import get_student_batch_students
+
+def execute(filters=None):
+	if not filters: filters = {}
+
+	conditions, filters = get_conditions(filters)
+	columns = get_columns(filters)
+	att_map = get_attendance_list(conditions, filters)
+	students = get_student_batch_students(filters.get("student_batch"))
+	data = []
+	for stud in students:
+		row = [stud.student, stud.student_name]
+
+		total_p = total_a = 0.0
+		for day in range(filters["total_days_in_month"]):
+			status="None"
+			if att_map.get(stud.student):
+				status = att_map.get(stud.student).get(day + 1, "None")
+			status_map = {"Present": "P", "Absent": "A", "None": ""}
+			row.append(status_map[status])
+
+			if status == "Present":
+				total_p += 1
+			elif status == "Absent":
+				total_a += 1
+		
+		row += [total_p, total_a]
+		data.append(row)
+
+	return columns, data
+
+def get_columns(filters):
+	columns = [ _("Student") + ":Link/Student:90", _("Student Name") + "::150"]
+
+	for day in range(filters["total_days_in_month"]):
+		columns.append(cstr(day+1) +"::20")
+
+	columns += [_("Total Present") + ":Int:95", _("Total Absent") + ":Int:90"]
+	return columns
+
+def get_attendance_list(conditions, filters):
+	attendance_list = frappe.db.sql("""select student, day(date) as day_of_month,
+		status from `tabStudent Attendance` where docstatus = 1 %s order by student, date""" %
+		conditions, filters, as_dict=1)
+
+	att_map = {}
+	for d in attendance_list:
+		att_map.setdefault(d.student, frappe._dict()).setdefault(d.day_of_month, "")
+		att_map[d.student][d.day_of_month] = d.status
+
+	return att_map
+
+def get_conditions(filters):
+	if not (filters.get("month") and filters.get("year")):
+		msgprint(_("Please select month and year"), raise_exception=1)
+
+	filters["month"] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov",
+		"Dec"].index(filters.month) + 1
+
+	filters["total_days_in_month"] = monthrange(cint(filters.year), filters.month)[1]
+
+	conditions = " and month(date) = %(month)s and year(date) = %(year)s"
+
+	if filters.get("student_batch"): conditions += " and student_batch = %(student_batch)s"
+
+	return conditions, filters
+
+@frappe.whitelist()
+def get_attendance_years():
+	year_list = frappe.db.sql_list("""select distinct YEAR(date) from `tabStudent Attendance` ORDER BY YEAR(date) DESC""")
+	if not year_list:
+		year_list = [getdate().year]
+
+	return "\n".join(str(year) for year in year_list)
diff --git a/erpnext/stock/doctype/bin/bin.json b/erpnext/stock/doctype/bin/bin.json
index 9fd8a04..79ad4cd 100644
--- a/erpnext/stock/doctype/bin/bin.json
+++ b/erpnext/stock/doctype/bin/bin.json
@@ -434,7 +434,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-11-07 05:30:44.856343", 
+ "modified": "2016-11-27 16:31:55.929378", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Bin", 
@@ -467,6 +467,27 @@
    "cancel": 0, 
    "create": 0, 
    "delete": 0, 
+   "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Item Manager", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
    "email": 1, 
    "export": 0, 
    "if_owner": 0, 
diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
index 2e31ba4..ed1843e 100644
--- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
+++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
@@ -31,6 +31,7 @@
    "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, 
@@ -56,6 +57,7 @@
    "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, 
@@ -76,7 +78,7 @@
    "in_list_view": 1, 
    "label": "Source Warehouse", 
    "length": 0, 
-   "no_copy": 1, 
+   "no_copy": 0, 
    "oldfieldname": "s_warehouse", 
    "oldfieldtype": "Link", 
    "options": "Warehouse", 
@@ -84,6 +86,7 @@
    "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, 
@@ -108,6 +111,7 @@
    "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, 
@@ -128,7 +132,7 @@
    "in_list_view": 1, 
    "label": "Target Warehouse", 
    "length": 0, 
-   "no_copy": 1, 
+   "no_copy": 0, 
    "oldfieldname": "t_warehouse", 
    "oldfieldtype": "Link", 
    "options": "Warehouse", 
@@ -136,6 +140,7 @@
    "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, 
@@ -160,6 +165,7 @@
    "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, 
@@ -188,6 +194,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 1, 
    "search_index": 1, 
@@ -212,6 +219,7 @@
    "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, 
@@ -237,6 +245,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -263,6 +272,7 @@
    "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, 
@@ -291,6 +301,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "300px", 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -317,6 +328,7 @@
    "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, 
@@ -343,6 +355,7 @@
    "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, 
@@ -370,6 +383,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -395,6 +409,7 @@
    "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, 
@@ -422,6 +437,7 @@
    "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, 
@@ -450,6 +466,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -477,6 +494,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -504,6 +522,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -532,6 +551,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -559,6 +579,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -583,6 +604,7 @@
    "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, 
@@ -611,6 +633,7 @@
    "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, 
@@ -638,6 +661,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 1, 
    "search_index": 0, 
@@ -666,6 +690,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 1, 
    "search_index": 0, 
@@ -693,6 +718,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 1, 
    "search_index": 0, 
@@ -718,6 +744,7 @@
    "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, 
@@ -745,6 +772,7 @@
    "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, 
@@ -769,6 +797,7 @@
    "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, 
@@ -797,6 +826,7 @@
    "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, 
@@ -822,6 +852,7 @@
    "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, 
@@ -849,6 +880,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -873,6 +905,7 @@
    "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, 
@@ -901,6 +934,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -926,6 +960,7 @@
    "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, 
@@ -953,6 +988,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 1, 
@@ -980,6 +1016,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -1004,6 +1041,7 @@
    "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, 
@@ -1031,6 +1069,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -1057,6 +1096,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -1074,7 +1114,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-11-04 23:37:17.764323", 
+ "modified": "2016-11-27 15:19:26.597414", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Stock Entry Detail", 
diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json
index 32beb1a..d27f629 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json
@@ -3,16 +3,20 @@
  "allow_import": 0, 
  "allow_rename": 0, 
  "autoname": "SLE/.########", 
+ "beta": 0, 
  "creation": "2013-01-29 19:25:42", 
  "custom": 0, 
  "docstatus": 0, 
  "doctype": "DocType", 
  "document_type": "Other", 
+ "editable_grid": 0, 
+ "engine": "InnoDB", 
  "fields": [
   {
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "item_code", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -31,6 +35,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "100px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 1, 
@@ -42,6 +47,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "serial_no", 
    "fieldtype": "Text", 
    "hidden": 0, 
@@ -57,6 +63,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "100px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -68,6 +75,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "batch_no", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -84,6 +92,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -94,6 +103,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "warehouse", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -112,6 +122,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "100px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 1, 
@@ -123,6 +134,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "posting_date", 
    "fieldtype": "Date", 
    "hidden": 0, 
@@ -140,6 +152,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "100px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 1, 
@@ -151,6 +164,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "posting_time", 
    "fieldtype": "Time", 
    "hidden": 0, 
@@ -168,6 +182,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "100px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -179,6 +194,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "voucher_type", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -197,6 +213,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -208,6 +225,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "voucher_no", 
    "fieldtype": "Dynamic Link", 
    "hidden": 0, 
@@ -226,6 +244,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -237,6 +256,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "voucher_detail_no", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -254,6 +274,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -265,6 +286,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "actual_qty", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -282,6 +304,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -293,6 +316,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "incoming_rate", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -310,6 +334,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -320,6 +345,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "outgoing_rate", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -336,6 +362,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -346,6 +373,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "stock_uom", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -364,6 +392,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -375,6 +404,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "qty_after_transaction", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -392,6 +422,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -403,6 +434,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "valuation_rate", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -421,6 +453,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -432,6 +465,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "stock_value", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -449,6 +483,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -459,6 +494,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "stock_value_difference", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -474,6 +510,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -484,6 +521,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "stock_queue", 
    "fieldtype": "Text", 
    "hidden": 1, 
@@ -500,6 +538,7 @@
    "print_hide": 1, 
    "print_hide_if_no_value": 0, 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 1, 
    "reqd": 0, 
    "search_index": 0, 
@@ -510,6 +549,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "project", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -525,6 +565,7 @@
    "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, 
@@ -535,6 +576,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "company", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -553,6 +595,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -564,6 +607,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "fiscal_year", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -581,6 +625,7 @@
    "print_hide_if_no_value": 0, 
    "print_width": "150px", 
    "read_only": 1, 
+   "remember_last_selected_value": 0, 
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
@@ -592,6 +637,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "is_cancelled", 
    "fieldtype": "Select", 
    "hidden": 1, 
@@ -607,6 +653,7 @@
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
+   "remember_last_selected_value": 0, 
    "report_hide": 1, 
    "reqd": 0, 
    "search_index": 0, 
@@ -618,13 +665,14 @@
  "hide_toolbar": 1, 
  "icon": "icon-list", 
  "idx": 1, 
+ "image_view": 0, 
  "in_create": 1, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-03-29 13:26:08.241138", 
+ "modified": "2016-11-27 16:31:36.294708", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Stock Ledger Entry", 
@@ -640,6 +688,7 @@
    "export": 1, 
    "if_owner": 0, 
    "import": 0, 
+   "is_custom": 0, 
    "permlevel": 0, 
    "print": 1, 
    "read": 1, 
@@ -657,9 +706,31 @@
    "create": 0, 
    "delete": 0, 
    "email": 0, 
+   "export": 0, 
+   "if_owner": 0, 
+   "import": 0, 
+   "is_custom": 0, 
+   "permlevel": 0, 
+   "print": 0, 
+   "read": 1, 
+   "report": 0, 
+   "role": "Item Manager", 
+   "set_user_permissions": 0, 
+   "share": 0, 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 0, 
    "export": 1, 
    "if_owner": 0, 
    "import": 0, 
+   "is_custom": 0, 
    "permlevel": 0, 
    "print": 0, 
    "read": 1, 
@@ -671,6 +742,7 @@
    "write": 0
   }
  ], 
+ "quick_entry": 0, 
  "read_only": 0, 
  "read_only_onload": 0, 
  "sort_field": "modified", 
diff --git a/erpnext/support/page/support_analytics/support_analytics.js b/erpnext/support/page/support_analytics/support_analytics.js
index 79a7fd6..01b7b48 100644
--- a/erpnext/support/page/support_analytics/support_analytics.js
+++ b/erpnext/support/page/support_analytics/support_analytics.js
@@ -27,11 +27,11 @@
 	},
 
 	filters: [
-		{fieldtype:"Select", label: __("Fiscal Year"), link:"Fiscal Year",
+		{fieldname: "fiscal_year", fieldtype:"Select", label: __("Fiscal Year"), link:"Fiscal Year",
 			default_value: __("Select Fiscal Year") + "..."},
-		{fieldtype:"Date", label: __("From Date")},
-		{fieldtype:"Date", label: __("To Date")},
-		{fieldtype:"Select", label: __("Range"),
+		{fieldname: "from_date", fieldtype:"Date", label: __("From Date")},
+		{fieldname: "to_date", fieldtype:"Date", label: __("To Date")},
+		{fieldname: "range", fieldtype:"Select", label: __("Range"),
 			options:["Daily", "Weekly", "Monthly", "Quarterly", "Yearly"], default_value: "Monthly"}
 	],