diff --git a/.travis.yml b/.travis.yml
index 1b4e340..344637a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -16,7 +16,7 @@
   - sudo apt-get install mariadb-server mariadb-common libmariadbclient-dev
   - wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.1/wkhtmltox-0.12.1_linux-precise-amd64.deb
   - sudo dpkg -i wkhtmltox-0.12.1_linux-precise-amd64.deb
-  - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@develop
+  - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@v5.0
   - CFLAGS=-O0 pip install --editable .
 
 before_script:
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index ef6eca3..a20415b 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1 +1 @@
-__version__ = '4.5.1'
+__version__ = '5.0.0-alpha'
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
index 942de75..b1f7a65 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
@@ -1,5 +1,5 @@
 {
- "creation": "2013-06-24 15:49:57.000000", 
+ "creation": "2013-06-24 15:49:57", 
  "description": "Settings for Accounts", 
  "docstatus": 0, 
  "doctype": "DocType", 
@@ -9,6 +9,7 @@
    "description": "If enabled, the system will post accounting entries for inventory automatically.", 
    "fieldname": "auto_accounting_for_stock", 
    "fieldtype": "Check", 
+   "in_list_view": 1, 
    "label": "Make Accounting Entry For Every Stock Movement", 
    "permlevel": 0
   }, 
@@ -16,22 +17,16 @@
    "description": "Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.", 
    "fieldname": "acc_frozen_upto", 
    "fieldtype": "Date", 
+   "in_list_view": 1, 
    "label": "Accounts Frozen Upto", 
    "permlevel": 0
   }, 
   {
-   "description": "Users with this role are allowed to create / modify accounting entry before frozen date", 
-   "fieldname": "bde_auth_role", 
-   "fieldtype": "Link", 
-   "label": "Allowed Role to Edit Entries Before Frozen Date", 
-   "options": "Role", 
-   "permlevel": 0
-  }, 
-  {
    "description": "Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts", 
    "fieldname": "frozen_accounts_modifier", 
    "fieldtype": "Link", 
-   "label": "Frozen Accounts Modifier", 
+   "in_list_view": 1, 
+   "label": "Role Allowed to Set Frozen Accounts & Edit Frozen Entries", 
    "options": "Role", 
    "permlevel": 0
   }, 
@@ -39,6 +34,7 @@
    "description": "Role that is allowed to submit transactions that exceed credit limits set.", 
    "fieldname": "credit_controller", 
    "fieldtype": "Link", 
+   "in_list_view": 1, 
    "label": "Credit Controller", 
    "options": "Role", 
    "permlevel": 0
@@ -47,7 +43,7 @@
  "icon": "icon-cog", 
  "idx": 1, 
  "issingle": 1, 
- "modified": "2013-12-20 19:22:52.000000", 
+ "modified": "2014-09-29 15:42:18.976866", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Accounts Settings", 
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py
index dab2d82..a5a3079 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py
@@ -104,9 +104,9 @@
 	if not adv_adj:
 		acc_frozen_upto = frappe.db.get_value('Accounts Settings', None, 'acc_frozen_upto')
 		if acc_frozen_upto:
-			bde_auth_role = frappe.db.get_value( 'Accounts Settings', None,'bde_auth_role')
+			frozen_accounts_modifier = frappe.db.get_value( 'Accounts Settings', None,'frozen_accounts_modifier')
 			if getdate(posting_date) <= getdate(acc_frozen_upto) \
-					and not bde_auth_role in frappe.user.get_roles():
+					and not frozen_accounts_modifier in frappe.user.get_roles():
 				frappe.throw(_("You are not authorized to add or update entries before {0}").format(formatdate(acc_frozen_upto)))
 
 def update_outstanding_amt(account, against_voucher_type, against_voucher, on_cancel=False):
diff --git a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
index 7bf6fcc..9f2385b 100644
--- a/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/erpnext/accounts/doctype/journal_voucher/journal_voucher.py
@@ -18,6 +18,9 @@
 		self.credit_days_global = -1
 		self.is_approving_authority = -1
 
+	def get_feed(self):
+		return self.voucher_type
+
 	def validate(self):
 		if not self.is_opening:
 			self.is_opening='No'
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index 362f42e..1e38cd7 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -78,7 +78,7 @@
 		conditions.append("voucher_no=%(voucher_no)s")
 
 
-	from frappe.widgets.reportview import build_match_conditions
+	from frappe.desk.reportview import build_match_conditions
 	match_conditions = build_match_conditions("GL Entry")
 	if match_conditions: conditions.append(match_conditions)
 
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.json b/erpnext/accounts/report/gross_profit/gross_profit.json
index 81e0aaf..69555d0 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.json
+++ b/erpnext/accounts/report/gross_profit/gross_profit.json
@@ -5,7 +5,7 @@
  "doctype": "Report", 
  "idx": 1, 
  "is_standard": "Yes", 
- "modified": "2014-06-03 07:18:17.077022", 
+ "modified": "2014-09-18 19:00:50.263854", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Gross Profit", 
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 21fcb29..3b1c090 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -29,7 +29,7 @@
 			buying_amount = get_sales_bom_buying_amount(row.item_code, row.warehouse,
 				row.parenttype, row.name, row.item_row, stock_ledger_entries, item_sales_bom_map)
 		else:
-			buying_amount = get_buying_amount(row.parenttype, row.name, row.item_row,
+			buying_amount = get_buying_amount(row.item_code, row.qty, row.parenttype, row.name, row.item_row,
 				stock_ledger_entries.get((row.item_code, row.warehouse), []))
 
 		buying_amount = buying_amount > 0 and buying_amount or 0
@@ -107,7 +107,6 @@
 		timestamp(si.posting_date, si.posting_time) as posting_datetime
 		from `tabSales Invoice` si, `tabSales Invoice Item` item
 		where item.parent = si.name and si.docstatus = 1 %s
-		and si.update_stock = 1
 		order by si.posting_date desc, si.posting_time desc""" % (conditions,), filters, as_dict=1)
 
 	source = delivery_note_items + sales_invoice_items
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index c658cdd..d28e8d7 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -7,7 +7,7 @@
 from frappe.utils import nowdate, cstr, flt, now, getdate, add_months
 from frappe import throw, _
 from frappe.utils import formatdate
-import frappe.widgets.reportview
+import frappe.desk.reportview
 
 class FiscalYearError(frappe.ValidationError): pass
 class BudgetError(frappe.ValidationError): pass
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index c2e76e2..0b4b2c1 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -10,6 +10,8 @@
 frappe.require("assets/erpnext/js/transaction.js");
 {% include "public/js/controllers/accounts.js" %}
 
+cur_frm.email_field = "contact_email";
+
 erpnext.buying.BuyingController = erpnext.TransactionController.extend({
 	onload: function() {
 		this.setup_queries();
diff --git a/erpnext/buying/doctype/quality_inspection/quality_inspection.py b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
index 3fc130a..da34108 100644
--- a/erpnext/buying/doctype/quality_inspection/quality_inspection.py
+++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
@@ -38,7 +38,7 @@
 
 def item_query(doctype, txt, searchfield, start, page_len, filters):
 	if filters.get("from"):
-		from frappe.widgets.reportview import get_match_cond
+		from frappe.desk.reportview import get_match_cond
 		filters.update({
 			"txt": txt,
 			"mcond": get_match_cond(filters["from"]),
diff --git a/erpnext/buying/doctype/supplier/supplier.js b/erpnext/buying/doctype/supplier/supplier.js
index b5c7fb1..5339067 100644
--- a/erpnext/buying/doctype/supplier/supplier.js
+++ b/erpnext/buying/doctype/supplier/supplier.js
@@ -20,13 +20,7 @@
 		// make lists
 		cur_frm.cscript.make_address(doc,dt,dn);
 		cur_frm.cscript.make_contact(doc,dt,dn);
-
-		cur_frm.communication_view = new frappe.views.CommunicationList({
-			list: frappe.get_list("Communication", {"supplier": doc.name}),
-			parent: cur_frm.fields_dict.communication_html.wrapper,
-			doc: doc
-		})
-  }
+	}
 }
 
 cur_frm.cscript.make_dashboard = function(doc) {
diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json
index 1d21778..2c2fbff 100644
--- a/erpnext/buying/doctype/supplier/supplier.json
+++ b/erpnext/buying/doctype/supplier/supplier.json
@@ -1,260 +1,244 @@
 {
- "allow_import": 1, 
- "allow_rename": 1, 
- "autoname": "naming_series:", 
- "creation": "2013-01-10 16:34:11", 
- "description": "Supplier of Goods or Services.", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Master", 
+ "allow_import": 1,
+ "allow_rename": 1,
+ "autoname": "naming_series:",
+ "creation": "2013-01-10 16:34:11",
+ "description": "Supplier of Goods or Services.",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Master",
  "fields": [
   {
-   "fieldname": "basic_info", 
-   "fieldtype": "Section Break", 
-   "label": "Basic Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-user", 
+   "fieldname": "basic_info",
+   "fieldtype": "Section Break",
+   "label": "Basic Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-user",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "naming_series", 
-   "fieldtype": "Select", 
-   "label": "Series", 
-   "no_copy": 1, 
-   "oldfieldname": "naming_series", 
-   "oldfieldtype": "Select", 
-   "options": "SUPP-", 
+   "fieldname": "naming_series",
+   "fieldtype": "Select",
+   "label": "Series",
+   "no_copy": 1,
+   "oldfieldname": "naming_series",
+   "oldfieldtype": "Select",
+   "options": "SUPP-",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "supplier_name", 
-   "fieldtype": "Data", 
-   "in_list_view": 1, 
-   "label": "Supplier Name", 
-   "no_copy": 1, 
-   "oldfieldname": "supplier_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
+   "fieldname": "supplier_name",
+   "fieldtype": "Data",
+   "in_list_view": 1,
+   "label": "Supplier Name",
+   "no_copy": 1,
+   "oldfieldname": "supplier_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "column_break0", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break0",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "supplier_type", 
-   "fieldtype": "Link", 
-   "in_list_view": 1, 
-   "label": "Supplier Type", 
-   "oldfieldname": "supplier_type", 
-   "oldfieldtype": "Link", 
-   "options": "Supplier Type", 
-   "permlevel": 0, 
+   "fieldname": "supplier_type",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Supplier Type",
+   "oldfieldname": "supplier_type",
+   "oldfieldtype": "Link",
+   "options": "Supplier Type",
+   "permlevel": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "address_contacts", 
-   "fieldtype": "Section Break", 
-   "label": "Address & Contacts", 
-   "oldfieldtype": "Column Break", 
-   "options": "icon-map-marker", 
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "address_contacts",
+   "fieldtype": "Section Break",
+   "label": "Address & Contacts",
+   "oldfieldtype": "Column Break",
+   "options": "icon-map-marker",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "address_html", 
-   "fieldtype": "HTML", 
-   "label": "Address HTML", 
-   "permlevel": 0, 
+   "fieldname": "address_html",
+   "fieldtype": "HTML",
+   "label": "Address HTML",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break1",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "contact_html", 
-   "fieldtype": "HTML", 
-   "label": "Contact HTML", 
-   "permlevel": 0, 
+   "fieldname": "contact_html",
+   "fieldtype": "HTML",
+   "label": "Contact HTML",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "communication_history", 
-   "fieldtype": "Section Break", 
-   "label": "Communication History", 
-   "options": "icon-comments", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "fieldname": "communication_html", 
-   "fieldtype": "HTML", 
-   "label": "Communication HTML", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "fieldname": "more_info", 
-   "fieldtype": "Section Break", 
-   "label": "More Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-file-text", 
+   "fieldname": "more_info",
+   "fieldtype": "Section Break",
+   "label": "More Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-file-text",
    "permlevel": 0
-  }, 
+  },
   {
-   "description": "Enter the company name under which Account Head will be created for this Supplier", 
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Company", 
-   "oldfieldname": "company", 
-   "oldfieldtype": "Link", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "reqd": 1, 
+   "description": "Enter the company name under which Account Head will be created for this Supplier",
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Company",
+   "oldfieldname": "company",
+   "oldfieldtype": "Link",
+   "options": "Company",
+   "permlevel": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "default_currency", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Default Currency", 
-   "no_copy": 1, 
-   "options": "Currency", 
+   "fieldname": "default_currency",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Default Currency",
+   "no_copy": 1,
+   "options": "Currency",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "default_price_list", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Price List", 
-   "options": "Price List", 
+   "fieldname": "default_price_list",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Price List",
+   "options": "Price List",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "default_taxes_and_charges", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Taxes and Charges", 
-   "options": "Purchase Taxes and Charges Master", 
+   "fieldname": "default_taxes_and_charges",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Taxes and Charges",
+   "options": "Purchase Taxes and Charges Master",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "credit_days", 
-   "fieldtype": "Int", 
-   "label": "Credit Days", 
+   "fieldname": "credit_days",
+   "fieldtype": "Int",
+   "label": "Credit Days",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break2", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break2",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "website", 
-   "fieldtype": "Data", 
-   "label": "Website", 
-   "oldfieldname": "website", 
-   "oldfieldtype": "Data", 
+   "fieldname": "website",
+   "fieldtype": "Data",
+   "label": "Website",
+   "oldfieldname": "website",
+   "oldfieldtype": "Data",
    "permlevel": 0
-  }, 
+  },
   {
-   "description": "Statutory info and other general information about your Supplier", 
-   "fieldname": "supplier_details", 
-   "fieldtype": "Text", 
-   "label": "Supplier Details", 
-   "oldfieldname": "supplier_details", 
-   "oldfieldtype": "Code", 
+   "description": "Statutory info and other general information about your Supplier",
+   "fieldname": "supplier_details",
+   "fieldtype": "Text",
+   "label": "Supplier Details",
+   "oldfieldname": "supplier_details",
+   "oldfieldtype": "Code",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "communications", 
-   "fieldtype": "Table", 
-   "hidden": 1, 
-   "label": "Communications", 
-   "options": "Communication", 
-   "permlevel": 0, 
+   "fieldname": "communications",
+   "fieldtype": "Table",
+   "hidden": 1,
+   "label": "Communications",
+   "options": "Communication",
+   "permlevel": 0,
    "print_hide": 1
   }
- ], 
- "icon": "icon-user", 
- "idx": 1, 
- "modified": "2014-09-10 17:53:09.286715", 
- "modified_by": "Administrator", 
- "module": "Buying", 
- "name": "Supplier", 
- "owner": "Administrator", 
+ ],
+ "icon": "icon-user",
+ "idx": 1,
+ "modified": "2014-09-12 12:26:37.606976",
+ "modified_by": "Administrator",
+ "module": "Buying",
+ "name": "Supplier",
+ "owner": "Administrator",
  "permissions": [
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Purchase User"
-  }, 
+  },
   {
-   "amend": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Purchase Manager", 
-   "submit": 0, 
+   "amend": 0,
+   "create": 0,
+   "delete": 0,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Purchase Manager",
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Purchase Master Manager", 
-   "submit": 0, 
+   "amend": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Purchase Master Manager",
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "apply_user_permissions": 1, 
-   "permlevel": 0, 
-   "read": 1, 
+   "apply_user_permissions": 1,
+   "permlevel": 0,
+   "read": 1,
    "role": "Material User"
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Material Manager"
-  }, 
+  },
   {
-   "apply_user_permissions": 1, 
-   "permlevel": 0, 
-   "read": 1, 
+   "apply_user_permissions": 1,
+   "permlevel": 0,
+   "read": 1,
    "role": "Accounts User"
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Accounts Manager"
   }
- ], 
- "search_fields": "supplier_name,supplier_type", 
+ ],
+ "search_fields": "supplier_name,supplier_type",
  "title_field": "supplier_name"
-}
\ No newline at end of file
+}
diff --git a/erpnext/buying/doctype/supplier/supplier.py b/erpnext/buying/doctype/supplier/supplier.py
index 240762e..baf8ce5 100644
--- a/erpnext/buying/doctype/supplier/supplier.py
+++ b/erpnext/buying/doctype/supplier/supplier.py
@@ -13,6 +13,8 @@
 from erpnext.utilities.transaction_base import TransactionBase
 
 class Supplier(TransactionBase):
+	def get_feed(self):
+		return self.supplier_name
 
 	def autoname(self):
 		supp_master_name = frappe.defaults.get_global_default('supp_master_name')
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index 9f40ef3..34f1599 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -7,13 +7,6 @@
 			"icon": "icon-money",
 			"type": "module"
 		},
-		"Activity": {
-			"color": "#e67e22",
-			"icon": "icon-play",
-			"label": _("Activity"),
-			"link": "activity",
-			"type": "page"
-		},
 		"Buying": {
 			"color": "#c0392b",
 			"icon": "icon-shopping-cart",
@@ -30,14 +23,6 @@
 			"icon": "icon-cogs",
 			"type": "module"
 		},
-		"Notes": {
-			"color": "#95a5a6",
-			"doctype": "Note",
-			"icon": "icon-file-alt",
-			"label": _("Notes"),
-			"link": "List/Note",
-			"type": "list"
-		},
 		"POS": {
 			"color": "#589494",
 			"icon": "icon-th",
diff --git a/erpnext/config/hr.py b/erpnext/config/hr.py
index 575de69..22f17e7 100644
--- a/erpnext/config/hr.py
+++ b/erpnext/config/hr.py
@@ -155,7 +155,7 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Jobs Email Settings",
+					"name": "Email Account",
 					"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
 				},
 			]
diff --git a/erpnext/config/selling.py b/erpnext/config/selling.py
index 1e5acad..e4d17bb 100644
--- a/erpnext/config/selling.py
+++ b/erpnext/config/selling.py
@@ -158,7 +158,7 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Sales Email Settings",
+					"name": "Email Account",
 					"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
 				},
 				{
diff --git a/erpnext/config/setup.py b/erpnext/config/setup.py
index 8db9ef2..f3c0cec 100644
--- a/erpnext/config/setup.py
+++ b/erpnext/config/setup.py
@@ -1,5 +1,5 @@
 from frappe import _
-from frappe.widgets.moduleview import add_setup_section
+from frappe.desk.moduleview import add_setup_section
 
 def get_data():
 	data = [
@@ -75,21 +75,6 @@
 				},
 				{
 					"type": "doctype",
-					"name": "Support Email Settings",
-					"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
-				},
-				{
-					"type": "doctype",
-					"name": "Sales Email Settings",
-					"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
-				},
-				{
-					"type": "doctype",
-					"name": "Jobs Email Settings",
-					"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
-				},
-				{
-					"type": "doctype",
 					"name": "SMS Settings",
 					"description": _("Setup SMS gateway settings")
 				},
diff --git a/erpnext/config/support.py b/erpnext/config/support.py
index 97807a3..7e243b2 100644
--- a/erpnext/config/support.py
+++ b/erpnext/config/support.py
@@ -49,7 +49,7 @@
 			"items": [
 				{
 					"type": "doctype",
-					"name": "Support Email Settings",
+					"name": "Email Account",
 					"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
 				},
 			]
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 9a62fc2..3a4f397 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -163,7 +163,6 @@
 			self.currency = company_currency
 			self.conversion_rate = 1.0
 		else:
-			from erpnext.setup.doctype.currency.currency import validate_conversion_rate
 			validate_conversion_rate(self.currency, self.conversion_rate,
 				self.meta.get_label("conversion_rate"), self.company)
 
@@ -545,3 +544,12 @@
 		taxes_and_charges.append(tax)
 
 	return taxes_and_charges
+
+def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company):
+	"""common validation for currency and price list currency"""
+
+	company_currency = frappe.db.get_value("Company", company, "default_currency")
+
+	if not conversion_rate:
+		throw(_("{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.").format(
+			conversion_rate_label, currency, company_currency))
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 69ab661..e8f35f1 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -19,6 +19,10 @@
 				"other_charges": "templates/print_formats/includes/taxes.html",
 			}
 
+	def get_feed(self):
+		return _("From {0} | {1} {2}").format(self.supplier_name, self.currency,
+			self.grand_total_import)
+
 	def validate(self):
 		super(BuyingController, self).validate()
 		if getattr(self, "supplier", None) and not self.supplier_name:
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index d555532..cbbd82c 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.widgets.reportview import get_match_cond
+from frappe.desk.reportview import get_match_cond
 from frappe.model.db_query import DatabaseQuery
 
 def get_filters_cond(doctype, filters, conditions):
@@ -276,7 +276,7 @@
 	if searchfield and txt:
 		filter_list.append([doctype, searchfield, "like", "%%%s%%" % txt])
 
-	return frappe.widgets.reportview.execute("Account", filters = filter_list,
+	return frappe.desk.reportview.execute("Account", filters = filter_list,
 		fields = ["name", "parent_account"],
 		limit_start=start, limit_page_length=page_len, as_list=True)
 
diff --git a/erpnext/controllers/recurring_document.py b/erpnext/controllers/recurring_document.py
index fa7f275..e16280d 100644
--- a/erpnext/controllers/recurring_document.py
+++ b/erpnext/controllers/recurring_document.py
@@ -145,7 +145,7 @@
 
 def assign_task_to_owner(doc, doctype, msg, users):
 	for d in users:
-		from frappe.widgets.form import assign_to
+		from frappe.desk.form import assign_to
 		args = {
 			'assign_to' 	:	d,
 			'doctype'		:	doctype,
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 86d8837..9e237e1 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -18,6 +18,10 @@
 				"other_charges": "templates/print_formats/includes/taxes.html",
 			}
 
+	def get_feed(self):
+		return _("To {0} | {1} {2}").format(self.customer_name, self.currency,
+			self.grand_total_export)
+
 	def onload(self):
 		if self.doctype in ("Sales Order", "Delivery Note", "Sales Invoice"):
 			for item in self.get(self.fname):
@@ -29,13 +33,6 @@
 		self.validate_max_discount()
 		check_active_sales_items(self)
 
-	def get_sender(self, comm):
-		sender = None
-		if cint(frappe.db.get_value('Sales Email Settings', None, 'extract_emails')):
-			sender = frappe.db.get_value('Sales Email Settings', None, 'email_id')
-
-		return sender or comm.sender or frappe.session.user
-
 	def set_missing_values(self, for_validate=False):
 		super(SellingController, self).set_missing_values(for_validate)
 
diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py
index 1188be5..9825b04 100644
--- a/erpnext/controllers/status_updater.py
+++ b/erpnext/controllers/status_updater.py
@@ -8,37 +8,23 @@
 from frappe.model.document import Document
 
 status_map = {
-	"Contact": [
-		["Replied", "communication_sent"],
-		["Open", "communication_received"]
-	],
-	"Job Applicant": [
-		["Replied", "communication_sent"],
-		["Open", "communication_received"]
-	],
 	"Lead": [
-		["Replied", "communication_sent"],
 		["Converted", "has_customer"],
 		["Opportunity", "has_opportunity"],
-		["Open", "communication_received"],
 	],
 	"Opportunity": [
 		["Draft", None],
 		["Submitted", "eval:self.docstatus==1"],
 		["Lost", "eval:self.status=='Lost'"],
 		["Quotation", "has_quotation"],
-		["Replied", "communication_sent"],
 		["Cancelled", "eval:self.docstatus==2"],
-		["Open", "communication_received"],
 	],
 	"Quotation": [
 		["Draft", None],
 		["Submitted", "eval:self.docstatus==1"],
 		["Lost", "eval:self.status=='Lost'"],
 		["Ordered", "has_sales_order"],
-		["Replied", "communication_sent"],
 		["Cancelled", "eval:self.docstatus==2"],
-		["Open", "communication_received"],
 	],
 	"Sales Order": [
 		["Draft", None],
@@ -46,10 +32,6 @@
 		["Stopped", "eval:self.status=='Stopped'"],
 		["Cancelled", "eval:self.docstatus==2"],
 	],
-	"Support Ticket": [
-		["Replied", "communication_sent"],
-		["Open", "communication_received"]
-	],
 }
 
 class StatusUpdater(Document):
@@ -90,25 +72,6 @@
 			if update:
 				frappe.db.set_value(self.doctype, self.name, "status", self.status)
 
-	def on_communication(self):
-		if not self.get("communications"): return
-		self.communication_set = True
-		self.get("communications").sort(key=lambda d: d.creation)
-		self.set_status(update=True)
-		del self.communication_set
-
-	def communication_received(self):
-		if getattr(self, "communication_set", False):
-			last_comm = self.get("communications")
-			if last_comm:
-				return last_comm[-1].sent_or_received == "Received"
-
-	def communication_sent(self):
-		if getattr(self, "communication_set", False):
-			last_comm = self.get("communications")
-			if last_comm:
-				return last_comm[-1].sent_or_received == "Sent"
-
 	def validate_qty(self):
 		"""
 			Validates qty at row level
diff --git a/erpnext/home/__init__.py b/erpnext/home/__init__.py
deleted file mode 100644
index 26a11a2..0000000
--- a/erpnext/home/__init__.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# ERPNext - web based ERP (http://erpnext.com)
-# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from __future__ import unicode_literals
-import frappe
-from frappe import msgprint
-
-feed_dict = {
-	# Project
-	'Project': ['[%(status)s]', '#000080'],
-	'Task': ['[%(status)s] %(subject)s', '#000080'],
-
-	# Sales
-	'Lead': ['%(lead_name)s', '#000080'],
-	'Quotation': ['[%(status)s] To %(customer_name)s worth %(currency)s %(grand_total_export)s', '#4169E1'],
-	'Sales Order': ['[%(status)s] To %(customer_name)s worth %(currency)s %(grand_total_export)s', '#4169E1'],
-
-	# Purchase
-	'Supplier': ['%(supplier_name)s, %(supplier_type)s', '#6495ED'],
-	'Purchase Order': ['[%(status)s] %(name)s To %(supplier_name)s for %(currency)s  %(grand_total_import)s', '#4169E1'],
-
-	# Stock
-	'Delivery Note': ['[%(status)s] To %(customer_name)s', '#4169E1'],
-	'Purchase Receipt': ['[%(status)s] From %(supplier)s', '#4169E1'],
-
-	# Accounts
-	'Journal Voucher': ['[%(voucher_type)s] %(name)s', '#4169E1'],
-	'Purchase Invoice': ['To %(supplier_name)s for %(currency)s %(grand_total_import)s', '#4169E1'],
-	'Sales Invoice': ['To %(customer_name)s for %(currency)s %(grand_total_export)s', '#4169E1'],
-
-	# HR
-	'Expense Claim': ['[%(approval_status)s] %(name)s by %(employee_name)s', '#4169E1'],
-	'Salary Slip': ['%(employee_name)s for %(month)s %(fiscal_year)s', '#4169E1'],
-	'Leave Transaction': ['%(leave_type)s for %(employee)s', '#4169E1'],
-
-	# Support
-	'Customer Issue': ['[%(status)s] %(description)s by %(customer_name)s', '#000080'],
-	'Maintenance Visit': ['To %(customer_name)s', '#4169E1'],
-	'Support Ticket': ["[%(status)s] %(subject)s", '#000080'],
-
-	# Website
-	'Web Page': ['%(title)s', '#000080'],
-	'Blog': ['%(title)s', '#000080']
-}
-
-def make_feed(feedtype, doctype, name, owner, subject, color):
-	"makes a new Feed record"
-	#msgprint(subject)
-	from frappe.utils import get_fullname
-
-	if feedtype in ('Login', 'Comment', 'Assignment'):
-		# delete old login, comment feed
-		frappe.db.sql("""delete from tabFeed where
-			datediff(curdate(), creation) > 7 and doc_type in ('Comment', 'Login', 'Assignment')""")
-	else:
-		# one feed per item
-		frappe.db.sql("""delete from tabFeed
-			where doc_type=%s and doc_name=%s
-			and ifnull(feed_type,'') != 'Comment'""", (doctype, name))
-
-	f = frappe.new_doc('Feed')
-	f.owner = owner
-	f.feed_type = feedtype
-	f.doc_type = doctype
-	f.doc_name = name
-	f.subject = subject
-	f.color = color
-	f.full_name = get_fullname(owner)
-	f.save(ignore_permissions=True)
-
-def update_feed(doc, method=None):
-	"adds a new feed"
-	if frappe.flags.in_patch:
-		return
-
-	if method in ['on_update', 'on_submit']:
-		subject, color = feed_dict.get(doc.doctype, [None, None])
-		if subject:
-			make_feed('', doc.doctype, doc.name, doc.owner, subject % doc.as_dict(), color)
-
-def make_comment_feed(doc, method):
-	"""add comment to feed"""
-	comment = doc.comment
-	if len(comment) > 240:
-		comment = comment[:240] + "..."
-
-	make_feed('Comment', doc.comment_doctype, doc.comment_docname, doc.comment_by,
-		'<i>"' + comment + '"</i>', '#6B24B3')
-
diff --git a/erpnext/home/doctype/__init__.py b/erpnext/home/doctype/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/home/doctype/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/home/doctype/feed/README.md b/erpnext/home/doctype/feed/README.md
deleted file mode 100644
index 085e575..0000000
--- a/erpnext/home/doctype/feed/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Activity Feed.
\ No newline at end of file
diff --git a/erpnext/home/doctype/feed/__init__.py b/erpnext/home/doctype/feed/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/home/doctype/feed/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/home/doctype/feed/feed.json b/erpnext/home/doctype/feed/feed.json
deleted file mode 100644
index bef8aac..0000000
--- a/erpnext/home/doctype/feed/feed.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "autoname": "hash",
- "creation": "2012-07-03 13:29:42",
- "docstatus": 0,
- "doctype": "DocType",
- "fields": [
-  {
-   "fieldname": "feed_type",
-   "fieldtype": "Select",
-   "in_list_view": 1,
-   "label": "Feed Type",
-   "options": "\nComment\nLogin",
-   "permlevel": 0
-  },
-  {
-   "fieldname": "doc_type",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Doc Type",
-   "permlevel": 0
-  },
-  {
-   "fieldname": "doc_name",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Doc Name",
-   "permlevel": 0
-  },
-  {
-   "fieldname": "subject",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Subject",
-   "permlevel": 0
-  },
-  {
-   "fieldname": "color",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Color",
-   "permlevel": 0
-  },
-  {
-   "fieldname": "full_name",
-   "fieldtype": "Data",
-   "label": "Full Name",
-   "permlevel": 0
-  }
- ],
- "icon": "icon-rss",
- "idx": 1,
- "modified": "2014-06-18 03:49:10.882587",
- "modified_by": "Administrator",
- "module": "Home",
- "name": "Feed",
- "owner": "Administrator",
- "permissions": [
-  {
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "System Manager"
-  },
-  {
-   "apply_user_permissions": 1,
-   "permlevel": 0,
-   "read": 1,
-   "role": "All"
-  }
- ]
-}
diff --git a/erpnext/home/doctype/feed/feed.py b/erpnext/home/doctype/feed/feed.py
deleted file mode 100644
index df8ccb2..0000000
--- a/erpnext/home/doctype/feed/feed.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-import frappe.defaults
-import frappe.permissions
-from frappe.model.document import Document
-
-class Feed(Document):
-	pass
-
-def on_doctype_update():
-	if not frappe.db.sql("""show index from `tabFeed`
-		where Key_name="feed_doctype_docname_index" """):
-		frappe.db.commit()
-		frappe.db.sql("""alter table `tabFeed`
-			add index feed_doctype_docname_index(doc_type, doc_name)""")
-
-def get_permission_query_conditions(user):
-	if not user: user = frappe.session.user
-
-	if not frappe.permissions.apply_user_permissions("Feed", "read", user):
-		return ""
-
-	user_permissions = frappe.defaults.get_user_permissions(user)
-	can_read = frappe.get_user(user).get_can_read()
-
-	can_read_doctypes = ['"{}"'.format(doctype) for doctype in
-		list(set(can_read) - set(user_permissions.keys()))]
-
-	if not can_read_doctypes:
-		return ""
-
-	conditions = ["tabFeed.doc_type in ({})".format(", ".join(can_read_doctypes))]
-
-	if user_permissions:
-		can_read_docs = []
-		for doctype, names in user_permissions.items():
-			for n in names:
-				can_read_docs.append('"{}|{}"'.format(doctype, n))
-
-		if can_read_docs:
-			conditions.append("concat_ws('|', tabFeed.doc_type, tabFeed.doc_name) in ({})".format(
-				", ".join(can_read_docs)))
-
-	return "(" + " or ".join(conditions) + ")"
-
-def has_permission(doc, user):
-	return frappe.has_permission(doc.doc_type, "read", doc.doc_name, user=user)
diff --git a/erpnext/home/page/__init__.py b/erpnext/home/page/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/home/page/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/home/page/activity/README.md b/erpnext/home/page/activity/README.md
deleted file mode 100644
index 59e0352..0000000
--- a/erpnext/home/page/activity/README.md
+++ /dev/null
@@ -1 +0,0 @@
-List of latest activities based on Feed.
\ No newline at end of file
diff --git a/erpnext/home/page/activity/__init__.py b/erpnext/home/page/activity/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/home/page/activity/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/home/page/activity/activity.css b/erpnext/home/page/activity/activity.css
deleted file mode 100644
index 28b1b40..0000000
--- a/erpnext/home/page/activity/activity.css
+++ /dev/null
@@ -1,23 +0,0 @@
-#page-activity .label {
-	display: inline-block;
-	width: 100px;
-	margin-right: 7px;
-}
-
-#page-activity .label-info {
-	cursor: pointer;
-}
-
-#page-activity .user-info {
-	float: right;
-	color: #777;
-	font-size: 10px;
-}
-
-#page-activity .date-sep {
-	margin: 0px -15px 11px -15px;
-	padding: 5px 0px;
-	border-bottom: 2px solid #aaa;
-	color: #555;
-	font-size: 10px;
-}
\ No newline at end of file
diff --git a/erpnext/home/page/activity/activity.js b/erpnext/home/page/activity/activity.js
deleted file mode 100644
index f50f6c8..0000000
--- a/erpnext/home/page/activity/activity.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-frappe.pages['activity'].onload = function(wrapper) {
-	frappe.ui.make_app_page({
-		parent: wrapper,
-		title: __("Activity"),
-		single_column: true
-	})
-	wrapper.appframe.add_module_icon("Activity");
-
-	var list = new frappe.ui.Listing({
-		hide_refresh: true,
-		appframe: wrapper.appframe,
-		method: 'erpnext.home.page.activity.activity.get_feed',
-		parent: $(wrapper).find(".layout-main"),
-		render_row: function(row, data) {
-			new erpnext.ActivityFeed(row, data);
-		}
-	});
-	list.run();
-
-	wrapper.appframe.set_title_right(__("Refresh"), function() { list.run(); });
-
-	// Build Report Button
-	if(frappe.boot.user.can_get_report.indexOf("Feed")!=-1) {
-		wrapper.appframe.add_button(__('Build Report'), function() {
-			frappe.set_route('Report', "Feed");
-		}, 'icon-th');
-	}
-}
-
-erpnext.last_feed_date = false;
-erpnext.ActivityFeed = Class.extend({
-	init: function(row, data) {
-		this.scrub_data(data);
-		this.add_date_separator(row, data);
-		if(!data.add_class) data.add_class = "label-default";
-		$(row).append(repl('<div style="margin: 0px">\
-			<span class="avatar avatar-small"><img src="%(imgsrc)s" /></span> \
-			<span %(onclick)s class="label %(add_class)s">%(feed_type)s</span>\
-			%(link)s %(subject)s <span class="user-info">%(by)s</span></div>', data));
-	},
-	scrub_data: function(data) {
-		data.by = frappe.user_info(data.owner).fullname;
-		data.imgsrc = frappe.utils.get_file_link(frappe.user_info(data.owner).image);
-
-		// feedtype
-		if(!data.feed_type) {
-			data.feed_type = __(data.doc_type);
-			data.add_class = "label-info";
-			data.onclick = repl('onclick="window.location.href=\'#!List/%(feed_type)s\';"', data)
-		}
-
-		// color for comment
-		if(data.feed_type=='Comment') {
-			data.add_class = "label-danger";
-		}
-
-		if(data.feed_type=='Assignment') {
-			data.add_class = "label-warning";
-		}
-
-		// link
-		if(data.doc_name && data.feed_type!='Login') {
-			data.link = frappe.format(data.doc_name, {"fieldtype":"Link", "options":data.doc_type})
-		} else {
-			data.link = "";
-		}
-	},
-	add_date_separator: function(row, data) {
-		var date = dateutil.str_to_obj(data.modified);
-		var last = erpnext.last_feed_date;
-
-		if((last && dateutil.obj_to_str(last) != dateutil.obj_to_str(date)) || (!last)) {
-			var diff = dateutil.get_day_diff(dateutil.get_today(), dateutil.obj_to_str(date));
-			if(diff < 1) {
-				pdate = 'Today';
-			} else if(diff < 2) {
-				pdate = 'Yesterday';
-			} else {
-				pdate = dateutil.global_date_format(date);
-			}
-			$(row).html(repl('<div class="date-sep" style="padding-left: 15px;">%(date)s</div>', {date: pdate}));
-		}
-		erpnext.last_feed_date = date;
-	}
-})
diff --git a/erpnext/home/page/activity/activity.json b/erpnext/home/page/activity/activity.json
deleted file mode 100644
index a65057e..0000000
--- a/erpnext/home/page/activity/activity.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "creation": "2013-04-09 11:45:31.000000", 
- "docstatus": 0, 
- "doctype": "Page", 
- "icon": "icon-play", 
- "idx": 1, 
- "modified": "2013-07-11 14:40:20.000000", 
- "modified_by": "Administrator", 
- "module": "Home", 
- "name": "activity", 
- "owner": "Administrator", 
- "page_name": "activity", 
- "roles": [
-  {
-   "role": "All"
-  }
- ], 
- "standard": "Yes", 
- "title": "Activity"
-}
\ No newline at end of file
diff --git a/erpnext/home/page/activity/activity.py b/erpnext/home/page/activity/activity.py
deleted file mode 100644
index f8e1213..0000000
--- a/erpnext/home/page/activity/activity.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright (c) 2013, Web Notes 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 cint
-
-@frappe.whitelist()
-def get_feed(limit_start, limit_page_length):
-	"""get feed"""
-	return frappe.get_list("Feed", fields=["name", "feed_type", "doc_type", "subject", "owner", "modified"],
-		limit_start = limit_start, limit_page_length = limit_page_length)
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index a8e5732..f9ac629 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -4,7 +4,7 @@
 app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "4.5.1"
+app_version = "5.0.0-alpha"
 
 error_report_email = "support@erpnext.com"
 
@@ -20,32 +20,15 @@
 dump_report_map = "erpnext.startup.report_data_map.data_map"
 update_website_context = "erpnext.startup.webutils.update_website_context"
 
-on_session_creation = "erpnext.startup.event_handlers.on_session_creation"
 before_tests = "erpnext.setup.utils.before_tests"
 
 website_generators = ["Item Group", "Item", "Sales Partner"]
 
 standard_queries = "Customer:erpnext.selling.doctype.customer.customer.get_customer_list"
 
-permission_query_conditions = {
-		"Feed": "erpnext.home.doctype.feed.feed.get_permission_query_conditions",
-		"Note": "erpnext.utilities.doctype.note.note.get_permission_query_conditions"
-	}
-
-has_permission = {
-		"Feed": "erpnext.home.doctype.feed.feed.has_permission",
-		"Note": "erpnext.utilities.doctype.note.note.has_permission"
-	}
-
+communication_covert_to = ["Lead", "Support Ticket", "Job Application"]
 
 doc_events = {
-	"*": {
-		"on_update": "erpnext.home.update_feed",
-		"on_submit": "erpnext.home.update_feed"
-	},
-	"Comment": {
-		"on_update": "erpnext.home.make_comment_feed"
-	},
 	"Stock Entry": {
 		"on_submit": "erpnext.stock.doctype.material_request.material_request.update_completed_qty",
 		"on_cancel": "erpnext.stock.doctype.material_request.material_request.update_completed_qty"
@@ -57,11 +40,6 @@
 }
 
 scheduler_events = {
-	"all": [
-		"erpnext.support.doctype.support_ticket.get_support_mails.get_support_mails",
-		"erpnext.hr.doctype.job_applicant.get_job_applications.get_job_applications",
-		"erpnext.selling.doctype.lead.get_leads.get_leads"
-	],
 	"daily": [
 		"erpnext.controllers.recurring_document.create_recurring_documents",
 		"erpnext.stock.utils.reorder_item",
@@ -76,3 +54,6 @@
 	]
 }
 
+default_mail_footer = """<div style="padding: 7px; text-align: right; color: #888"><small>
+	<a style="color: #888" href="https://erpnext.com">Sent via ERPNext</a></div>"""
+
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py
index 560ee02..4db9cbf 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.py
@@ -11,6 +11,10 @@
 class InvalidExpenseApproverError(frappe.ValidationError): pass
 
 class ExpenseClaim(Document):
+	def get_feed(self):
+		return _("{0}: From {0} for {1}").format(self.approval_status,
+			self.employee_name, self.total_claimed_amount)
+
 	def validate(self):
 		self.validate_fiscal_year()
 		self.validate_exp_details()
diff --git a/erpnext/hr/doctype/job_applicant/get_job_applications.py b/erpnext/hr/doctype/job_applicant/get_job_applications.py
deleted file mode 100644
index e4a8d70..0000000
--- a/erpnext/hr/doctype/job_applicant/get_job_applications.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2013, Web Notes 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
-from frappe.utils.email_lib.receive import POP3Mailbox
-from frappe.core.doctype.communication.communication import _make
-
-class JobsMailbox(POP3Mailbox):	
-	def setup(self, args=None):
-		self.settings = args or frappe.get_doc("Jobs Email Settings", "Jobs Email Settings")
-		
-	def process_message(self, mail):
-		if mail.from_email == self.settings.email_id:
-			return
-			
-		name = frappe.db.get_value("Job Applicant", {"email_id": mail.from_email}, 
-			"name")
-		if name:
-			applicant = frappe.get_doc("Job Applicant", name)
-			if applicant.status!="Rejected":
-				applicant.status = "Open"
-			applicant.ignore_permissions = True
-			applicant.save()
-		else:
-			name = (mail.from_real_name and (mail.from_real_name + " - ") or "") \
-				+ mail.from_email
-			applicant = frappe.get_doc({
-				"creation": mail.date,
-				"doctype":"Job Applicant",
-				"applicant_name": name,
-				"email_id": mail.from_email,
-				"status": "Open"
-			})
-			applicant.ignore_permissions = True
-			applicant.ignore_mandatory = True
-			applicant.insert()
-		
-		mail.save_attachments_in_doc(applicant)
-				
-		_make(content=mail.content, sender=mail.from_email, subject=mail.subject or "No Subject",
-			doctype="Job Applicant", name=applicant.name, sent_or_received="Received")
-
-def get_job_applications():
-	if cint(frappe.db.get_value('Jobs Email Settings', None, 'extract_emails')):
-		JobsMailbox()
\ No newline at end of file
diff --git a/erpnext/hr/doctype/job_applicant/job_applicant.js b/erpnext/hr/doctype/job_applicant/job_applicant.js
index 762bd96..63b58db 100644
--- a/erpnext/hr/doctype/job_applicant/job_applicant.js
+++ b/erpnext/hr/doctype/job_applicant/job_applicant.js
@@ -3,16 +3,9 @@
 
 // For license information, please see license.txt
 
+// for communication
+cur_frm.email_field = "email_id";
 cur_frm.cscript = {
 	refresh: function(doc) {
-		cur_frm.cscript.make_listing(doc);
-	},
-	make_listing: function(doc) {
-		cur_frm.communication_view = new frappe.views.CommunicationList({
-			list: frappe.get_list("Communication", {"parent": doc.name, "parenttype": "Job Applicant"}),
-			parent: cur_frm.fields_dict['thread_html'].wrapper,
-			doc: doc,
-			recipients: doc.email_id
-		})
 	},
 }
diff --git a/erpnext/hr/doctype/job_applicant/job_applicant.py b/erpnext/hr/doctype/job_applicant/job_applicant.py
index 1f09c26..ddbf97f 100644
--- a/erpnext/hr/doctype/job_applicant/job_applicant.py
+++ b/erpnext/hr/doctype/job_applicant/job_applicant.py
@@ -5,13 +5,9 @@
 
 from __future__ import unicode_literals
 import frappe
-from erpnext.utilities.transaction_base import TransactionBase
+from frappe.model.document import Document
 from frappe.utils import extract_email_id
 
-class JobApplicant(TransactionBase):
-
-	def get_sender(self, comm):
-		return frappe.db.get_value('Jobs Email Settings',None,'email_id') or comm.sender or frappe.session.user
-
+class JobApplicant(Document):
 	def validate(self):
 		self.set_status()
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index 1751eb1..aacb7d4 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -17,6 +17,10 @@
 
 from frappe.model.document import Document
 class LeaveApplication(Document):
+	def get_feed(self):
+		return _("{0}: From {0} of type {1}").format(self.status,
+			self.employee_name, self.leave_type)
+
 	def validate(self):
 		if not getattr(self, "__islocal", None) and frappe.db.exists(self.doctype, self.name):
 			self.previous_doc = frappe.db.get_value(self.doctype, self.name, "*", as_dict=True)
@@ -212,7 +216,7 @@
 
 	def notify(self, args):
 		args = frappe._dict(args)
-		from frappe.core.page.messages.messages import post
+		from frappe.desk.page.messages.messages import post
 		post(**{"txt": args.message, "contact": args.message_to, "subject": args.subject,
 			"notify": cint(self.follow_via_email)})
 
@@ -249,7 +253,7 @@
 
 	employee, company = employee.name, employee.company
 
-	from frappe.widgets.reportview import build_match_conditions
+	from frappe.desk.reportview import build_match_conditions
 	match_conditions = build_match_conditions("Leave Application")
 
 	# show department leaves for employee
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index 7c905a6..f3ac652 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -185,12 +185,10 @@
 
 
 	def send_mail_funct(self):
-		from frappe.utils.email_lib import sendmail
-
 		receiver = frappe.db.get_value("Employee", self.employee, "company_email")
 		if receiver:
 			subj = 'Salary Slip - ' + cstr(self.month) +'/'+cstr(self.fiscal_year)
-			sendmail([receiver], subject=subj, msg = _("Please see attachment"),
+			frappe.sendmail([receiver], subject=subj, msg = _("Please see attachment"),
 				attachments=[{
 					"fname": self.name + ".pdf",
 					"fcontent": frappe.get_print_format(self.doctype, self.name, as_pdf = True)
diff --git a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
index 4b92848..f54b2e4 100644
--- a/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
+++ b/erpnext/hr/report/employee_leave_balance/employee_leave_balance.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from frappe.widgets.reportview import execute as runreport
+from frappe.desk.reportview import execute as runreport
 
 def execute(filters=None):
 	if not filters: filters = {}
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 32547e9..68d095e 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -1,6 +1,5 @@
 Accounts
 Buying
-Home
 HR
 Manufacturing
 Projects
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 29049f7..9700eef 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -81,4 +81,5 @@
 erpnext.patches.v4_2.set_company_country
 erpnext.patches.v4_2.update_sales_order_invoice_field_name
 erpnext.patches.v4_2.cost_of_production_cycle
-erpnext.patches.v4_2.seprate_manufacture_and_repack
\ No newline at end of file
+erpnext.patches.v4_2.seprate_manufacture_and_repack
+erpnext.patches.v5_0.update_frozen_accounts_permission_role
diff --git a/erpnext/patches/repair_tools/fix_naming_series_records_lost_by_reload.py b/erpnext/patches/repair_tools/fix_naming_series_records_lost_by_reload.py
index 981ffd0..36fa277 100644
--- a/erpnext/patches/repair_tools/fix_naming_series_records_lost_by_reload.py
+++ b/erpnext/patches/repair_tools/fix_naming_series_records_lost_by_reload.py
@@ -7,7 +7,7 @@
 import re
 from frappe.model.naming import make_autoname
 from frappe.utils import cint
-from frappe.utils.email_lib import sendmail_to_system_managers
+from frappe.email import sendmail_to_system_managers
 
 doctype_series_map = {
 	'Attendance': 'ATT-',
diff --git a/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py b/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py
index 9b07000..5bca5e6 100644
--- a/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py
+++ b/erpnext/patches/v4_0/create_custom_fields_for_india_specific_fields.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.core.doctype.custom_field.custom_field import create_custom_field_if_values_exist
+from frappe.custom.doctype.custom_field.custom_field import create_custom_field_if_values_exist
 
 def execute():
 	frappe.reload_doc("stock", "doctype", "purchase_receipt")
diff --git a/erpnext/patches/v4_0/import_country_codes.py b/erpnext/patches/v4_0/import_country_codes.py
index 4d1177e..e2e9f9d 100644
--- a/erpnext/patches/v4_0/import_country_codes.py
+++ b/erpnext/patches/v4_0/import_country_codes.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.country_info import get_all
+from frappe.geo.country_info import get_all
 from erpnext.setup.install import import_country_and_currency
 
 def execute():
diff --git a/erpnext/patches/v4_0/reset_permissions_for_masters.py b/erpnext/patches/v4_0/reset_permissions_for_masters.py
index d031bd0..30aa47a 100644
--- a/erpnext/patches/v4_0/reset_permissions_for_masters.py
+++ b/erpnext/patches/v4_0/reset_permissions_for_masters.py
@@ -10,9 +10,9 @@
 		"Comment", "Communication", "Company", "Contact Us Settings",
 		"Country", "Currency", "Currency Exchange", "Deduction Type", "Department",
 		"Designation", "Earning Type", "Event", "Feed", "File Data", "Fiscal Year",
-		"HR Settings", "Industry Type", "Jobs Email Settings", "Leave Type", "Letter Head",
+		"HR Settings", "Industry Type", "Leave Type", "Letter Head",
 		"Mode of Payment", "Module Def", "Naming Series", "POS Setting", "Print Heading",
-		"Report", "Role", "Sales Email Settings", "Selling Settings", "Stock Settings", "Supplier Type", "UOM"):
+		"Report", "Role", "Selling Settings", "Stock Settings", "Supplier Type", "UOM"):
 		try:
 			frappe.reset_perms(doctype)
 		except:
diff --git a/erpnext/patches/v4_0/set_naming_series_property_setter.py b/erpnext/patches/v4_0/set_naming_series_property_setter.py
index 7161492..ffbfc24 100644
--- a/erpnext/patches/v4_0/set_naming_series_property_setter.py
+++ b/erpnext/patches/v4_0/set_naming_series_property_setter.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 
 import frappe
-from frappe.core.doctype.property_setter.property_setter import make_property_setter
+from frappe.custom.doctype.property_setter.property_setter import make_property_setter
 
 doctype_series_map = {
 	'Attendance': 'ATT-',
diff --git a/erpnext/patches/v4_0/split_email_settings.py b/erpnext/patches/v4_0/split_email_settings.py
index dd36eef..c04e1d5 100644
--- a/erpnext/patches/v4_0/split_email_settings.py
+++ b/erpnext/patches/v4_0/split_email_settings.py
@@ -5,6 +5,16 @@
 import frappe
 
 def execute():
+	print "WARNING!!!! Email Settings not migrated. Please setup your email again."
+
+	# this will happen if you are migrating very old accounts
+	# comment out this line below and remember to create new Email Accounts
+	# for incoming and outgoing mails
+	raise Exception
+
+	return
+
+
 	frappe.reload_doc("core", "doctype", "outgoing_email_settings")
 	frappe.reload_doc("support", "doctype", "support_email_settings")
 
@@ -12,7 +22,6 @@
 	map_outgoing_email_settings(email_settings)
 	map_support_email_settings(email_settings)
 
-	frappe.delete_doc("DocType", "Email Settings")
 
 def map_outgoing_email_settings(email_settings):
 	outgoing_email_settings = frappe.get_doc("Outgoing Email Settings")
diff --git a/erpnext/patches/v4_1/set_outgoing_email_footer.py b/erpnext/patches/v4_1/set_outgoing_email_footer.py
index d38f2c2..73d8d60 100644
--- a/erpnext/patches/v4_1/set_outgoing_email_footer.py
+++ b/erpnext/patches/v4_1/set_outgoing_email_footer.py
@@ -6,6 +6,7 @@
 from erpnext.setup.install import default_mail_footer
 
 def execute():
+	return
 	mail_footer = frappe.db.get_default('mail_footer') or ''
 	mail_footer += default_mail_footer
 	frappe.db.set_value("Outgoing Email Settings", "Outgoing Email Settings", "footer", mail_footer)
diff --git a/erpnext/patches/v4_2/add_currency_turkish_lira.py b/erpnext/patches/v4_2/add_currency_turkish_lira.py
index f547661..d768d58 100644
--- a/erpnext/patches/v4_2/add_currency_turkish_lira.py
+++ b/erpnext/patches/v4_2/add_currency_turkish_lira.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.country_info import get_country_info
+from frappe.geo.country_info import get_country_info
 from erpnext.setup.install import add_country_and_currency
 
 def execute():
diff --git a/erpnext/utilities/doctype/note/__init__.py b/erpnext/patches/v4_4/__init__.py
similarity index 100%
rename from erpnext/utilities/doctype/note/__init__.py
rename to erpnext/patches/v4_4/__init__.py
diff --git a/erpnext/patches/v4_4/make_email_accounts.py b/erpnext/patches/v4_4/make_email_accounts.py
new file mode 100644
index 0000000..9e8538d
--- /dev/null
+++ b/erpnext/patches/v4_4/make_email_accounts.py
@@ -0,0 +1,73 @@
+import frappe
+
+def execute():
+	frappe.reload_doc("email", "doctype", "email_account")
+
+	# outgoing
+	outgoing = frappe.get_doc("Outgoing Email Settings")
+	account = frappe.new_doc("Email Account")
+	mapping = {
+		"email_id": "mail_login",
+		"password": "mail_password",
+		"footer": "footer",
+		"smtp_server": "mail_server",
+		"smtp_port": "mail_port",
+		"use_tls": "use_ssl"
+	}
+
+	for target_fieldname, source_fieldname in mapping.iteritems():
+		account.set(target_fieldname, outgoing.get(source_fieldname))
+
+	account.enable_outgoing = 1
+	account.enable_incoming = 0
+	account.is_global = 1
+
+	account.insert()
+
+	# support
+	support = frappe.get_doc("Support Email Settings")
+	account = frappe.new_doc("Email Account")
+	mapping = {
+		"enable_incoming": "sync_support_mails",
+		"email_id": "mail_login",
+		"password": "mail_password",
+		"pop3_server": "mail_server",
+		"use_ssl": "use_ssl",
+		"signature": "support_signature",
+		"enable_auto_reply": "send_autoreply",
+		"auto_reply_message": "support_autoreply"
+	}
+
+	for target_fieldname, source_fieldname in mapping.iteritems():
+		account.set(target_fieldname, support.get(source_fieldname))
+
+	account.enable_outgoing = 0
+	account.is_global = 1
+
+	account.insert()
+
+	# sales, jobs
+	for doctype in ("Sales Email Settings", "Jobs Email Settings"):
+		source = frappe.get_doc(doctype)
+		account = frappe.new_doc("Email Account")
+		mapping = {
+			"enable_incoming": "extract_emails",
+			"email_id": "username",
+			"password": "password",
+			"pop3_server": "host",
+			"use_ssl": "use_ssl",
+		}
+
+		for target_fieldname, source_fieldname in mapping.iteritems():
+			account.set(target_fieldname, source.get(source_fieldname))
+
+		account.enable_outgoing = 0
+		account.is_global = 1
+		account.append_to = "Lead" if doctype=="Sales Email Settings" else "Job Applicant"
+
+		account.insert()
+
+	for doctype in ("Outgoing Email Settings", "Support Email Settings",
+		"Sales Email Settings", "Jobs Email Settings"):
+		frappe.delete_doc("DocType", doctype)
+
diff --git a/erpnext/utilities/doctype/note/__init__.py b/erpnext/patches/v5_0/__init__.py
similarity index 100%
copy from erpnext/utilities/doctype/note/__init__.py
copy to erpnext/patches/v5_0/__init__.py
diff --git a/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py b/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py
new file mode 100644
index 0000000..f569695
--- /dev/null
+++ b/erpnext/patches/v5_0/update_frozen_accounts_permission_role.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import frappe
+
+def execute():
+	account_settings = frappe.get_doc("Accounts Settings")
+
+	if not account_settings.frozen_accounts_modifier and account_settings.bde_auth_role:
+		account_settings.frozen_accounts_modifier = account_settings.bde_auth_role
+
+	account_settings.save()
diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js
index cdb494e..fa75c52 100644
--- a/erpnext/projects/doctype/project/project.js
+++ b/erpnext/projects/doctype/project/project.js
@@ -5,7 +5,7 @@
 cur_frm.cscript.refresh = function(doc) {
 	if(!doc.__islocal) {
 		cur_frm.add_custom_button(__("Gantt Chart"), function() {
-			frappe.route_options = {"project": doc.name}
+			frappe.route_options = {"project": doc.name, "start": doc.project_start_date, "end": doc.completion_date};
 			frappe.set_route("Gantt", "Task");
 		}, "icon-tasks", true);
 		cur_frm.add_custom_button(__("Tasks"), function() {
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 88e6e12..ce9b561 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -11,6 +11,8 @@
 from frappe.model.document import Document
 
 class Project(Document):
+	def get_feed(self):
+		return self.status
 
 	def get_gross_profit(self):
 		pft, per_pft =0, 0
@@ -70,4 +72,4 @@
 
 @frappe.whitelist()
 def get_cost_center_name(project_name):
-	return frappe.db.get_value("Project", project_name, "cost_center")
\ No newline at end of file
+	return frappe.db.get_value("Project", project_name, "cost_center")
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index 8d63f12..fe1ce7f 100644
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -11,6 +11,9 @@
 from frappe.model.document import Document
 
 class Task(Document):
+	def get_feed(self):
+		return '{0}: {1}'.format(_(self.status), self.subject)
+
 	def get_project_details(self):
 		return {
 			"project": self.project
@@ -47,7 +50,7 @@
 
 @frappe.whitelist()
 def get_events(start, end, filters=None):
-	from frappe.widgets.reportview import build_match_conditions
+	from frappe.desk.reportview import build_match_conditions
 	if not frappe.has_permission("Task"):
 		frappe.msgprint(_("No Permission"), raise_exception=1)
 
diff --git a/erpnext/projects/doctype/time_log/time_log.py b/erpnext/projects/doctype/time_log/time_log.py
index eb8afc7..6678392 100644
--- a/erpnext/projects/doctype/time_log/time_log.py
+++ b/erpnext/projects/doctype/time_log/time_log.py
@@ -61,7 +61,7 @@
 
 @frappe.whitelist()
 def get_events(start, end):
-	from frappe.widgets.reportview import build_match_conditions
+	from frappe.desk.reportview import build_match_conditions
 	if not frappe.has_permission("Time Log"):
 		frappe.msgprint(_("No Permission"), raise_exception=1)
 
diff --git a/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py b/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py
index b8f746b..fecdc2f 100644
--- a/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py
+++ b/erpnext/projects/report/daily_time_log_summary/daily_time_log_summary.py
@@ -75,7 +75,7 @@
 	if filters.get("to_date"):
 		conditions += " and to_time <= timestamp(%(to_date)s, %(to_time)s)"
 
-	from frappe.widgets.reportview import build_match_conditions
+	from frappe.desk.reportview import build_match_conditions
 	match_conditions = build_match_conditions("Time Log")
 	if match_conditions:
 		conditions += " and %s" % match_conditions
diff --git a/erpnext/projects/utils.py b/erpnext/projects/utils.py
index 6fee9b3..b36519b 100644
--- a/erpnext/projects/utils.py
+++ b/erpnext/projects/utils.py
@@ -12,7 +12,7 @@
 
 @frappe.whitelist()
 def query_task(doctype, txt, searchfield, start, page_len, filters):
-	from frappe.widgets.reportview import build_match_conditions
+	from frappe.desk.reportview import build_match_conditions
 	
 	search_string = "%%%s%%" % txt
 	order_by_string = "%s%%" % txt
diff --git a/erpnext/selling/doctype/customer/customer.js b/erpnext/selling/doctype/customer/customer.js
index e5d2ca9..9829ed2 100644
--- a/erpnext/selling/doctype/customer/customer.js
+++ b/erpnext/selling/doctype/customer/customer.js
@@ -34,11 +34,6 @@
 		// make lists
 		cur_frm.cscript.make_address(doc, dt, dn);
 		cur_frm.cscript.make_contact(doc, dt, dn);
-
-		cur_frm.communication_view = new frappe.views.CommunicationList({
-			parent: cur_frm.fields_dict.communication_html.wrapper,
-			doc: doc,
-		});
 	}
 }
 
diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json
index 47286de..bb481fa 100644
--- a/erpnext/selling/doctype/customer/customer.json
+++ b/erpnext/selling/doctype/customer/customer.json
@@ -1,377 +1,361 @@
 {
- "allow_import": 1, 
- "allow_rename": 1, 
- "autoname": "naming_series:", 
- "creation": "2013-06-11 14:26:44", 
- "description": "Buyer of Goods and Services.", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Master", 
+ "allow_import": 1,
+ "allow_rename": 1,
+ "autoname": "naming_series:",
+ "creation": "2013-06-11 14:26:44",
+ "description": "Buyer of Goods and Services.",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Master",
  "fields": [
   {
-   "fieldname": "basic_info", 
-   "fieldtype": "Section Break", 
-   "label": "Basic Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-user", 
-   "permlevel": 0, 
+   "fieldname": "basic_info",
+   "fieldtype": "Section Break",
+   "label": "Basic Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-user",
+   "permlevel": 0,
    "reqd": 0
-  }, 
+  },
   {
-   "fieldname": "naming_series", 
-   "fieldtype": "Select", 
-   "label": "Series", 
-   "no_copy": 1, 
-   "options": "CUST-", 
-   "permlevel": 0, 
+   "fieldname": "naming_series",
+   "fieldtype": "Select",
+   "label": "Series",
+   "no_copy": 1,
+   "options": "CUST-",
+   "permlevel": 0,
    "print_hide": 0
-  }, 
+  },
   {
-   "fieldname": "customer_name", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Full Name", 
-   "no_copy": 1, 
-   "oldfieldname": "customer_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
+   "fieldname": "customer_name",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Full Name",
+   "no_copy": 1,
+   "oldfieldname": "customer_name",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
+   "report_hide": 0,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "fieldname": "customer_type", 
-   "fieldtype": "Select", 
-   "label": "Type", 
-   "oldfieldname": "customer_type", 
-   "oldfieldtype": "Select", 
-   "options": "\nCompany\nIndividual", 
-   "permlevel": 0, 
+   "fieldname": "customer_type",
+   "fieldtype": "Select",
+   "label": "Type",
+   "oldfieldname": "customer_type",
+   "oldfieldtype": "Select",
+   "options": "\nCompany\nIndividual",
+   "permlevel": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "lead_name", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "From Lead", 
-   "no_copy": 1, 
-   "oldfieldname": "lead_name", 
-   "oldfieldtype": "Link", 
-   "options": "Lead", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "lead_name",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "From Lead",
+   "no_copy": 1,
+   "oldfieldname": "lead_name",
+   "oldfieldtype": "Link",
+   "options": "Lead",
+   "permlevel": 0,
+   "print_hide": 1,
    "report_hide": 1
-  }, 
+  },
   {
-   "fieldname": "column_break0", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break0",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>", 
-   "fieldname": "customer_group", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Customer Group", 
-   "oldfieldname": "customer_group", 
-   "oldfieldtype": "Link", 
-   "options": "Customer Group", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "reqd": 1, 
+   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>",
+   "fieldname": "customer_group",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Customer Group",
+   "oldfieldname": "customer_group",
+   "oldfieldtype": "Link",
+   "options": "Customer Group",
+   "permlevel": 0,
+   "print_hide": 0,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>", 
-   "fieldname": "territory", 
-   "fieldtype": "Link", 
-   "in_list_view": 1, 
-   "label": "Territory", 
-   "oldfieldname": "territory", 
-   "oldfieldtype": "Link", 
-   "options": "Territory", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>",
+   "fieldname": "territory",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Territory",
+   "oldfieldname": "territory",
+   "oldfieldtype": "Link",
+   "options": "Territory",
+   "permlevel": 0,
+   "print_hide": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "address_contacts", 
-   "fieldtype": "Section Break", 
-   "label": "Address & Contacts", 
-   "options": "icon-map-marker", 
+   "depends_on": "eval:!doc.__islocal",
+   "fieldname": "address_contacts",
+   "fieldtype": "Section Break",
+   "label": "Address & Contacts",
+   "options": "icon-map-marker",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "address_html", 
-   "fieldtype": "HTML", 
-   "label": "Address HTML", 
-   "permlevel": 0, 
+   "fieldname": "address_html",
+   "fieldtype": "HTML",
+   "label": "Address HTML",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break1",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "contact_html", 
-   "fieldtype": "HTML", 
-   "label": "Contact HTML", 
-   "oldfieldtype": "HTML", 
-   "permlevel": 0, 
+   "fieldname": "contact_html",
+   "fieldtype": "HTML",
+   "label": "Contact HTML",
+   "oldfieldtype": "HTML",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "communication_history", 
-   "fieldtype": "Section Break", 
-   "label": "Communication History", 
-   "options": "icon-comments", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "fieldname": "communication_html", 
-   "fieldtype": "HTML", 
-   "label": "Communication HTML", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "fieldname": "more_info", 
-   "fieldtype": "Section Break", 
-   "label": "More Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-file-text", 
+   "fieldname": "more_info",
+   "fieldtype": "Section Break",
+   "label": "More Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-file-text",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break2", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break2",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "description": "To create an Account Head under a different company, select the company and save customer.", 
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Company", 
-   "oldfieldname": "company", 
-   "oldfieldtype": "Link", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "reqd": 1, 
+   "description": "To create an Account Head under a different company, select the company and save customer.",
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Company",
+   "oldfieldname": "company",
+   "oldfieldtype": "Link",
+   "options": "Company",
+   "permlevel": 0,
+   "reqd": 1,
    "search_index": 1
-  }, 
+  },
   {
-   "description": "Your Customer's TAX registration numbers (if applicable) or any general information", 
-   "fieldname": "customer_details", 
-   "fieldtype": "Text", 
-   "label": "Customer Details", 
-   "oldfieldname": "customer_details", 
-   "oldfieldtype": "Code", 
+   "description": "Your Customer's TAX registration numbers (if applicable) or any general information",
+   "fieldname": "customer_details",
+   "fieldtype": "Text",
+   "label": "Customer Details",
+   "oldfieldname": "customer_details",
+   "oldfieldtype": "Code",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break3", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
+   "fieldname": "column_break3",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "default_currency", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Currency", 
-   "no_copy": 1, 
-   "options": "Currency", 
+   "fieldname": "default_currency",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Currency",
+   "no_copy": 1,
+   "options": "Currency",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "default_price_list", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Price List", 
-   "options": "Price List", 
+   "fieldname": "default_price_list",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Price List",
+   "options": "Price List",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "default_taxes_and_charges", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Taxes and Charges", 
-   "options": "Sales Taxes and Charges Master", 
+   "fieldname": "default_taxes_and_charges",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Taxes and Charges",
+   "options": "Sales Taxes and Charges Master",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "credit_days", 
-   "fieldtype": "Int", 
-   "label": "Credit Days", 
-   "oldfieldname": "credit_days", 
-   "oldfieldtype": "Int", 
+   "fieldname": "credit_days",
+   "fieldtype": "Int",
+   "label": "Credit Days",
+   "oldfieldname": "credit_days",
+   "oldfieldtype": "Int",
    "permlevel": 1
-  }, 
+  },
   {
-   "fieldname": "credit_limit", 
-   "fieldtype": "Currency", 
-   "label": "Credit Limit", 
-   "oldfieldname": "credit_limit", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
+   "fieldname": "credit_limit",
+   "fieldtype": "Currency",
+   "label": "Credit Limit",
+   "oldfieldname": "credit_limit",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
    "permlevel": 1
-  }, 
+  },
   {
-   "fieldname": "website", 
-   "fieldtype": "Data", 
-   "label": "Website", 
+   "fieldname": "website",
+   "fieldtype": "Data",
+   "label": "Website",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "sales_team_section_break", 
-   "fieldtype": "Section Break", 
-   "label": "Sales Team", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-group", 
+   "fieldname": "sales_team_section_break",
+   "fieldtype": "Section Break",
+   "label": "Sales Team",
+   "oldfieldtype": "Section Break",
+   "options": "icon-group",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "default_sales_partner", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Sales Partner", 
-   "oldfieldname": "default_sales_partner", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Partner", 
+   "fieldname": "default_sales_partner",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Sales Partner",
+   "oldfieldname": "default_sales_partner",
+   "oldfieldtype": "Link",
+   "options": "Sales Partner",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "default_commission_rate", 
-   "fieldtype": "Float", 
-   "label": "Commission Rate", 
-   "oldfieldname": "default_commission_rate", 
-   "oldfieldtype": "Currency", 
+   "fieldname": "default_commission_rate",
+   "fieldtype": "Float",
+   "label": "Commission Rate",
+   "oldfieldname": "default_commission_rate",
+   "oldfieldtype": "Currency",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "sales_team", 
-   "fieldtype": "Table", 
-   "label": "Sales Team Details", 
-   "oldfieldname": "sales_team", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Team", 
+   "fieldname": "sales_team",
+   "fieldtype": "Table",
+   "label": "Sales Team Details",
+   "oldfieldname": "sales_team",
+   "oldfieldtype": "Table",
+   "options": "Sales Team",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "communications", 
-   "fieldtype": "Table", 
-   "hidden": 1, 
-   "label": "Communications", 
-   "options": "Communication", 
-   "permlevel": 0, 
+   "fieldname": "communications",
+   "fieldtype": "Table",
+   "hidden": 1,
+   "label": "Communications",
+   "options": "Communication",
+   "permlevel": 0,
    "print_hide": 1
   }
- ], 
- "icon": "icon-user", 
- "idx": 1, 
- "modified": "2014-09-10 16:41:07.553182", 
- "modified_by": "Administrator", 
- "module": "Selling", 
- "name": "Customer", 
- "owner": "Administrator", 
+ ],
+ "icon": "icon-user",
+ "idx": 1,
+ "modified": "2014-09-12 12:26:47.480965",
+ "modified_by": "Administrator",
+ "module": "Selling",
+ "name": "Customer",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 0, 
-   "apply_user_permissions": 1, 
-   "create": 1, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales User", 
-   "submit": 0, 
+   "amend": 0,
+   "apply_user_permissions": 1,
+   "create": 1,
+   "delete": 0,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales User",
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "cancel": 0, 
-   "delete": 0, 
-   "permlevel": 1, 
-   "read": 1, 
+   "cancel": 0,
+   "delete": 0,
+   "permlevel": 1,
+   "read": 1,
    "role": "Sales User"
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Sales Manager"
-  }, 
+  },
   {
-   "amend": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales Master Manager", 
-   "set_user_permissions": 1, 
-   "submit": 0, 
+   "amend": 0,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales Master Manager",
+   "set_user_permissions": 1,
+   "submit": 0,
    "write": 1
-  }, 
+  },
   {
-   "cancel": 0, 
-   "delete": 0, 
-   "permlevel": 1, 
-   "read": 1, 
-   "role": "Sales Master Manager", 
+   "cancel": 0,
+   "delete": 0,
+   "permlevel": 1,
+   "read": 1,
+   "role": "Sales Master Manager",
    "write": 1
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Material User"
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Material Manager"
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Accounts User"
-  }, 
+  },
   {
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
    "role": "Accounts Manager"
   }
- ], 
- "search_fields": "customer_name,customer_group,territory", 
+ ],
+ "search_fields": "customer_name,customer_group,territory",
  "title_field": "customer_name"
-}
\ No newline at end of file
+}
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 362542e..a43b44d 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -12,6 +12,8 @@
 from erpnext.accounts.party import create_party_account
 
 class Customer(TransactionBase):
+	def get_feed(self):
+		return self.customer_name
 
 	def autoname(self):
 		cust_master_name = frappe.defaults.get_global_default('cust_master_name')
diff --git a/erpnext/selling/doctype/lead/get_leads.py b/erpnext/selling/doctype/lead/get_leads.py
deleted file mode 100644
index b765db6..0000000
--- a/erpnext/selling/doctype/lead/get_leads.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright (c) 2013, Web Notes 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
-from frappe.utils.email_lib.receive import POP3Mailbox
-from frappe.core.doctype.communication.communication import _make
-
-def add_sales_communication(subject, content, sender, real_name, mail=None, 
-	status="Open", date=None):
-	lead_name = frappe.db.get_value("Lead", {"email_id": sender})
-	contact_name = frappe.db.get_value("Contact", {"email_id": sender})
-
-	if not (lead_name or contact_name):
-		# none, create a new Lead
-		lead = frappe.get_doc({
-			"doctype":"Lead",
-			"lead_name": real_name or sender,
-			"email_id": sender,
-			"status": status,
-			"source": "Email"
-		})
-		lead.ignore_permissions = True
-		lead.ignore_mandatory = True
-		lead.insert()
-		lead_name = lead.name
-
-	parent_doctype = "Contact" if contact_name else "Lead"
-	parent_name = contact_name or lead_name
-
-	message = _make(content=content, sender=sender, subject=subject,
-		doctype = parent_doctype, name = parent_name, date=date, sent_or_received="Received")
-	
-	if mail:
-		# save attachments to parent if from mail
-		doc = frappe.get_doc(parent_doctype, parent_name)
-		mail.save_attachments_in_doc(doc)
-
-class SalesMailbox(POP3Mailbox):	
-	def setup(self, args=None):
-		self.settings = args or frappe.get_doc("Sales Email Settings", "Sales Email Settings")
-		
-	def process_message(self, mail):
-		if mail.from_email == self.settings.email_id:
-			return
-		
-		add_sales_communication(mail.subject, mail.content, mail.from_email, 
-			mail.from_real_name, mail=mail, date=mail.date)
-
-def get_leads():
-	if cint(frappe.db.get_value('Sales Email Settings', None, 'extract_emails')):
-		SalesMailbox()
\ No newline at end of file
diff --git a/erpnext/selling/doctype/lead/lead.js b/erpnext/selling/doctype/lead/lead.js
index ca6d007..75f3add 100644
--- a/erpnext/selling/doctype/lead/lead.js
+++ b/erpnext/selling/doctype/lead/lead.js
@@ -4,6 +4,8 @@
 {% include 'setup/doctype/contact_control/contact_control.js' %};
 
 frappe.provide("erpnext");
+cur_frm.email_field = "email_id";
+
 erpnext.LeadController = frappe.ui.form.Controller.extend({
 	setup: function() {
 		this.frm.fields_dict.customer.get_query = function(doc, cdt, cdn) {
@@ -34,13 +36,6 @@
 			this.frm.appframe.add_button(__("Send SMS"), this.frm.cscript.send_sms, "icon-mobile-phone");
 		}
 
-		cur_frm.communication_view = new frappe.views.CommunicationList({
-			list: frappe.get_list("Communication", {"parenttype": "Lead", "parent":this.frm.doc.name}),
-			parent: this.frm.fields_dict.communication_html.wrapper,
-			doc: this.frm.doc,
-			recipients: this.frm.doc.email_id
-		});
-
 		if(!this.frm.doc.__islocal) {
 			this.make_address_list();
 		}
diff --git a/erpnext/selling/doctype/lead/lead.json b/erpnext/selling/doctype/lead/lead.json
index 2d3d49c..b78ca4f 100644
--- a/erpnext/selling/doctype/lead/lead.json
+++ b/erpnext/selling/doctype/lead/lead.json
@@ -59,11 +59,6 @@
    "search_index": 1
   }, 
   {
-   "fieldname": "cb6", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0
-  }, 
-  {
    "default": "Lead", 
    "fieldname": "status", 
    "fieldtype": "Select", 
@@ -93,6 +88,12 @@
    "search_index": 0
   }, 
   {
+   "fieldname": "col_break123", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "width": "50%"
+  }, 
+  {
    "depends_on": "eval:doc.source == 'Customer'", 
    "fieldname": "customer", 
    "fieldtype": "Link", 
@@ -116,14 +117,6 @@
    "permlevel": 0
   }, 
   {
-   "fieldname": "communication_history", 
-   "fieldtype": "Section Break", 
-   "label": "Communication", 
-   "options": "icon-comments", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
    "default": "__user", 
    "fieldname": "lead_owner", 
    "fieldtype": "Link", 
@@ -136,12 +129,6 @@
    "search_index": 1
   }, 
   {
-   "fieldname": "col_break123", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "width": "50%"
-  }, 
-  {
    "allow_on_submit": 0, 
    "fieldname": "contact_by", 
    "fieldtype": "Link", 
@@ -171,21 +158,6 @@
    "width": "100px"
   }, 
   {
-   "fieldname": "sec_break123", 
-   "fieldtype": "Section Break", 
-   "options": "Simple", 
-   "permlevel": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "fieldname": "communication_html", 
-   "fieldtype": "HTML", 
-   "label": "Communication HTML", 
-   "oldfieldname": "follow_up", 
-   "oldfieldtype": "Table", 
-   "permlevel": 0
-  }, 
-  {
    "fieldname": "fold", 
    "fieldtype": "Fold", 
    "label": "fold", 
@@ -355,20 +327,11 @@
    "fieldtype": "Check", 
    "label": "Blog Subscriber", 
    "permlevel": 0
-  }, 
-  {
-   "fieldname": "communications", 
-   "fieldtype": "Table", 
-   "hidden": 1, 
-   "label": "Communications", 
-   "options": "Communication", 
-   "permlevel": 0, 
-   "print_hide": 1
   }
  ], 
  "icon": "icon-user", 
  "idx": 1, 
- "modified": "2014-08-12 05:22:18.801092", 
+ "modified": "2014-09-11 18:52:50.397563", 
  "modified_by": "Administrator", 
  "module": "Selling", 
  "name": "Lead", 
@@ -376,6 +339,34 @@
  "permissions": [
   {
    "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "match": "", 
+   "permlevel": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "All", 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 1, 
+   "delete": 0, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Sales User", 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 1, 
    "email": 1, 
@@ -389,7 +380,7 @@
   }, 
   {
    "amend": 0, 
-   "apply_user_permissions": 1, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 0, 
    "email": 1, 
@@ -397,9 +388,35 @@
    "print": 1, 
    "read": 1, 
    "report": 1, 
-   "role": "Sales User", 
+   "role": "System Manager", 
    "submit": 0, 
    "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "match": "", 
+   "permlevel": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Sales Manager", 
+   "submit": 0, 
+   "write": 0
+  }, 
+  {
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "match": "", 
+   "permlevel": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Sales User", 
+   "submit": 0, 
+   "write": 0
   }
  ], 
  "search_fields": "lead_name,lead_owner,status", 
diff --git a/erpnext/selling/doctype/lead/lead.py b/erpnext/selling/doctype/lead/lead.py
index 3c345ef..667a39f 100644
--- a/erpnext/selling/doctype/lead/lead.py
+++ b/erpnext/selling/doctype/lead/lead.py
@@ -11,6 +11,9 @@
 from erpnext.controllers.selling_controller import SellingController
 
 class Lead(SellingController):
+	def get_feed(self):
+		return '{0}: {1}'.format(_(self.status), self.lead_name)
+
 	def onload(self):
 		customer = frappe.db.get_value("Customer", {"lead_name": self.name})
 		self.get("__onload").is_customer = customer
diff --git a/erpnext/selling/doctype/opportunity/opportunity.js b/erpnext/selling/doctype/opportunity/opportunity.js
index af31d39..df84d72 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.js
+++ b/erpnext/selling/doctype/opportunity/opportunity.js
@@ -8,6 +8,8 @@
 
 
 frappe.provide("erpnext.selling");
+cur_frm.email_field = "contact_email";
+
 // TODO commonify this code
 erpnext.selling.Opportunity = frappe.ui.form.Controller.extend({
 	onload: function() {
@@ -26,15 +28,6 @@
 			set_multiple(cdt, cdn, { fiscal_year:sys_defaults.fiscal_year });
 
 
-		if(!this.frm.doc.__islocal) {
-			cur_frm.communication_view = new frappe.views.CommunicationList({
-				list: frappe.get_list("Communication", {"parent": this.frm.doc.name, "parenttype": "Opportunity"}),
-				parent: cur_frm.fields_dict.communication_html.wrapper,
-				doc: this.frm.doc,
-				recipients: this.frm.doc.contact_email
-			});
-		}
-
 		if(this.frm.doc.customer && !this.frm.doc.customer_name) cur_frm.cscript.customer(this.frm.doc);
 
 		this.setup_queries();
diff --git a/erpnext/selling/doctype/opportunity/opportunity.json b/erpnext/selling/doctype/opportunity/opportunity.json
index 513fbc8..270fe77 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.json
+++ b/erpnext/selling/doctype/opportunity/opportunity.json
@@ -29,6 +29,7 @@
   {
    "fieldname": "enquiry_from", 
    "fieldtype": "Select", 
+   "in_list_view": 1, 
    "label": "Opportunity From", 
    "oldfieldname": "enquiry_from", 
    "oldfieldtype": "Select", 
@@ -135,26 +136,6 @@
    "read_only": 0
   }, 
   {
-   "description": "Keep a track of communication related to this enquiry which will help for future reference.", 
-   "fieldname": "communication_history", 
-   "fieldtype": "Section Break", 
-   "label": "Communication History", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-comments", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "allow_on_submit": 1, 
-   "fieldname": "communication_html", 
-   "fieldtype": "HTML", 
-   "label": "Communication HTML", 
-   "oldfieldname": "follow_up", 
-   "oldfieldtype": "Table", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
    "fieldname": "fold", 
    "fieldtype": "Fold", 
    "permlevel": 0
@@ -402,21 +383,12 @@
    "print_hide": 1, 
    "read_only": 1, 
    "width": "150px"
-  }, 
-  {
-   "fieldname": "communications", 
-   "fieldtype": "Table", 
-   "hidden": 1, 
-   "label": "Communications", 
-   "options": "Communication", 
-   "permlevel": 0, 
-   "print_hide": 1
   }
  ], 
  "icon": "icon-info-sign", 
  "idx": 1, 
  "is_submittable": 1, 
- "modified": "2014-08-12 05:21:51.282397", 
+ "modified": "2014-09-11 18:53:14.037512", 
  "modified_by": "Administrator", 
  "module": "Selling", 
  "name": "Opportunity", 
@@ -424,7 +396,6 @@
  "permissions": [
   {
    "amend": 1, 
-   "apply_user_permissions": 1, 
    "cancel": 1, 
    "create": 1, 
    "delete": 1, 
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 8cff8d8..5f25446 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -53,15 +53,6 @@
 				}, "icon-download", "btn-default");
 		}
 
-		if (!doc.__islocal) {
-			cur_frm.communication_view = new frappe.views.CommunicationList({
-				list: frappe.get_list("Communication", {"parent": doc.name, "parenttype": "Quotation"}),
-				parent: cur_frm.fields_dict.communication_html.wrapper,
-				doc: doc,
-				recipients: doc.contact_email
-			});
-		}
-
 		this.toggle_reqd_lead_customer();
 	},
 
diff --git a/erpnext/selling/doctype/quotation/quotation.json b/erpnext/selling/doctype/quotation/quotation.json
index 5d960e9..107abc2 100644
--- a/erpnext/selling/doctype/quotation/quotation.json
+++ b/erpnext/selling/doctype/quotation/quotation.json
@@ -1,925 +1,931 @@
 {
- "allow_import": 1, 
- "autoname": "naming_series:", 
- "creation": "2013-05-24 19:29:08", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Transaction", 
+ "allow_import": 1,
+ "autoname": "naming_series:",
+ "creation": "2013-05-24 19:29:08",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Transaction",
  "fields": [
   {
-   "fieldname": "customer_section", 
-   "fieldtype": "Section Break", 
-   "label": "Customer", 
-   "options": "icon-user", 
+   "fieldname": "customer_section",
+   "fieldtype": "Section Break",
+   "label": "Customer",
+   "options": "icon-user",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "column_break0", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "column_break0",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "naming_series", 
-   "fieldtype": "Select", 
-   "label": "Series", 
-   "no_copy": 1, 
-   "oldfieldname": "naming_series", 
-   "oldfieldtype": "Select", 
-   "options": "QTN-", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "naming_series",
+   "fieldtype": "Select",
+   "label": "Series",
+   "no_copy": 1,
+   "oldfieldname": "naming_series",
+   "oldfieldtype": "Select",
+   "options": "QTN-",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "default": "Customer", 
-   "fieldname": "quotation_to", 
-   "fieldtype": "Select", 
-   "in_filter": 1, 
-   "label": "Quotation To", 
-   "oldfieldname": "quotation_to", 
-   "oldfieldtype": "Select", 
-   "options": "\nLead\nCustomer", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "report_hide": 0, 
+   "default": "Customer",
+   "fieldname": "quotation_to",
+   "fieldtype": "Select",
+   "in_filter": 1,
+   "label": "Quotation To",
+   "oldfieldname": "quotation_to",
+   "oldfieldtype": "Select",
+   "options": "\nLead\nCustomer",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "report_hide": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "depends_on": "eval:doc.quotation_to == \"Customer\"", 
-   "fieldname": "customer", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Customer", 
-   "oldfieldname": "customer", 
-   "oldfieldtype": "Link", 
-   "options": "Customer", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "depends_on": "eval:doc.quotation_to == \"Customer\"",
+   "fieldname": "customer",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Customer",
+   "oldfieldname": "customer",
+   "oldfieldtype": "Link",
+   "options": "Customer",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "search_index": 1
-  }, 
+  },
   {
-   "depends_on": "eval:doc.quotation_to == \"Lead\"", 
-   "fieldname": "lead", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Lead", 
-   "oldfieldname": "lead", 
-   "oldfieldtype": "Link", 
-   "options": "Lead", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "depends_on": "eval:doc.quotation_to == \"Lead\"",
+   "fieldname": "lead",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Lead",
+   "oldfieldname": "lead",
+   "oldfieldtype": "Link",
+   "options": "Lead",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "customer_name", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "in_list_view": 1, 
-   "label": "Customer / Lead Name", 
-   "permlevel": 0, 
+   "fieldname": "customer_name",
+   "fieldtype": "Data",
+   "hidden": 1,
+   "in_list_view": 1,
+   "label": "Customer / Lead Name",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "address_display", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "in_filter": 0, 
-   "label": "Address", 
-   "oldfieldname": "customer_address", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "address_display",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "in_filter": 0,
+   "label": "Address",
+   "oldfieldname": "customer_address",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "contact_display", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "in_filter": 0, 
-   "label": "Contact", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "contact_display",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "in_filter": 0,
+   "label": "Contact",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_mobile", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Mobile No", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "contact_mobile",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Mobile No",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "contact_email", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Contact Email", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "contact_email",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Contact Email",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "column_break1",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "amended_from", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Amended From", 
-   "no_copy": 1, 
-   "oldfieldname": "amended_from", 
-   "oldfieldtype": "Data", 
-   "options": "Quotation", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "amended_from",
+   "fieldtype": "Link",
+   "ignore_user_permissions": 1,
+   "label": "Amended From",
+   "no_copy": 1,
+   "oldfieldname": "amended_from",
+   "oldfieldtype": "Data",
+   "options": "Quotation",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "150px"
-  }, 
+  },
   {
-   "description": "Select the relevant company name if you have multiple companies.", 
-   "fieldname": "company", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Company", 
-   "oldfieldname": "company", 
-   "oldfieldtype": "Link", 
-   "options": "Company", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
+   "description": "Select the relevant company name if you have multiple companies.",
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Company",
+   "oldfieldname": "company",
+   "oldfieldtype": "Link",
+   "options": "Company",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
+   "search_index": 0,
    "width": "150px"
-  }, 
+  },
   {
-   "default": "Today", 
-   "fieldname": "transaction_date", 
-   "fieldtype": "Date", 
-   "in_filter": 1, 
-   "label": "Date", 
-   "no_copy": 1, 
-   "oldfieldname": "transaction_date", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1, 
-   "search_index": 1, 
+   "default": "Today",
+   "fieldname": "transaction_date",
+   "fieldtype": "Date",
+   "in_filter": 1,
+   "label": "Date",
+   "no_copy": 1,
+   "oldfieldname": "transaction_date",
+   "oldfieldtype": "Date",
+   "permlevel": 0,
+   "read_only": 0,
+   "reqd": 1,
+   "search_index": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "default": "Sales", 
-   "fieldname": "order_type", 
-   "fieldtype": "Select", 
-   "in_filter": 1, 
-   "label": "Order Type", 
-   "oldfieldname": "order_type", 
-   "oldfieldtype": "Select", 
-   "options": "\nSales\nMaintenance\nShopping Cart", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "default": "Sales",
+   "fieldname": "order_type",
+   "fieldtype": "Select",
+   "in_filter": 1,
+   "label": "Order Type",
+   "oldfieldname": "order_type",
+   "oldfieldtype": "Select",
+   "options": "\nSales\nMaintenance\nShopping Cart",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "section_break0", 
-   "fieldtype": "Section Break", 
-   "label": "Currency and Price List", 
-   "options": "icon-tag", 
-   "permlevel": 0, 
+   "fieldname": "section_break0",
+   "fieldtype": "Section Break",
+   "label": "Currency and Price List",
+   "options": "icon-tag",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "currency", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Currency", 
-   "oldfieldname": "currency", 
-   "oldfieldtype": "Select", 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
+   "fieldname": "currency",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Currency",
+   "oldfieldname": "currency",
+   "oldfieldtype": "Select",
+   "options": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
+   "search_index": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "description": "Rate at which customer's currency is converted to company's base currency", 
-   "fieldname": "conversion_rate", 
-   "fieldtype": "Float", 
-   "label": "Exchange Rate", 
-   "oldfieldname": "conversion_rate", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "description": "Rate at which customer's currency is converted to company's base currency",
+   "fieldname": "conversion_rate",
+   "fieldtype": "Float",
+   "label": "Exchange Rate",
+   "oldfieldname": "conversion_rate",
+   "oldfieldtype": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "column_break2", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "fieldname": "column_break2",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "selling_price_list", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Price List", 
-   "oldfieldname": "price_list_name", 
-   "oldfieldtype": "Select", 
-   "options": "Price List", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
+   "fieldname": "selling_price_list",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Price List",
+   "oldfieldname": "price_list_name",
+   "oldfieldtype": "Select",
+   "options": "Price List",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
+   "search_index": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "price_list_currency", 
-   "fieldtype": "Link", 
-   "label": "Price List Currency", 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "price_list_currency",
+   "fieldtype": "Link",
+   "label": "Price List Currency",
+   "options": "Currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "reqd": 1
-  }, 
+  },
   {
-   "description": "Rate at which Price list currency is converted to company's base currency", 
-   "fieldname": "plc_conversion_rate", 
-   "fieldtype": "Float", 
-   "label": "Price List Exchange Rate", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "description": "Rate at which Price list currency is converted to company's base currency",
+   "fieldname": "plc_conversion_rate",
+   "fieldtype": "Float",
+   "label": "Price List Exchange Rate",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 1
-  }, 
+  },
   {
-   "fieldname": "ignore_pricing_rule", 
-   "fieldtype": "Check", 
-   "label": "Ignore Pricing Rule", 
-   "no_copy": 1, 
-   "permlevel": 1, 
+   "fieldname": "ignore_pricing_rule",
+   "fieldtype": "Check",
+   "label": "Ignore Pricing Rule",
+   "no_copy": 1,
+   "permlevel": 1,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "items", 
-   "fieldtype": "Section Break", 
-   "label": "Items", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-shopping-cart", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 0, 
+   "fieldname": "items",
+   "fieldtype": "Section Break",
+   "label": "Items",
+   "oldfieldtype": "Section Break",
+   "options": "icon-shopping-cart",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "quotation_details", 
-   "fieldtype": "Table", 
-   "label": "Quotation Items", 
-   "oldfieldname": "quotation_details", 
-   "oldfieldtype": "Table", 
-   "options": "Quotation Item", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "quotation_details",
+   "fieldtype": "Table",
+   "label": "Quotation Items",
+   "oldfieldname": "quotation_details",
+   "oldfieldtype": "Table",
+   "options": "Quotation Item",
+   "permlevel": 0,
+   "read_only": 0,
+   "reqd": 0,
    "width": "40px"
-  }, 
+  },
   {
-   "fieldname": "sec_break23", 
-   "fieldtype": "Section Break", 
-   "permlevel": 0, 
+   "fieldname": "sec_break23",
+   "fieldtype": "Section Break",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "net_total", 
-   "fieldtype": "Currency", 
-   "label": "Net Total (Company Currency)", 
-   "no_copy": 0, 
-   "oldfieldname": "net_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "net_total",
+   "fieldtype": "Currency",
+   "label": "Net Total (Company Currency)",
+   "no_copy": 0,
+   "oldfieldname": "net_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 0,
    "width": "100px"
-  }, 
+  },
   {
-   "fieldname": "column_break_28", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_28",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "net_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Net Total", 
-   "options": "currency", 
-   "permlevel": 0, 
+   "fieldname": "net_total_export",
+   "fieldtype": "Currency",
+   "label": "Net Total",
+   "options": "currency",
+   "permlevel": 0,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "taxes", 
-   "fieldtype": "Section Break", 
-   "label": "Taxes and Charges", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
+   "fieldname": "taxes",
+   "fieldtype": "Section Break",
+   "label": "Taxes and Charges",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "taxes_and_charges", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "label": "Taxes and Charges", 
-   "oldfieldname": "charge", 
-   "oldfieldtype": "Link", 
-   "options": "Sales Taxes and Charges Master", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "taxes_and_charges",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "label": "Taxes and Charges",
+   "oldfieldname": "charge",
+   "oldfieldtype": "Link",
+   "options": "Sales Taxes and Charges Master",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break_34", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_34",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "shipping_rule", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "label": "Shipping Rule", 
-   "oldfieldtype": "Button", 
-   "options": "Shipping Rule", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "shipping_rule",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "label": "Shipping Rule",
+   "oldfieldtype": "Button",
+   "options": "Shipping Rule",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "section_break_36", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_36",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges", 
-   "fieldtype": "Table", 
-   "label": "Sales Taxes and Charges", 
-   "oldfieldname": "other_charges", 
-   "oldfieldtype": "Table", 
-   "options": "Sales Taxes and Charges", 
-   "permlevel": 0, 
+   "fieldname": "other_charges",
+   "fieldtype": "Table",
+   "label": "Sales Taxes and Charges",
+   "oldfieldname": "other_charges",
+   "oldfieldtype": "Table",
+   "options": "Sales Taxes and Charges",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_calculation", 
-   "fieldtype": "HTML", 
-   "label": "Taxes and Charges Calculation", 
-   "oldfieldtype": "HTML", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_calculation",
+   "fieldtype": "HTML",
+   "label": "Taxes and Charges Calculation",
+   "oldfieldtype": "HTML",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "section_break_39", 
-   "fieldtype": "Section Break", 
+   "fieldname": "section_break_39",
+   "fieldtype": "Section Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_total", 
-   "fieldtype": "Currency", 
-   "label": "Taxes and Charges Total (Company Currency)", 
-   "oldfieldname": "other_charges_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_total",
+   "fieldtype": "Currency",
+   "label": "Taxes and Charges Total (Company Currency)",
+   "oldfieldname": "other_charges_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "column_break_42", 
-   "fieldtype": "Column Break", 
+   "fieldname": "column_break_42",
+   "fieldtype": "Column Break",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "other_charges_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Taxes and Charges Total", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "other_charges_total_export",
+   "fieldtype": "Currency",
+   "label": "Taxes and Charges Total",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "fieldname": "discount_amount", 
-   "fieldtype": "Currency", 
-   "label": "Discount Amount", 
-   "options": "Company:company:default_currency", 
+   "fieldname": "discount_amount",
+   "fieldtype": "Currency",
+   "label": "Discount Amount",
+   "options": "Company:company:default_currency",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "totals", 
-   "fieldtype": "Section Break", 
-   "label": "Totals", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-money", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "totals",
+   "fieldtype": "Section Break",
+   "label": "Totals",
+   "oldfieldtype": "Section Break",
+   "options": "icon-money",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "grand_total", 
-   "fieldtype": "Currency", 
-   "label": "Grand Total (Company Currency)", 
-   "no_copy": 0, 
-   "oldfieldname": "grand_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "grand_total",
+   "fieldtype": "Currency",
+   "label": "Grand Total (Company Currency)",
+   "no_copy": 0,
+   "oldfieldname": "grand_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 0,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "rounded_total", 
-   "fieldtype": "Currency", 
-   "label": "Rounded Total (Company Currency)", 
-   "no_copy": 0, 
-   "oldfieldname": "rounded_total", 
-   "oldfieldtype": "Currency", 
-   "options": "Company:company:default_currency", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "rounded_total",
+   "fieldtype": "Currency",
+   "label": "Rounded Total (Company Currency)",
+   "no_copy": 0,
+   "oldfieldname": "rounded_total",
+   "oldfieldtype": "Currency",
+   "options": "Company:company:default_currency",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "200px"
-  }, 
+  },
   {
-   "description": "In Words will be visible once you save the Quotation.", 
-   "fieldname": "in_words", 
-   "fieldtype": "Data", 
-   "label": "In Words (Company Currency)", 
-   "no_copy": 0, 
-   "oldfieldname": "in_words", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "description": "In Words will be visible once you save the Quotation.",
+   "fieldname": "in_words",
+   "fieldtype": "Data",
+   "label": "In Words (Company Currency)",
+   "no_copy": 0,
+   "oldfieldname": "in_words",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "column_break3", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "column_break3",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "grand_total_export", 
-   "fieldtype": "Currency", 
-   "in_list_view": 1, 
-   "label": "Grand Total", 
-   "no_copy": 0, 
-   "oldfieldname": "grand_total_export", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "grand_total_export",
+   "fieldtype": "Currency",
+   "in_list_view": 1,
+   "label": "Grand Total",
+   "no_copy": 0,
+   "oldfieldname": "grand_total_export",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
+   "reqd": 0,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "rounded_total_export", 
-   "fieldtype": "Currency", 
-   "label": "Rounded Total", 
-   "no_copy": 0, 
-   "oldfieldname": "rounded_total_export", 
-   "oldfieldtype": "Currency", 
-   "options": "currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
-   "reqd": 0, 
+   "fieldname": "rounded_total_export",
+   "fieldtype": "Currency",
+   "label": "Rounded Total",
+   "no_copy": 0,
+   "oldfieldname": "rounded_total_export",
+   "oldfieldtype": "Currency",
+   "options": "currency",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
+   "reqd": 0,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "in_words_export", 
-   "fieldtype": "Data", 
-   "label": "In Words", 
-   "no_copy": 0, 
-   "oldfieldname": "in_words_export", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "read_only": 1, 
+   "fieldname": "in_words_export",
+   "fieldtype": "Data",
+   "label": "In Words",
+   "no_copy": 0,
+   "oldfieldname": "in_words_export",
+   "oldfieldtype": "Data",
+   "permlevel": 0,
+   "print_hide": 0,
+   "read_only": 1,
    "width": "200px"
-  }, 
+  },
   {
-   "fieldname": "fold", 
-   "fieldtype": "Fold", 
-   "label": "Fold", 
+   "fieldname": "fold",
+   "fieldtype": "Fold",
+   "label": "Fold",
    "permlevel": 0
-  }, 
+  },
   {
-   "fieldname": "terms_section_break", 
-   "fieldtype": "Section Break", 
-   "label": "Terms and Conditions", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-legal", 
-   "permlevel": 0, 
-   "print_hide": 0, 
+   "fieldname": "terms_section_break",
+   "fieldtype": "Section Break",
+   "label": "Terms and Conditions",
+   "oldfieldtype": "Section Break",
+   "options": "icon-legal",
+   "permlevel": 0,
+   "print_hide": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "tc_name", 
-   "fieldtype": "Link", 
-   "label": "Terms", 
-   "oldfieldname": "tc_name", 
-   "oldfieldtype": "Link", 
-   "options": "Terms and Conditions", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "tc_name",
+   "fieldtype": "Link",
+   "label": "Terms",
+   "oldfieldname": "tc_name",
+   "oldfieldtype": "Link",
+   "options": "Terms and Conditions",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 1
-  }, 
+  },
   {
-   "fieldname": "terms", 
-   "fieldtype": "Text Editor", 
-   "label": "Term Details", 
-   "oldfieldname": "terms", 
-   "oldfieldtype": "Text Editor", 
-   "permlevel": 0, 
+   "fieldname": "terms",
+   "fieldtype": "Text Editor",
+   "label": "Term Details",
+   "oldfieldname": "terms",
+   "oldfieldtype": "Text Editor",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "contact_section", 
-   "fieldtype": "Section Break", 
-   "label": "Contact Info", 
-   "options": "icon-bullhorn", 
-   "permlevel": 0, 
+   "fieldname": "contact_section",
+   "fieldtype": "Section Break",
+   "label": "Contact Info",
+   "options": "icon-bullhorn",
+   "permlevel": 0,
    "read_only": 0
-  }, 
+  },
   {
-   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>", 
-   "fieldname": "territory", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Territory", 
-   "options": "Territory", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "description": "<a href=\"#Sales Browser/Territory\">Add / Edit</a>",
+   "fieldname": "territory",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Territory",
+   "options": "Territory",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "depends_on": "customer", 
-   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>", 
-   "fieldname": "customer_group", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Customer Group", 
-   "oldfieldname": "customer_group", 
-   "oldfieldtype": "Link", 
-   "options": "Customer Group", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 0, 
+   "depends_on": "customer",
+   "description": "<a href=\"#Sales Browser/Customer Group\">Add / Edit</a>",
+   "fieldname": "customer_group",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Customer Group",
+   "oldfieldname": "customer_group",
+   "oldfieldtype": "Link",
+   "options": "Customer Group",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 0,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "shipping_address_name", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "label": "Shipping Address", 
-   "options": "Address", 
-   "permlevel": 0, 
+   "fieldname": "shipping_address_name",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "label": "Shipping Address",
+   "options": "Address",
+   "permlevel": 0,
    "print_hide": 1
-  }, 
+  },
   {
-   "fieldname": "shipping_address", 
-   "fieldtype": "Small Text", 
-   "hidden": 1, 
-   "label": "Shipping Address", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "shipping_address",
+   "fieldtype": "Small Text",
+   "hidden": 1,
+   "label": "Shipping Address",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 1
-  }, 
+  },
   {
-   "depends_on": "customer", 
-   "fieldname": "col_break98", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
+   "depends_on": "customer",
+   "fieldname": "col_break98",
+   "fieldtype": "Column Break",
+   "permlevel": 0,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "fieldname": "customer_address", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Customer Address", 
-   "options": "Address", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "customer_address",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Customer Address",
+   "options": "Address",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "depends_on": "eval:doc.customer", 
-   "fieldname": "contact_person", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "in_filter": 1, 
-   "label": "Contact Person", 
-   "oldfieldname": "contact_person", 
-   "oldfieldtype": "Link", 
-   "options": "Contact", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "depends_on": "eval:doc.customer",
+   "fieldname": "contact_person",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "in_filter": 1,
+   "label": "Contact Person",
+   "oldfieldname": "contact_person",
+   "oldfieldtype": "Link",
+   "options": "Contact",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "reqd": 0
-  }, 
+  },
   {
-   "fieldname": "more_info", 
-   "fieldtype": "Section Break", 
-   "label": "More Info", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-file-text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "fieldname": "more_info",
+   "fieldtype": "Section Break",
+   "label": "More Info",
+   "oldfieldtype": "Section Break",
+   "options": "icon-file-text",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "campaign", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "label": "Campaign", 
-   "no_copy": 0, 
-   "oldfieldname": "campaign", 
-   "oldfieldtype": "Link", 
-   "options": "Campaign", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "campaign",
+   "fieldtype": "Link",
+   "hidden": 0,
+   "label": "Campaign",
+   "no_copy": 0,
+   "oldfieldname": "campaign",
+   "oldfieldtype": "Link",
+   "options": "Campaign",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 0
-  }, 
+  },
   {
-   "fieldname": "source", 
-   "fieldtype": "Select", 
-   "hidden": 0, 
-   "label": "Source", 
-   "no_copy": 0, 
-   "oldfieldname": "source", 
-   "oldfieldtype": "Select", 
-   "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "source",
+   "fieldtype": "Select",
+   "hidden": 0,
+   "label": "Source",
+   "no_copy": 0,
+   "oldfieldname": "source",
+   "oldfieldtype": "Select",
+   "options": "\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 0
-  }, 
+  },
   {
-   "allow_on_submit": 0, 
-   "default": "Draft", 
-   "fieldname": "status", 
-   "fieldtype": "Select", 
-   "in_filter": 1, 
-   "in_list_view": 1, 
-   "label": "Status", 
-   "no_copy": 1, 
-   "oldfieldname": "status", 
-   "oldfieldtype": "Select", 
-   "options": "Draft\nSubmitted\nOrdered\nLost\nCancelled", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
-   "reqd": 1, 
+   "allow_on_submit": 0,
+   "default": "Draft",
+   "fieldname": "status",
+   "fieldtype": "Select",
+   "in_filter": 1,
+   "in_list_view": 1,
+   "label": "Status",
+   "no_copy": 1,
+   "oldfieldname": "status",
+   "oldfieldtype": "Select",
+   "options": "Draft\nSubmitted\nOrdered\nLost\nCancelled",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "order_lost_reason", 
-   "fieldtype": "Small Text", 
-   "label": "Quotation Lost Reason", 
-   "no_copy": 1, 
-   "oldfieldname": "order_lost_reason", 
-   "oldfieldtype": "Small Text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "fieldname": "order_lost_reason",
+   "fieldtype": "Small Text",
+   "label": "Quotation Lost Reason",
+   "no_copy": 1,
+   "oldfieldname": "order_lost_reason",
+   "oldfieldtype": "Small Text",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "fieldname": "column_break4", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "fieldname": "column_break4",
+   "fieldtype": "Column Break",
+   "oldfieldtype": "Column Break",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "width": "50%"
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "letter_head", 
-   "fieldtype": "Link", 
-   "label": "Letter Head", 
-   "oldfieldname": "letter_head", 
-   "oldfieldtype": "Select", 
-   "options": "Letter Head", 
-   "permlevel": 0, 
-   "print_hide": 1, 
+   "allow_on_submit": 1,
+   "fieldname": "letter_head",
+   "fieldtype": "Link",
+   "label": "Letter Head",
+   "oldfieldname": "letter_head",
+   "oldfieldtype": "Select",
+   "options": "Letter Head",
+   "permlevel": 0,
+   "print_hide": 1,
    "read_only": 0
-  }, 
+  },
   {
-   "allow_on_submit": 1, 
-   "fieldname": "select_print_heading", 
-   "fieldtype": "Link", 
-   "label": "Print Heading", 
-   "no_copy": 1, 
-   "oldfieldname": "select_print_heading", 
-   "oldfieldtype": "Link", 
-   "options": "Print Heading", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
+   "allow_on_submit": 1,
+   "fieldname": "select_print_heading",
+   "fieldtype": "Link",
+   "label": "Print Heading",
+   "no_copy": 1,
+   "oldfieldname": "select_print_heading",
+   "oldfieldtype": "Link",
+   "options": "Print Heading",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
    "report_hide": 1
-  }, 
+  },
   {
-   "fieldname": "fiscal_year", 
-   "fieldtype": "Link", 
-   "in_filter": 1, 
-   "label": "Fiscal Year", 
-   "oldfieldname": "fiscal_year", 
-   "oldfieldtype": "Select", 
-   "options": "Fiscal Year", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "reqd": 1, 
+   "fieldname": "fiscal_year",
+   "fieldtype": "Link",
+   "in_filter": 1,
+   "label": "Fiscal Year",
+   "oldfieldname": "fiscal_year",
+   "oldfieldtype": "Select",
+   "options": "Fiscal Year",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 0,
+   "reqd": 1,
    "search_index": 0
-  }, 
+  },
   {
-   "fieldname": "enq_det", 
-   "fieldtype": "Text", 
-   "hidden": 1, 
-   "label": "Opportunity Item", 
-   "no_copy": 0, 
-   "oldfieldname": "enq_det", 
-   "oldfieldtype": "Text", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 1, 
+   "fieldname": "enq_det",
+   "fieldtype": "Text",
+   "hidden": 1,
+   "label": "Opportunity Item",
+   "no_copy": 0,
+   "oldfieldname": "enq_det",
+   "oldfieldtype": "Text",
+   "permlevel": 0,
+   "print_hide": 1,
+   "read_only": 1,
    "report_hide": 0
-  }, 
-  {
-   "fieldname": "communication_history", 
-   "fieldtype": "Section Break", 
-   "label": "Communication History", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-comments", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0
-  }, 
-  {
-   "allow_on_submit": 1, 
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "communication_html", 
-   "fieldtype": "HTML", 
-   "label": "Communication HTML", 
-   "oldfieldname": "follow_up", 
-   "oldfieldtype": "Table", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "read_only": 0, 
-   "width": "40px"
-  }, 
-  {
-   "fieldname": "communications", 
-   "fieldtype": "Table", 
-   "hidden": 1, 
-   "label": "Communications", 
-   "options": "Communication", 
-   "permlevel": 0, 
-   "print_hide": 1
   }
- ], 
- "hide_toolbar": 0, 
- "icon": "icon-shopping-cart", 
- "idx": 1, 
- "is_submittable": 1, 
- "max_attachments": 1, 
- "modified": "2014-09-09 05:35:33.413559", 
- "modified_by": "Administrator", 
- "module": "Selling", 
- "name": "Quotation", 
- "owner": "Administrator", 
+ ],
+ "hide_toolbar": 0,
+ "icon": "icon-shopping-cart",
+ "idx": 1,
+ "is_submittable": 1,
+ "max_attachments": 1,
+ "modified": "2014-09-11 18:53:08.594908",
+ "modified_by": "Administrator",
+ "module": "Selling",
+ "name": "Quotation",
+ "owner": "Administrator",
  "permissions": [
   {
-   "amend": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales Manager", 
-   "submit": 1, 
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales User",
+   "submit": 1,
    "write": 1
-  }, 
+  },
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales User", 
-   "submit": 1, 
-   "write": 1
-  }, 
-  {
-   "amend": 0, 
-   "apply_user_permissions": 1, 
-   "cancel": 0, 
-   "create": 0, 
-   "delete": 0, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Customer", 
-   "submit": 0, 
+   "amend": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "match": "",
+   "permlevel": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales User",
+   "submit": 0,
    "write": 0
-  }, 
+  },
   {
-   "amend": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Maintenance Manager", 
-   "submit": 1, 
-   "write": 1
-  }, 
+   "cancel": 0,
+   "delete": 0,
+   "email": 1,
+   "match": "",
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Customer"
+  },
   {
-   "amend": 1, 
-   "apply_user_permissions": 1, 
-   "cancel": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Maintenance User", 
-   "submit": 1, 
-   "write": 1
-  }, 
+   "amend": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "match": "",
+   "permlevel": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales Manager",
+   "submit": 0,
+   "write": 0
+  },
   {
-   "permlevel": 1, 
-   "read": 1, 
-   "role": "Sales Manager", 
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Sales Manager",
+   "submit": 1,
    "write": 1
+  },
+  {
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Maintenance Manager",
+   "submit": 1,
+   "write": 1
+  },
+  {
+   "amend": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "match": "",
+   "permlevel": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Maintenance Manager",
+   "submit": 0
+  },
+  {
+   "amend": 1,
+   "cancel": 1,
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "permlevel": 0,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Maintenance User",
+   "submit": 1,
+   "write": 1
+  },
+  {
+   "amend": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "match": "",
+   "permlevel": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Maintenance User",
+   "submit": 0
   }
- ], 
- "read_only_onload": 1, 
- "search_fields": "status,transaction_date,customer,lead,order_type", 
- "sort_field": "modified", 
+ ],
+ "read_only_onload": 1,
+ "search_fields": "status,transaction_date,customer,lead,order_type",
+ "sort_field": "modified",
  "sort_order": "DESC"
-}
\ No newline at end of file
+}
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 66e935a..a5460fc 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -13,6 +13,8 @@
 
 {% include "public/js/controllers/accounts.js" %}
 
+cur_frm.email_field = "contact_email";
+
 erpnext.selling.SellingController = erpnext.TransactionController.extend({
 	onload: function() {
 		this._super();
@@ -591,7 +593,7 @@
 		method:'erpnext.projects.doctype.project.project.get_cost_center_name' ,
 		args: {	project_name: frm.doc.project_name	},
 		callback: function(r, rt) {
-			if(!r.exc) { 
+			if(!r.exc) {
 				$.each(frm.doc[cur_frm.cscript.fname] || [], function(i, row) {
 					frappe.model.set_value(row.doctype, row.name, "cost_center", r.message);
 					msgprint(__("Cost Center For Item with Item Code '"+row.item_name+"' has been Changed to "+ r.message));
diff --git a/erpnext/setup/doctype/backup_manager/backup_manager.js b/erpnext/setup/doctype/backup_manager/backup_manager.js
index ee2b1a7..03c6bf9 100644
--- a/erpnext/setup/doctype/backup_manager/backup_manager.js
+++ b/erpnext/setup/doctype/backup_manager/backup_manager.js
@@ -4,17 +4,17 @@
 $.extend(cur_frm.cscript, {
 	refresh: function() {
 		cur_frm.disable_save();
-		
-		if(!(cint(cur_frm.doc.dropbox_access_allowed) || 
+
+		if(!(cint(cur_frm.doc.dropbox_access_allowed) ||
 			cint(cur_frm.doc.gdrive_access_allowed))) {
 				cur_frm.set_intro(__("You can start by selecting backup frequency and granting access for sync"));
 		} else {
 			var services = {
-				"dropbox": __("Dropbox"),
-				"gdrive": __("Google Drive")
+				"dropbox": __("Dropbox")
+				// "gdrive": __("Google Drive")
 			}
 			var active_services = [];
-			
+
 			$.each(services, function(service, label) {
 				var access_allowed = cint(cur_frm.doc[service + "_access_allowed"]);
 				var frequency = cur_frm.doc["upload_backups_to_" + service];
@@ -22,27 +22,27 @@
 					active_services.push(label + " [" + frequency + "]");
 				}
 			});
-			
+
 			if(active_services.length > 0) {
-				cur_frm.set_intro(__("Backups will be uploaded to") + ": " + 
+				cur_frm.set_intro(__("Backups will be uploaded to") + ": " +
 					frappe.utils.comma_and(active_services));
 			} else {
 				cur_frm.set_intro("");
 			}
 		}
-		
+
 	},
-	
+
 	validate_send_notifications_to: function() {
 		if(!cur_frm.doc.send_notifications_to) {
-			msgprint(__("Please specify") + ": " + 
+			msgprint(__("Please specify") + ": " +
 				__(frappe.meta.get_label(cur_frm.doctype, "send_notifications_to")));
 			return false;
 		}
-		
+
 		return true;
 	},
-	
+
 	allow_dropbox_access: function() {
 		if(cur_frm.cscript.validate_send_notifications_to()) {
 			return frappe.call({
@@ -59,7 +59,7 @@
 			});
 		}
 	},
-	
+
 	allow_gdrive_access: function() {
 		if(cur_frm.cscript.validate_send_notifications_to()) {
 			return frappe.call({
@@ -72,7 +72,7 @@
 			});
 		}
 	},
-	
+
 	validate_gdrive: function() {
 		return frappe.call({
 			method: "erpnext.setup.doctype.backup_manager.backup_googledrive.gdrive_callback",
@@ -81,11 +81,11 @@
 			},
 		});
 	},
-	
+
 	upload_backups_to_dropbox: function() {
 		cur_frm.save();
 	},
-	
+
 	// upload_backups_to_gdrive: function() {
 	// 	cur_frm.save();
 	// },
diff --git a/erpnext/setup/doctype/backup_manager/backup_manager.py b/erpnext/setup/doctype/backup_manager/backup_manager.py
index ff4e115..2695a46 100644
--- a/erpnext/setup/doctype/backup_manager/backup_manager.py
+++ b/erpnext/setup/doctype/backup_manager/backup_manager.py
@@ -21,10 +21,10 @@
 def take_backups_if(freq):
 	if frappe.db.get_value("Backup Manager", None, "upload_backups_to_dropbox")==freq:
 		take_backups_dropbox()
-		
+
 	# if frappe.db.get_value("Backup Manager", None, "upload_backups_to_gdrive")==freq:
 	# 	take_backups_gdrive()
-	
+
 @frappe.whitelist()
 def take_backups_dropbox():
 	did_not_upload, error_log = [], []
@@ -32,7 +32,7 @@
 		from erpnext.setup.doctype.backup_manager.backup_dropbox import backup_to_dropbox
 		did_not_upload, error_log = backup_to_dropbox()
 		if did_not_upload: raise Exception
-		
+
 		send_email(True, "Dropbox")
 	except Exception:
 		file_and_error = [" - ".join(f) for f in zip(did_not_upload, error_log)]
@@ -40,7 +40,7 @@
 		frappe.errprint(error_message)
 		send_email(False, "Dropbox", error_message)
 
-#backup to gdrive 
+#backup to gdrive
 @frappe.whitelist()
 def take_backups_gdrive():
 	did_not_upload, error_log = [], []
@@ -48,7 +48,7 @@
 		from erpnext.setup.doctype.backup_manager.backup_googledrive import backup_to_gdrive
 		did_not_upload, error_log = backup_to_gdrive()
 		if did_not_upload: raise Exception
-		
+
 		send_email(True, "Google Drive")
 	except Exception:
 		file_and_error = [" - ".join(f) for f in zip(did_not_upload, error_log)]
@@ -57,10 +57,9 @@
 		send_email(False, "Google Drive", error_message)
 
 def send_email(success, service_name, error_status=None):
-	from frappe.utils.email_lib import sendmail
 	if success:
 		subject = "Backup Upload Successful"
-		message ="""<h3>Backup Uploaded Successfully</h3><p>Hi there, this is just to inform you 
+		message ="""<h3>Backup Uploaded Successfully</h3><p>Hi there, this is just to inform you
 		that your backup was successfully uploaded to your %s account. So relax!</p>
 		""" % service_name
 
@@ -71,9 +70,9 @@
 		<p>Error message: %s</p>
 		<p>Please contact your system manager for more information.</p>
 		""" % (service_name, error_status)
-	
+
 	if not frappe.db:
 		frappe.connect()
-	
+
 	recipients = frappe.db.get_value("Backup Manager", None, "send_notifications_to").split(",")
-	sendmail(recipients, subject=subject, msg=message)
+	frappe.sendmail(recipients=recipients, subject=subject, msg=message)
diff --git a/erpnext/setup/doctype/country/README.md b/erpnext/setup/doctype/country/README.md
deleted file mode 100644
index 0e3f46c..0000000
--- a/erpnext/setup/doctype/country/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Country Master.
\ No newline at end of file
diff --git a/erpnext/setup/doctype/country/__init__.py b/erpnext/setup/doctype/country/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/setup/doctype/country/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/setup/doctype/country/country.json b/erpnext/setup/doctype/country/country.json
deleted file mode 100644
index 1798ca1..0000000
--- a/erpnext/setup/doctype/country/country.json
+++ /dev/null
@@ -1,107 +0,0 @@
-{
- "allow_import": 1, 
- "autoname": "field:country_name", 
- "creation": "2013-01-19 10:23:30", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Master", 
- "fields": [
-  {
-   "fieldname": "country_name", 
-   "fieldtype": "Data", 
-   "in_list_view": 1, 
-   "label": "Country Name", 
-   "oldfieldname": "country_name", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "reqd": 1
-  }, 
-  {
-   "fieldname": "date_format", 
-   "fieldtype": "Data", 
-   "in_list_view": 1, 
-   "label": "Date Format", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "time_zones", 
-   "fieldtype": "Text", 
-   "in_list_view": 1, 
-   "label": "Time Zones", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "code", 
-   "fieldtype": "Data", 
-   "in_list_view": 1, 
-   "label": "Code", 
-   "permlevel": 0
-  }
- ], 
- "icon": "icon-globe", 
- "idx": 1, 
- "in_create": 0, 
- "modified": "2014-05-27 03:49:08.984710", 
- "modified_by": "Administrator", 
- "module": "Setup", 
- "name": "Country", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "create": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Sales Master Manager", 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "create": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Purchase Master Manager", 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "apply_user_permissions": 1, 
-   "create": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "HR User", 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "create": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "HR Manager", 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "apply_user_permissions": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "All"
-  }
- ], 
- "read_only": 0
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/country/country.py b/erpnext/setup/doctype/country/country.py
deleted file mode 100644
index 5e16f51..0000000
--- a/erpnext/setup/doctype/country/country.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-from frappe.model.document import Document
-
-class Country(Document):
-	pass
\ No newline at end of file
diff --git a/erpnext/setup/doctype/country/test_country.py b/erpnext/setup/doctype/country/test_country.py
deleted file mode 100644
index b261066..0000000
--- a/erpnext/setup/doctype/country/test_country.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-test_records = frappe.get_test_records('Country')
\ No newline at end of file
diff --git a/erpnext/setup/doctype/country/test_records.json b/erpnext/setup/doctype/country/test_records.json
deleted file mode 100644
index 5a7c8a5..0000000
--- a/erpnext/setup/doctype/country/test_records.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- {
-  "country_name": "_Test Country", 
-  "doctype": "Country"
- }
-]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/currency/README.md b/erpnext/setup/doctype/currency/README.md
deleted file mode 100644
index 3e1558e..0000000
--- a/erpnext/setup/doctype/currency/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Currency Master with details about abbreviation, symbol etc.
\ No newline at end of file
diff --git a/erpnext/setup/doctype/currency/__init__.py b/erpnext/setup/doctype/currency/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/setup/doctype/currency/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/setup/doctype/currency/currency.js b/erpnext/setup/doctype/currency/currency.js
deleted file mode 100644
index 79343e9..0000000
--- a/erpnext/setup/doctype/currency/currency.js
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-cur_frm.cscript.refresh = function(doc) {
-	cur_frm.set_intro("");
-	if(!cur_frm.doc.enabled) {
-		cur_frm.set_intro(__("This Currency is disabled. Enable to use in transactions"))
-	}
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/currency/currency.json b/erpnext/setup/doctype/currency/currency.json
deleted file mode 100644
index ee7be19..0000000
--- a/erpnext/setup/doctype/currency/currency.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "autoname": "field:currency_name",
- "creation": "2013-01-28 10:06:02",
- "description": "**Currency** Master",
- "docstatus": 0,
- "doctype": "DocType",
- "fields": [
-  {
-   "fieldname": "currency_name",
-   "fieldtype": "Data",
-   "label": "Currency Name",
-   "oldfieldname": "currency_name",
-   "oldfieldtype": "Data",
-   "permlevel": 0,
-   "reqd": 1
-  },
-  {
-   "fieldname": "enabled",
-   "fieldtype": "Check",
-   "in_list_view": 1,
-   "label": "Enabled",
-   "permlevel": 0
-  },
-  {
-   "description": "Sub-currency. For e.g. \"Cent\"",
-   "fieldname": "fraction",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Fraction",
-   "permlevel": 0
-  },
-  {
-   "description": "1 Currency = [?] Fraction\nFor e.g. 1 USD = 100 Cent",
-   "fieldname": "fraction_units",
-   "fieldtype": "Int",
-   "in_list_view": 1,
-   "label": "Fraction Units",
-   "permlevel": 0
-  },
-  {
-   "description": "A symbol for this currency. For e.g. $",
-   "fieldname": "symbol",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Symbol",
-   "permlevel": 0
-  },
-  {
-   "description": "How should this currency be formatted? If not set, will use system defaults",
-   "fieldname": "number_format",
-   "fieldtype": "Select",
-   "in_list_view": 1,
-   "label": "Number Format",
-   "options": "\n#,###.##\n#.###,##\n# ###.##\n# ###,##\n#'###.##\n#, ###.##\n#,##,###.##\n#,###.###\n#.###\n#,###",
-   "permlevel": 0
-  }
- ],
- "icon": "icon-bitcoin",
- "idx": 1,
- "in_create": 0,
- "modified": "2014-06-18 03:49:09.038451",
- "modified_by": "Administrator",
- "module": "Setup",
- "name": "Currency",
- "owner": "Administrator",
- "permissions": [
-  {
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts Manager",
-   "submit": 0,
-   "write": 1
-  },
-  {
-   "amend": 0,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Sales Master Manager",
-   "submit": 0,
-   "write": 1
-  },
-  {
-   "amend": 0,
-   "create": 1,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Purchase Master Manager",
-   "submit": 0,
-   "write": 1
-  },
-  {
-   "apply_user_permissions": 1,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "All"
-  }
- ],
- "read_only": 0
-}
diff --git a/erpnext/setup/doctype/currency/currency.py b/erpnext/setup/doctype/currency/currency.py
deleted file mode 100644
index abfbe19..0000000
--- a/erpnext/setup/doctype/currency/currency.py
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe import throw, _
-
-from frappe.model.document import Document
-
-class Currency(Document):
-	def validate(self):
-		frappe.clear_cache()
-
-def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company):
-	"""common validation for currency and price list currency"""
-
-	company_currency = frappe.db.get_value("Company", company, "default_currency")
-
-	if not conversion_rate:
-		throw(_("{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.").format(
-			conversion_rate_label, currency, company_currency))
diff --git a/erpnext/setup/doctype/currency/test_currency.py b/erpnext/setup/doctype/currency/test_currency.py
deleted file mode 100644
index f0c6cee..0000000
--- a/erpnext/setup/doctype/currency/test_currency.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-# pre loaded
-
-import frappe
-test_records = frappe.get_test_records('Currency')
\ No newline at end of file
diff --git a/erpnext/setup/doctype/currency/test_records.json b/erpnext/setup/doctype/currency/test_records.json
deleted file mode 100644
index 0637a08..0000000
--- a/erpnext/setup/doctype/currency/test_records.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index 16883bf..c84a80b 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -9,7 +9,6 @@
 from frappe.utils.dateutils import datetime_in_user_format
 from datetime import timedelta
 from dateutil.relativedelta import relativedelta
-from frappe.utils.email_lib import sendmail
 from frappe.core.doctype.user.user import STANDARD_USERS
 
 content_sequence = [
@@ -83,10 +82,10 @@
 				msg_for_this_receipient = self.get_msg_html(self.get_user_specific_content(user_id) + \
 					common_msg)
 				if msg_for_this_receipient:
-					sendmail(recipients=user_id,
+					frappe.sendmail(recipients=user_id,
 						subject="[ERPNext] [{frequency} Digest] {name}".format(
 							frequency=self.frequency, name=self.name),
-						msg=msg_for_this_receipient)
+						msg=msg_for_this_receipient, bulk=True)
 
 	def get_digest_msg(self):
 		return self.get_msg_html(self.get_user_specific_content(frappe.session.user) + \
@@ -295,7 +294,7 @@
 			filter_by_company=False)
 
 	def get_calendar_events(self, user_id):
-		from frappe.core.doctype.event.event import get_events
+		from frappe.desk.doctype.event.event import get_events
 		events = get_events(self.future_from_date.strftime("%Y-%m-%d"), self.future_to_date.strftime("%Y-%m-%d"))
 
 		html = ""
diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py
index a8905f1..e67ba444 100644
--- a/erpnext/setup/doctype/global_defaults/global_defaults.py
+++ b/erpnext/setup/doctype/global_defaults/global_defaults.py
@@ -6,7 +6,7 @@
 import frappe
 import frappe.defaults
 from frappe.utils import cint
-from frappe.core.doctype.property_setter.property_setter import make_property_setter
+from frappe.custom.doctype.property_setter.property_setter import make_property_setter
 
 keydict = {
 	# "key in defaults": "key in Global Defaults"
diff --git a/erpnext/setup/doctype/jobs_email_settings/README.md b/erpnext/setup/doctype/jobs_email_settings/README.md
deleted file mode 100644
index 8314c55..0000000
--- a/erpnext/setup/doctype/jobs_email_settings/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Settings to extract job applications via email (POP).
\ No newline at end of file
diff --git a/erpnext/setup/doctype/jobs_email_settings/__init__.py b/erpnext/setup/doctype/jobs_email_settings/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/jobs_email_settings/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.js b/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.js
deleted file mode 100644
index cda8fd6..0000000
--- a/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-// For license information, please see license.txt
-
-cur_frm.cscript = {
-	refresh: function(doc) {
-		cur_frm.set_intro("");
-		if(doc.extract_emails) {
-			cur_frm.set_intro(__("Active: Will extract emails from ") + doc.email_id);
-		} else {
-			cur_frm.set_intro(__("Not Active"));
-		}
-	}
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.json b/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.json
deleted file mode 100644
index e6fec9d..0000000
--- a/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "creation": "2013-01-15 16:50:01.000000", 
- "description": "Email settings for jobs email id \"jobs@example.com\"", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "fields": [
-  {
-   "description": "Settings to extract Job Applicants from a mailbox e.g. \"jobs@example.com\"", 
-   "fieldname": "pop3_mail_settings", 
-   "fieldtype": "Section Break", 
-   "label": "POP3 Mail Settings", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Check to activate", 
-   "fieldname": "extract_emails", 
-   "fieldtype": "Check", 
-   "label": "Extract Emails", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Email Id where a job applicant will email e.g. \"jobs@example.com\"", 
-   "fieldname": "email_id", 
-   "fieldtype": "Data", 
-   "label": "Email Id", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "POP3 server e.g. (pop.gmail.com)", 
-   "fieldname": "host", 
-   "fieldtype": "Data", 
-   "label": "Host", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "use_ssl", 
-   "fieldtype": "Check", 
-   "label": "Use SSL", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "username", 
-   "fieldtype": "Data", 
-   "label": "Username", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "password", 
-   "fieldtype": "Password", 
-   "label": "Password", 
-   "permlevel": 0
-  }
- ], 
- "icon": "icon-cog", 
- "idx": 1, 
- "issingle": 1, 
- "modified": "2013-12-20 19:23:16.000000", 
- "modified_by": "Administrator", 
- "module": "Setup", 
- "name": "Jobs Email Settings", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "create": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "role": "System Manager", 
-   "write": 1
-  }
- ]
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.py b/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.py
deleted file mode 100644
index 5d8bab8..0000000
--- a/erpnext/setup/doctype/jobs_email_settings/jobs_email_settings.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-from frappe.utils import cint
-
-from frappe.model.document import Document
-
-class JobsEmailSettings(Document):
-
-	def validate(self):
-		if cint(self.extract_emails) and not (self.email_id and self.host and \
-			self.username and self.password):
-
-			frappe.throw(_("""Host, Email and Password required if emails are to be pulled"""))
diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py
index 09a019c..56be006 100644
--- a/erpnext/setup/doctype/naming_series/naming_series.py
+++ b/erpnext/setup/doctype/naming_series/naming_series.py
@@ -12,15 +12,27 @@
 class NamingSeries(Document):
 
 	def get_transactions(self, arg=None):
+		doctypes = list(set(frappe.db.sql_list("""select parent
+				from `tabDocField` where fieldname='naming_series'""")
+			+ frappe.db.sql_list("""select dt from `tabCustom Field`
+				where fieldname='naming_series'""")))
+
+		prefixes = ""
+		for d in doctypes:
+			print d
+			try:
+				options = self.get_options(d)
+			except frappe.DoesNotExistError:
+				continue
+
+			prefixes = prefixes + "\n" + options
+
+		prefixes.replace("\n\n", "\n")
+		prefixes = "\n".join(sorted(prefixes.split()))
+
 		return {
-			"transactions": "\n".join([''] + sorted(list(set(
-				frappe.db.sql_list("""select parent
-					from `tabDocField` where fieldname='naming_series'""")
-				+ frappe.db.sql_list("""select dt from `tabCustom Field`
-					where fieldname='naming_series'""")
-				)))),
-			"prefixes": "\n".join([''] + [i[0] for i in
-				frappe.db.sql("""select name from tabSeries order by name""")])
+			"transactions": "\n".join([''] + sorted(doctypes)),
+			"prefixes": prefixes
 		}
 
 	def scrub_options_list(self, ol):
@@ -109,8 +121,8 @@
 		if not re.match("^[a-zA-Z0-9- /.#]*$", n):
 			throw(_('Special Characters except "-" and "/" not allowed in naming series'))
 
-	def get_options(self, arg=''):
-		return frappe.get_meta(self.select_doc_for_series).get_field("naming_series").options
+	def get_options(self, arg=None):
+		return frappe.get_meta(arg or self.select_doc_for_series).get_field("naming_series").options
 
 	def get_current(self, arg=None):
 		"""get series current"""
@@ -134,7 +146,7 @@
 			msgprint(_("Please select prefix first"))
 
 def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True):
-	from frappe.core.doctype.property_setter.property_setter import make_property_setter
+	from frappe.custom.doctype.property_setter.property_setter import make_property_setter
 	if naming_series:
 		make_property_setter(doctype, "naming_series", "hidden", 0, "Check")
 		make_property_setter(doctype, "naming_series", "reqd", 1, "Check")
diff --git a/erpnext/setup/doctype/sales_email_settings/README.md b/erpnext/setup/doctype/sales_email_settings/README.md
deleted file mode 100644
index 8d7d48f..0000000
--- a/erpnext/setup/doctype/sales_email_settings/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Settings for creating new Communication, Leads from sales inbox like "sales@example.com" via POP3.
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_email_settings/__init__.py b/erpnext/setup/doctype/sales_email_settings/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/setup/doctype/sales_email_settings/__init__.py
+++ /dev/null
diff --git a/erpnext/setup/doctype/sales_email_settings/sales_email_settings.js b/erpnext/setup/doctype/sales_email_settings/sales_email_settings.js
deleted file mode 100644
index cda8fd6..0000000
--- a/erpnext/setup/doctype/sales_email_settings/sales_email_settings.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-// For license information, please see license.txt
-
-cur_frm.cscript = {
-	refresh: function(doc) {
-		cur_frm.set_intro("");
-		if(doc.extract_emails) {
-			cur_frm.set_intro(__("Active: Will extract emails from ") + doc.email_id);
-		} else {
-			cur_frm.set_intro(__("Not Active"));
-		}
-	}
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_email_settings/sales_email_settings.json b/erpnext/setup/doctype/sales_email_settings/sales_email_settings.json
deleted file mode 100644
index c19f2e2..0000000
--- a/erpnext/setup/doctype/sales_email_settings/sales_email_settings.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "creation": "2013-01-16 10:25:26.000000", 
- "description": "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "fields": [
-  {
-   "description": "Email settings to extract Leads from sales email id e.g. \"sales@example.com\"", 
-   "fieldname": "pop3_mail_settings", 
-   "fieldtype": "Section Break", 
-   "label": "POP3 Mail Settings", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Check to activate", 
-   "fieldname": "extract_emails", 
-   "fieldtype": "Check", 
-   "label": "Extract Emails", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Email Id where a job applicant will email e.g. \"jobs@example.com\"", 
-   "fieldname": "email_id", 
-   "fieldtype": "Data", 
-   "label": "Email Id", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "POP3 server e.g. (pop.gmail.com)", 
-   "fieldname": "host", 
-   "fieldtype": "Data", 
-   "label": "Host", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "use_ssl", 
-   "fieldtype": "Check", 
-   "label": "Use SSL", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "username", 
-   "fieldtype": "Data", 
-   "label": "Username", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "password", 
-   "fieldtype": "Password", 
-   "label": "Password", 
-   "permlevel": 0
-  }
- ], 
- "icon": "icon-cog", 
- "idx": 1, 
- "issingle": 1, 
- "modified": "2013-12-20 19:21:38.000000", 
- "modified_by": "Administrator", 
- "module": "Setup", 
- "name": "Sales Email Settings", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "create": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "role": "System Manager", 
-   "write": 1
-  }
- ]
-}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/sales_email_settings/sales_email_settings.py b/erpnext/setup/doctype/sales_email_settings/sales_email_settings.py
deleted file mode 100644
index 88dc411..0000000
--- a/erpnext/setup/doctype/sales_email_settings/sales_email_settings.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-from frappe.utils import cint
-
-from frappe.model.document import Document
-
-class SalesEmailSettings(Document):
-		
-	def validate(self):
-		if cint(self.extract_emails) and not (self.email_id and self.host and \
-			self.username and self.password):
-			
-			frappe.msgprint(_("""Host, Email and Password required if emails are to be pulled"""),
-				raise_exception=True)
\ No newline at end of file
diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py
index 0e8e58d..dce101e 100644
--- a/erpnext/setup/install.py
+++ b/erpnext/setup/install.py
@@ -13,7 +13,6 @@
 def after_install():
 	frappe.get_doc({'doctype': "Role", "role_name": "Analytics"}).insert()
 	set_single_defaults()
-	import_country_and_currency()
 	from erpnext.accounts.doctype.chart_of_accounts.import_charts import import_charts
 	import_charts()
 	frappe.db.set_default('desktop:home_page', 'setup-wizard')
@@ -22,38 +21,6 @@
 	add_all_roles_to("Administrator")
 	frappe.db.commit()
 
-def import_country_and_currency():
-	from frappe.country_info import get_all
-	data = get_all()
-
-	for name in data:
-		country = frappe._dict(data[name])
-		add_country_and_currency(name, country)
-
-	# enable frequently used currencies
-	for currency in ("INR", "USD", "GBP", "EUR", "AED", "AUD", "JPY", "CNY", "CHF"):
-		frappe.db.set_value("Currency", currency, "enabled", 1)
-
-def add_country_and_currency(name, country):
-	if not frappe.db.exists("Country", name):
-		frappe.get_doc({
-			"doctype": "Country",
-			"country_name": name,
-			"code": country.code,
-			"date_format": country.date_format or "dd-mm-yyyy",
-			"time_zones": "\n".join(country.timezones or [])
-		}).insert()
-
-	if country.currency and not frappe.db.exists("Currency", country.currency):
-		frappe.get_doc({
-			"doctype": "Currency",
-			"currency_name": country.currency,
-			"fraction": country.currency_fraction,
-			"symbol": country.currency_symbol,
-			"fraction_units": country.currency_fraction_units,
-			"number_format": country.number_format
-		}).insert()
-
 def feature_setup():
 	"""save global defaults and features setup"""
 	doc = frappe.get_doc("Features Setup", "Features Setup")
@@ -85,6 +52,3 @@
 				pass
 
 	frappe.db.set_default("date_format", "dd-mm-yyyy")
-
-	frappe.db.set_value("Outgoing Email Settings", "Outgoing Email Settings", "footer",
-		default_mail_footer)
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index d3942e4..cc1cd23 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -8,7 +8,7 @@
 from frappe import _
 from frappe.utils.file_manager import save_file
 from frappe.translate import set_default_language, get_dict, get_lang_dict, send_translations
-from frappe.country_info import get_country_info
+from frappe.geo.country_info import get_country_info
 from frappe.utils.nestedset import get_root_of
 from default_website import website_maker
 import install_fixtures
@@ -227,9 +227,11 @@
 
 def create_feed_and_todo():
 	"""update activty feed and create todo for creation of item, customer, vendor"""
-	from erpnext.home import make_feed
-	make_feed('Comment', 'ToDo', '', frappe.session['user'],
-		'ERNext Setup Complete!', '#6B24B3')
+	frappe.get_doc({
+		"doctype": "Feed",
+		"feedtype": "Comment",
+		"subject": "ERPNext Setup Complete!"
+	}).insert(ignore_permissions=True)
 
 def create_email_digest():
 	from frappe.utils.user import get_system_managers
diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py
deleted file mode 100644
index 6dac990..0000000
--- a/erpnext/startup/event_handlers.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (c) 2013, Web Notes 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 nowtime
-from frappe.utils.user import get_user_fullname
-from erpnext.home import make_feed
-
-def on_session_creation(login_manager):
-	"""make feed"""
-	if frappe.session['user'] != 'Guest':
-		# create feed
-		make_feed('Login', 'User', login_manager.user, login_manager.user,
-			'%s logged in at %s' % (get_user_fullname(login_manager.user), nowtime()),
-			login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index eeda2ce..05ad09b 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -21,6 +21,9 @@
 	tname = 'Material Request Item'
 	fname = 'indent_details'
 
+	def get_feed(self):
+		return _("{0}: {1}").format(self.status, self.material_request_type)
+
 	def check_if_already_pulled(self):
 		pass#if self.[d.sales_order_no for d in self.get('indent_details')]
 
diff --git a/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py
index 14c409b..bc49090 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.py
+++ b/erpnext/stock/doctype/serial_no/serial_no.py
@@ -192,9 +192,6 @@
 			self.set_sales_details(last_sle.get("delivery_sle"))
 			self.set_maintenance_status()
 
-	def on_communication(self):
-		return
-
 def process_serial_no(sle):
 	item_det = get_item_details(sle.item_code)
 	validate_serial_no(sle, item_det)
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 4f3480c..8f00138 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -26,6 +26,10 @@
 
 class StockEntry(StockController):
 	fname = 'mtn_details'
+
+	def get_feed(self):
+		return _("From {0} to {1}").format(self.from_warehouse, self.to_warehouse)
+
 	def onload(self):
 		if self.docstatus==1:
 			for item in self.get(self.fname):
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index fffb52e..19f9724 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -8,6 +8,7 @@
 import json
 from erpnext.accounts.doctype.pricing_rule.pricing_rule import get_pricing_rule_for_item
 from erpnext.setup.utils import get_exchange_rate
+from frappe.model.meta import get_field_precision
 
 @frappe.whitelist()
 def get_item_details(args):
@@ -206,8 +207,7 @@
 		throw(_("Price List not selected"))
 
 def validate_conversion_rate(args, meta):
-	from erpnext.setup.doctype.currency.currency import validate_conversion_rate
-	from frappe.model.meta import get_field_precision
+	from erpnext.controllers.accounts_controller import validate_conversion_rate
 
 	# validate currency conversion rate
 	validate_conversion_rate(args.currency, args.conversion_rate,
diff --git a/erpnext/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.json b/erpnext/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.json
index 9774649..a2427a1 100644
--- a/erpnext/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.json
+++ b/erpnext/stock/report/ordered_items_to_be_delivered/ordered_items_to_be_delivered.json
@@ -5,12 +5,12 @@
  "doctype": "Report", 
  "idx": 1, 
  "is_standard": "Yes", 
- "modified": "2014-06-03 07:18:17.202885", 
+ "modified": "2014-10-01 18:03:22.569621", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Ordered Items To Be Delivered", 
  "owner": "Administrator", 
- "query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.qty as \"Qty:Float:140\",\n `tabSales Order Item`.delivered_qty as \"Delivered Qty:Float:140\",\n (`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0)) as \"Qty to Deliver:Float:140\",\n `tabSales Order Item`.base_amount as \"Amount:Float:140\",\n `tabSales Order`.`delivery_date` as \"Expected Delivery Date:Date:120\",\n `tabSales Order Item`.item_name as \"Item Name::150\",\n `tabSales Order Item`.description as \"Description::200\",\n `tabSales Order Item`.item_group as \"Item Group:Link/Item Group:120\"\nfrom\n `tabSales Order`, `tabSales Order Item`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0)\norder by `tabSales Order`.transaction_date asc", 
+ "query": "select \n `tabSales Order`.`name` as \"Sales Order:Link/Sales Order:120\",\n `tabSales Order`.`customer` as \"Customer:Link/Customer:120\",\n `tabSales Order`.`transaction_date` as \"Date:Date\",\n `tabSales Order`.`project_name` as \"Project\",\n `tabSales Order Item`.item_code as \"Item:Link/Item:120\",\n `tabSales Order Item`.qty as \"Qty:Float:140\",\n `tabSales Order Item`.delivered_qty as \"Delivered Qty:Float:140\",\n (`tabSales Order Item`.qty - ifnull(`tabSales Order Item`.delivered_qty, 0)) as \"Qty to Deliver:Float:140\",\n `tabBin`.actual_qty as \"Available Qty:Float:120\",\n `tabBin`.projected_qty as \"Projected Qty:Float:120\",\n `tabSales Order Item`.base_amount as \"Amount:Float:140\",\n `tabSales Order`.`delivery_date` as \"Expected Delivery Date:Date:120\",\n `tabSales Order Item`.item_name as \"Item Name::150\",\n `tabSales Order Item`.description as \"Description::200\",\n `tabSales Order Item`.item_group as \"Item Group:Link/Item Group:120\"\nfrom\n `tabSales Order`, `tabSales Order Item`, `tabBin`\nwhere\n `tabSales Order Item`.`parent` = `tabSales Order`.`name`\n and `tabSales Order`.docstatus = 1\n and `tabSales Order`.status != \"Stopped\"\n and ifnull(`tabSales Order Item`.delivered_qty,0) < ifnull(`tabSales Order Item`.qty,0)\n and `tabBin`.item_code = `tabSales Order Item`.item_code\n and `tabBin`.warehouse = `tabSales Order Item`.warehouse\norder by `tabSales Order`.transaction_date asc", 
  "ref_doctype": "Delivery Note", 
  "report_name": "Ordered Items To Be Delivered", 
  "report_type": "Query Report"
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 7264f36..2b4e368 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -6,7 +6,6 @@
 import json
 from frappe.utils import flt, cstr, nowdate, add_days, cint
 from frappe.defaults import get_global_default
-from frappe.utils.email_lib import sendmail
 from erpnext.accounts.utils import get_fiscal_year, FiscalYearError
 
 class InvalidWarehouseCompany(frappe.ValidationError): pass
@@ -159,18 +158,27 @@
 
 	return buying_amount
 
-def get_buying_amount(voucher_type, voucher_no, item_row, stock_ledger_entries):
+def get_buying_amount(item_code, item_qty, voucher_type, voucher_no, item_row, stock_ledger_entries):
 	# IMP NOTE
 	# stock_ledger_entries should already be filtered by item_code and warehouse and
 	# sorted by posting_date desc, posting_time desc
-	for i, sle in enumerate(stock_ledger_entries):
-		if sle.voucher_type == voucher_type and sle.voucher_no == voucher_no and \
-			sle.voucher_detail_no == item_row:
-				previous_stock_value = len(stock_ledger_entries) > i+1 and \
-					flt(stock_ledger_entries[i+1].stock_value) or 0.0
-				buying_amount =  previous_stock_value - flt(sle.stock_value)
+	if frappe.db.get_value("Item", item_code, "is_stock_item") == "Yes":
+		for i, sle in enumerate(stock_ledger_entries):
+			if sle.voucher_type == voucher_type and sle.voucher_no == voucher_no and \
+				sle.voucher_detail_no == item_row:
+					previous_stock_value = len(stock_ledger_entries) > i+1 and \
+						flt(stock_ledger_entries[i+1].stock_value) or 0.0
+					buying_amount =  previous_stock_value - flt(sle.stock_value)
 
-				return buying_amount
+					return buying_amount
+	else:
+		item_rate = frappe.db.sql("""select sum(base_amount) / sum(qty)
+			from `tabPurchase Invoice Item`
+			where item_code = %s and docstatus=1""" % ('%s'), item_code)
+		buying_amount = flt(item_qty) * flt(item_rate[0][0]) if item_rate else 0
+
+		return buying_amount
+
 	return 0.0
 
 
@@ -336,11 +344,11 @@
 			msg += "<tr><td>" + item.item_code + "</td><td>" + item.warehouse + "</td><td>" + \
 				cstr(item.qty) + "</td><td>" + cstr(item.uom) + "</td></tr>"
 		msg += "</table>"
-	sendmail(email_list, subject='Auto Material Request Generation Notification', msg = msg)
+	frappe.sendmail(recipients=email_list, subject='Auto Material Request Generation Notification', msg = msg)
 
 def notify_errors(exceptions_list):
 	subject = "[Important] [ERPNext] Error(s) while creating Material Requests based on Re-order Levels"
-	msg = """Dear System Manager,
+	content = """Dear System Manager,
 
 An error occured for certain Items while creating Material Requests based on Re-order level.
 
@@ -353,5 +361,5 @@
 Regards,
 Administrator""" % ("\n\n".join(exceptions_list),)
 
-	from frappe.utils.user import get_system_managers
-	sendmail(get_system_managers(), subject=subject, msg=msg)
+	from frappe.email import sendmail_to_system_managers
+	sendmail_to_system_managers(subject, content)
diff --git a/erpnext/support/doctype/customer_issue/customer_issue.py b/erpnext/support/doctype/customer_issue/customer_issue.py
index 45adb0b..9e6300e 100644
--- a/erpnext/support/doctype/customer_issue/customer_issue.py
+++ b/erpnext/support/doctype/customer_issue/customer_issue.py
@@ -12,6 +12,8 @@
 from erpnext.utilities.transaction_base import TransactionBase
 
 class CustomerIssue(TransactionBase):
+	def get_feed(self):
+		return _("{0}: From {1}").format(self.status, self.customer_name)
 
 	def validate(self):
 		if session['user'] != 'Guest' and not self.customer:
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
index e16017d..ef2fb41 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
@@ -8,6 +8,8 @@
 from erpnext.utilities.transaction_base import TransactionBase
 
 class MaintenanceVisit(TransactionBase):
+	def get_feed(self):
+		return _("To {0}").format(self.customer_name)
 
 	def get_item_details(self, item_code):
 		return frappe.db.get_value("Item", item_code, ["item_name", "description"], as_dict=1)
diff --git a/erpnext/support/doctype/newsletter/newsletter.py b/erpnext/support/doctype/newsletter/newsletter.py
index 15bf0da..1a9713f 100644
--- a/erpnext/support/doctype/newsletter/newsletter.py
+++ b/erpnext/support/doctype/newsletter/newsletter.py
@@ -94,7 +94,7 @@
 
 		sender = self.send_from or frappe.utils.get_formatted_email(self.owner)
 
-		from frappe.utils.email_lib.bulk import send
+		from frappe.email.bulk import send
 
 		if not frappe.flags.in_test:
 			frappe.db.auto_commit_on_many_writes = True
diff --git a/erpnext/support/doctype/support_email_settings/__init__.py b/erpnext/support/doctype/support_email_settings/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/support/doctype/support_email_settings/__init__.py
+++ /dev/null
diff --git a/erpnext/support/doctype/support_email_settings/support_email_settings.json b/erpnext/support/doctype/support_email_settings/support_email_settings.json
deleted file mode 100644
index dd45049..0000000
--- a/erpnext/support/doctype/support_email_settings/support_email_settings.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "allow_copy": 1, 
- "creation": "2014-03-03 19:48:46.000000", 
- "description": "Email Settings for Outgoing and Incoming Emails.", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "fields": [
-  {
-   "description": "Check this to pull emails from your mailbox", 
-   "fieldname": "sync_support_mails", 
-   "fieldtype": "Check", 
-   "label": "Sync Support Mails", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Your support email id - must be a valid email - this is where your emails will come!", 
-   "fieldname": "support_email", 
-   "fieldtype": "Data", 
-   "label": "Support Email", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "POP3 mail server (e.g. pop.gmail.com)", 
-   "fieldname": "mail_server", 
-   "fieldtype": "Data", 
-   "label": "POP3 Mail Server", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "use_ssl", 
-   "fieldtype": "Check", 
-   "label": "Use SSL", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "mail_login", 
-   "fieldtype": "Data", 
-   "label": "User Name", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "mail_password", 
-   "fieldtype": "Password", 
-   "label": "Support Password", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "cb1", 
-   "fieldtype": "Column Break", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Signature to be appended at the end of every email", 
-   "fieldname": "support_signature", 
-   "fieldtype": "Text", 
-   "label": "Signature", 
-   "permlevel": 0
-  }, 
-  {
-   "default": "1", 
-   "fieldname": "send_autoreply", 
-   "fieldtype": "Check", 
-   "label": "Send Autoreply", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Autoreply when a new mail is received", 
-   "fieldname": "support_autoreply", 
-   "fieldtype": "Text", 
-   "label": "Custom Autoreply Message", 
-   "permlevel": 0
-  }
- ], 
- "icon": "icon-cog", 
- "idx": 1, 
- "in_create": 1, 
- "issingle": 1, 
- "modified": "2014-03-03 20:20:34.000000", 
- "modified_by": "Administrator", 
- "module": "Support", 
- "name": "Support Email Settings", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "create": 1, 
-   "permlevel": 0, 
-   "read": 1, 
-   "role": "System Manager", 
-   "write": 1
-  }
- ]
-}
\ No newline at end of file
diff --git a/erpnext/support/doctype/support_email_settings/support_email_settings.py b/erpnext/support/doctype/support_email_settings/support_email_settings.py
deleted file mode 100644
index be88891..0000000
--- a/erpnext/support/doctype/support_email_settings/support_email_settings.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# MIT License. See license.txt
-
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-from frappe.utils import cint
-from frappe.model.document import Document
-from frappe.utils.email_lib.receive import POP3Mailbox
-import _socket, poplib
-
-class SupportEmailSettings(Document):
-
-	def validate(self):
-		"""
-			Checks support ticket email settings
-		"""
-		if cint(self.sync_support_mails) and self.mail_server and not frappe.local.flags.in_patch:
-			inc_email = frappe._dict(self.as_dict())
-			# inc_email.encode()
-			inc_email.host = self.mail_server
-			inc_email.use_ssl = self.use_ssl
-			try:
-				err_msg = _('User Name or Support Password missing. Please enter and try again.')
-				if not (self.mail_login and self.mail_password):
-					raise AttributeError, err_msg
-				inc_email.username = self.mail_login
-				inc_email.password = self.mail_password
-			except AttributeError, e:
-				frappe.msgprint(err_msg)
-				raise
-
-			pop_mb = POP3Mailbox(inc_email)
-
-			try:
-				pop_mb.connect()
-			except _socket.error, e:
-				# Invalid mail server -- due to refusing connection
-				frappe.msgprint(_('Invalid Mail Server. Please rectify and try again.'))
-				raise
-			except poplib.error_proto, e:
-				frappe.msgprint(_('Invalid User Name or Support Password. Please rectify and try again.'))
-				raise
diff --git a/erpnext/support/doctype/support_ticket/get_support_mails.py b/erpnext/support/doctype/support_ticket/get_support_mails.py
deleted file mode 100644
index 21f7c90..0000000
--- a/erpnext/support/doctype/support_ticket/get_support_mails.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright (c) 2013, Web Notes 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, decode_dict, today
-from frappe.utils.email_lib import sendmail
-from frappe.utils.email_lib.receive import POP3Mailbox
-from frappe.core.doctype.communication.communication import _make
-
-class SupportMailbox(POP3Mailbox):
-	def setup(self, args=None):
-		self.email_settings = frappe.get_doc("Support Email Settings", "Support Email Settings")
-		self.settings = args or frappe._dict({
-			"use_ssl": self.email_settings.use_ssl,
-			"host": self.email_settings.mail_server,
-			"username": self.email_settings.mail_login,
-			"password": self.email_settings.mail_password
-		})
-
-	def process_message(self, mail):
-		if mail.from_email == self.email_settings.get('support_email'):
-			return
-		thread_id = mail.get_thread_id()
-		new_ticket = False
-
-		if not (thread_id and frappe.db.exists("Support Ticket", thread_id)):
-			new_ticket = True
-
-		ticket = add_support_communication(mail.subject, mail.content, mail.from_email,
-			docname=None if new_ticket else thread_id, mail=mail)
-
-		if new_ticket and cint(self.email_settings.send_autoreply) and \
-			"mailer-daemon" not in mail.from_email.lower():
-				self.send_auto_reply(ticket)
-
-	def send_auto_reply(self, d):
-		signature = self.email_settings.get('support_signature') or ''
-		response = self.email_settings.get('support_autoreply') or ("""
-A new Ticket has been raised for your query. If you have any additional information, please
-reply back to this mail.
-
-### We will get back to you as soon as possible
-
----
-
-Original Query:
-
-""" + d.description + "\n\n---\n\n" + cstr(signature))
-
-		sendmail(\
-			recipients = [cstr(d.raised_by)], \
-			sender = cstr(self.email_settings.get('support_email')), \
-			subject = '['+cstr(d.name)+'] ' + cstr(d.subject), \
-			msg = cstr(response))
-
-def get_support_mails():
-	if cint(frappe.db.get_value('Support Email Settings', None, 'sync_support_mails')):
-		SupportMailbox()
-
-def add_support_communication(subject, content, sender, docname=None, mail=None):
-	if docname:
-		ticket = frappe.get_doc("Support Ticket", docname)
-		ticket.status = 'Open'
-		ticket.ignore_permissions = True
-		ticket.save()
-	else:
-		ticket = frappe.get_doc(decode_dict({
-			"doctype":"Support Ticket",
-			"description": content,
-			"subject": subject,
-			"raised_by": sender,
-			"content_type": mail.content_type if mail else None,
-			"status": "Open",
-		}))
-		ticket.ignore_permissions = True
-		ticket.ignore_mandatory = True
-		ticket.insert()
-
-	_make(content=content, sender=sender, subject = subject,
-		doctype="Support Ticket", name=ticket.name,
-		date=mail.date if mail else today(), sent_or_received="Received")
-
-	if mail:
-		mail.save_attachments_in_doc(ticket)
-
-	return ticket
diff --git a/erpnext/support/doctype/support_ticket/support_ticket.js b/erpnext/support/doctype/support_ticket/support_ticket.js
index 4a699a2..9bdc6f3 100644
--- a/erpnext/support/doctype/support_ticket/support_ticket.js
+++ b/erpnext/support/doctype/support_ticket/support_ticket.js
@@ -7,11 +7,11 @@
 frappe.provide("erpnext.support");
 
 cur_frm.add_fetch("customer", "customer_name", "customer_name")
+cur_frm.email_field = "raised_by";
 
 $.extend(cur_frm.cscript, {
 	refresh: function(doc) {
 		erpnext.toggle_naming_series();
-		cur_frm.cscript.make_listing(doc);
 		if(!doc.__islocal) {
 			if(cur_frm.fields_dict.status.get_status()=="Write") {
 				if(doc.status!='Closed') cur_frm.add_custom_button(__('Close'),
@@ -26,28 +26,6 @@
 		refresh_field('status');
 	},
 
-	make_listing: function(doc) {
-		var wrapper = cur_frm.fields_dict['thread_html'].wrapper;
-
-		var comm_list = frappe.get_list("Communication", {"parent": doc.name, "parenttype":"Support Ticket"})
-
-		if(!comm_list.length) {
-			comm_list.push({
-				"sender": doc.raised_by,
-				"creation": doc.creation,
-				"subject": doc.subject,
-				"content": doc.description});
-		}
-
-		cur_frm.communication_view = new frappe.views.CommunicationList({
-			list: comm_list,
-			parent: wrapper,
-			doc: doc,
-			recipients: doc.raised_by
-		})
-
-	},
-
 	'Close Ticket': function() {
 		cur_frm.cscript.set_status("Closed");
 	},
diff --git a/erpnext/support/doctype/support_ticket/support_ticket.json b/erpnext/support/doctype/support_ticket/support_ticket.json
index 91bc884..3a66c5b 100644
--- a/erpnext/support/doctype/support_ticket/support_ticket.json
+++ b/erpnext/support/doctype/support_ticket/support_ticket.json
@@ -1,5 +1,6 @@
 {
-  "autoname": "naming_series:", 
+ "allow_attach": 1, 
+ "autoname": "naming_series:", 
  "creation": "2013-02-01 10:36:25", 
  "docstatus": 0, 
  "doctype": "DocType", 
@@ -68,13 +69,6 @@
    "reqd": 1
   }, 
   {
-   "fieldname": "sb00", 
-   "fieldtype": "Section Break", 
-   "label": "Messages", 
-   "options": "icon-comments", 
-   "permlevel": 0
-  }, 
-  {
    "depends_on": "eval:doc.__islocal", 
    "fieldname": "description", 
    "fieldtype": "Text", 
@@ -85,14 +79,6 @@
    "reqd": 0
   }, 
   {
-   "depends_on": "eval:!doc.__islocal", 
-   "fieldname": "thread_html", 
-   "fieldtype": "HTML", 
-   "label": "Thread HTML", 
-   "permlevel": 0, 
-   "read_only": 1
-  }, 
-  {
    "fieldname": "fold", 
    "fieldtype": "Fold", 
    "permlevel": 0
@@ -228,20 +214,11 @@
    "hidden": 1, 
    "label": "Content Type", 
    "permlevel": 0
-  }, 
-  {
-   "fieldname": "communications", 
-   "fieldtype": "Table", 
-   "hidden": 1, 
-   "label": "Communications", 
-   "options": "Communication", 
-   "permlevel": 0, 
-   "print_hide": 1
   }
  ], 
  "icon": "icon-ticket", 
  "idx": 1, 
- "modified": "2014-08-12 05:25:45.420934", 
+ "modified": "2014-09-11 18:53:21.140997", 
  "modified_by": "Administrator", 
  "module": "Support", 
  "name": "Support Ticket", 
@@ -249,6 +226,7 @@
  "permissions": [
   {
    "amend": 0, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 0, 
    "email": 1, 
@@ -262,7 +240,7 @@
   }, 
   {
    "amend": 0, 
-   "apply_user_permissions": 1, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 0, 
    "email": 1, 
@@ -276,7 +254,7 @@
   }, 
   {
    "amend": 0, 
-   "apply_user_permissions": 1, 
+   "cancel": 0, 
    "create": 1, 
    "delete": 1, 
    "email": 1, 
@@ -287,6 +265,30 @@
    "role": "Support Team", 
    "submit": 0, 
    "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "permlevel": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Support Team", 
+   "submit": 0, 
+   "write": 1
+  }, 
+  {
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "permlevel": 2, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Support Team", 
+   "submit": 0, 
+   "write": 0
   }
  ], 
  "search_fields": "status,customer,subject,raised_by", 
diff --git a/erpnext/support/doctype/support_ticket/support_ticket.py b/erpnext/support/doctype/support_ticket/support_ticket.py
index 4cdc20a..4e24571 100644
--- a/erpnext/support/doctype/support_ticket/support_ticket.py
+++ b/erpnext/support/doctype/support_ticket/support_ticket.py
@@ -3,24 +3,14 @@
 
 from __future__ import unicode_literals
 import frappe
+from frappe import _
 
-from erpnext.utilities.transaction_base import TransactionBase
-from frappe.utils import now, extract_email_id
+from frappe.model.document import Document
+from frappe.utils import now
 
-class SupportTicket(TransactionBase):
-
-	def get_sender(self, comm):
-		return frappe.db.get_value('Support Email Settings',None,'support_email')
-
-	def get_subject(self, comm):
-		return '[' + self.name + '] ' + (comm.subject or 'No Subject Specified')
-
-	def get_content(self, comm):
-		signature = frappe.db.get_value('Support Email Settings',None,'support_signature')
-		content = comm.content
-		if signature:
-			content += '<p>' + signature + '</p>'
-		return content
+class SupportTicket(Document):
+	def get_feed(self):
+		return "{0}: {1}".format(_(self.status), self.subject)
 
 	def get_portal_page(self):
 		return "ticket"
@@ -30,7 +20,7 @@
 		self.set_lead_contact(self.raised_by)
 
 		if self.status == "Closed":
-			from frappe.widgets.form.assign_to import clear
+			from frappe.desk.form.assign_to import clear
 			clear(self.doctype, self.name)
 
 	def set_lead_contact(self, email_id):
diff --git a/erpnext/templates/utils.py b/erpnext/templates/utils.py
index d3c93eb..9892924 100644
--- a/erpnext/templates/utils.py
+++ b/erpnext/templates/utils.py
@@ -7,19 +7,14 @@
 @frappe.whitelist(allow_guest=True)
 def send_message(subject="Website Query", message="", sender="", status="Open"):
 	from frappe.templates.pages.contact import send_message as website_send_message
-	res = website_send_message(subject, message, sender)
 
-	if not res:
-		return
+	website_send_message(subject, message, sender)
 
-	if subject=="Support":
-		# create support ticket
-		from erpnext.support.doctype.support_ticket.get_support_mails import add_support_communication
-		add_support_communication(subject, message, sender, mail=None)
-	else:
-		# make lead / communication
-		from erpnext.selling.doctype.lead.get_leads import add_sales_communication
-		add_sales_communication(subject or "Website Query", message, sender, sender,
-			mail=None, status=status)
-
-	return res
+	comm = frappe.get_doc({
+		"doctype":"Communication",
+		"subject": subject,
+		"content": message,
+		"sender": sender,
+		"sent_or_received": "Received"
+	})
+	comm.insert(ignore_permissions=True)
diff --git a/erpnext/utilities/doctype/contact/contact.js b/erpnext/utilities/doctype/contact/contact.js
index f2a2fdc..fe407d9 100644
--- a/erpnext/utilities/doctype/contact/contact.js
+++ b/erpnext/utilities/doctype/contact/contact.js
@@ -3,16 +3,8 @@
 
 {% include 'controllers/js/contact_address_common.js' %};
 
-cur_frm.cscript.refresh = function(doc) {
-	cur_frm.communication_view = new frappe.views.CommunicationList({
-		list: frappe.get_list("Communication", {"parent": doc.name, "parenttype": "Contact"}),
-		parent: cur_frm.fields_dict.communication_html.wrapper,
-		doc: doc,
-		recipients: doc.email_id
-	});
-}
-
+cur_frm.email_field = "email_id";
 cur_frm.cscript.hide_dialog = function() {
 	if(cur_frm.contact_list)
 		cur_frm.contact_list.run();
-}
\ No newline at end of file
+}
diff --git a/erpnext/utilities/doctype/contact/contact.json b/erpnext/utilities/doctype/contact/contact.json
index caa6745..7ba241c 100644
--- a/erpnext/utilities/doctype/contact/contact.json
+++ b/erpnext/utilities/doctype/contact/contact.json
@@ -67,21 +67,6 @@
    "reqd": 0
   },
   {
-   "fieldname": "sb00",
-   "fieldtype": "Section Break",
-   "label": "Communication History",
-   "options": "icon-comments",
-   "permlevel": 0,
-   "print_hide": 1
-  },
-  {
-   "fieldname": "communication_html",
-   "fieldtype": "HTML",
-   "label": "Communication HTML",
-   "permlevel": 0,
-   "print_hide": 1
-  },
-  {
    "fieldname": "contact_details",
    "fieldtype": "Section Break",
    "label": "Reference",
@@ -185,28 +170,20 @@
    "fieldtype": "Check",
    "label": "Unsubscribed",
    "permlevel": 0
-  },
-  {
-   "fieldname": "communications",
-   "fieldtype": "Table",
-   "hidden": 1,
-   "label": "Communications",
-   "options": "Communication",
-   "permlevel": 0,
-   "print_hide": 1
   }
  ],
  "icon": "icon-user",
  "idx": 1,
  "in_create": 0,
  "in_dialog": 0,
- "modified": "2014-09-15 05:44:25.767076",
+ "modified": "2014-09-11 18:53:17.311624",
  "modified_by": "Administrator",
  "module": "Utilities",
  "name": "Contact",
  "owner": "Administrator",
  "permissions": [
   {
+   "cancel": 0,
    "create": 1,
    "delete": 1,
    "email": 1,
@@ -220,6 +197,7 @@
   },
   {
    "amend": 0,
+   "cancel": 0,
    "create": 1,
    "delete": 1,
    "email": 1,
@@ -232,6 +210,7 @@
    "write": 1
   },
   {
+   "cancel": 0,
    "create": 1,
    "delete": 1,
    "email": 1,
@@ -244,6 +223,7 @@
    "write": 1
   },
   {
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -256,6 +236,7 @@
    "write": 1
   },
   {
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -268,6 +249,7 @@
    "write": 1
   },
   {
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -280,6 +262,7 @@
    "write": 1
   },
   {
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -292,7 +275,7 @@
    "write": 1
   },
   {
-   "apply_user_permissions": 1,
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -305,7 +288,7 @@
    "write": 1
   },
   {
-   "apply_user_permissions": 1,
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -318,7 +301,7 @@
    "write": 1
   },
   {
-   "apply_user_permissions": 1,
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -331,7 +314,7 @@
    "write": 1
   },
   {
-   "apply_user_permissions": 1,
+   "cancel": 0,
    "create": 1,
    "delete": 0,
    "email": 1,
@@ -342,6 +325,18 @@
    "role": "Accounts User",
    "submit": 0,
    "write": 1
+  },
+  {
+   "amend": 0,
+   "cancel": 0,
+   "create": 0,
+   "delete": 0,
+   "match": "",
+   "permlevel": 1,
+   "read": 1,
+   "report": 1,
+   "role": "All",
+   "submit": 0
   }
  ]
 }
diff --git a/erpnext/utilities/doctype/note/README.md b/erpnext/utilities/doctype/note/README.md
deleted file mode 100644
index 95d7b33..0000000
--- a/erpnext/utilities/doctype/note/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Shared Note. (Page with standard information, links, attachments).
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/note/note.json b/erpnext/utilities/doctype/note/note.json
deleted file mode 100644
index 66d99f4..0000000
--- a/erpnext/utilities/doctype/note/note.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "allow_rename": 1, 
- "creation": "2013-05-24 13:41:00", 
- "description": "Note is a free page where users can share documents / notes", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Transaction", 
- "fields": [
-  {
-   "fieldname": "title", 
-   "fieldtype": "Data", 
-   "in_list_view": 0, 
-   "label": "Title", 
-   "permlevel": 0, 
-   "print_hide": 1, 
-   "reqd": 1
-  }, 
-  {
-   "description": "Help: To link to another record in the system, use \"#Form/Note/[Note Name]\" as the Link URL. (don't use \"http://\")", 
-   "fieldname": "content", 
-   "fieldtype": "Text Editor", 
-   "in_list_view": 0, 
-   "label": "Content", 
-   "permlevel": 0
-  }, 
-  {
-   "fieldname": "share", 
-   "fieldtype": "Section Break", 
-   "label": "Share", 
-   "permlevel": 0
-  }, 
-  {
-   "description": "Everyone can read", 
-   "fieldname": "public", 
-   "fieldtype": "Check", 
-   "in_list_view": 1, 
-   "label": "Public", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }, 
-  {
-   "fieldname": "share_with", 
-   "fieldtype": "Table", 
-   "label": "Share With", 
-   "options": "Note User", 
-   "permlevel": 0, 
-   "print_hide": 1
-  }
- ], 
- "icon": "icon-file-text", 
- "idx": 1, 
- "modified": "2014-07-30 03:24:38.302928", 
- "modified_by": "Administrator", 
- "module": "Utilities", 
- "name": "Note", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "apply_user_permissions": 1, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "role": "All", 
-   "write": 1
-  }
- ], 
- "read_only_onload": 1
-}
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/note/note.py b/erpnext/utilities/doctype/note/note.py
deleted file mode 100644
index 2db4137..0000000
--- a/erpnext/utilities/doctype/note/note.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-from frappe.model.document import Document
-
-class Note(Document):
-	def autoname(self):
-		# replace forbidden characters
-		import re
-		self.name = re.sub("[%'\"#*?`]", "", self.title.strip())
-
-	def before_print(self):
-		self.print_heading = self.name
-		self.sub_heading = ""
-
-def get_permission_query_conditions(user):
-	if not user: user = frappe.session.user
-
-	if user == "Administrator":
-		return ""
-
-	return """(`tabNote`.public=1 or `tabNote`.owner="{user}" or exists (
-		select name from `tabNote User`
-			where `tabNote User`.parent=`tabNote`.name
-			and `tabNote User`.user="{user}"))""".format(user=user)
-
-def has_permission(doc, ptype, user):
-	if doc.public == 1 or user == "Administrator":
-		return True
-
-	if user == doc.owner:
-		return True
-
-	note_user_map = dict((d.user, d) for d in doc.get("share_with"))
-	if user in note_user_map:
-		if ptype == "read":
-			return True
-		elif note_user_map.get(user).permission == "Edit":
-			return True
-
-	return False
diff --git a/erpnext/utilities/doctype/note/note_list.html b/erpnext/utilities/doctype/note/note_list.html
deleted file mode 100644
index d3289d2..0000000
--- a/erpnext/utilities/doctype/note/note_list.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<div class="row" style="max-height: 30px;">
-	<div class="col-xs-12">
-		<div class="text-ellipsis">
-			{%= list.get_avatar_and_id(doc) %}
-
-			{% if(!doc.public) { %}
-			<span style="margin-right: 8px;"
-				title="{%= __("Private") %}" class="filterable"
-				data-filter="public,=,Yes">
-				<i class="icon-lock text-muted"></i>
-			</span>
-			{% } %}
-
-		</div>
-	</div>
-</div>
diff --git a/erpnext/utilities/doctype/note/note_list.js b/erpnext/utilities/doctype/note/note_list.js
deleted file mode 100644
index 161ebad..0000000
--- a/erpnext/utilities/doctype/note/note_list.js
+++ /dev/null
@@ -1,3 +0,0 @@
-frappe.listview_settings['Note'] = {
-	add_fields: ["title", "public"],
-}
diff --git a/erpnext/utilities/doctype/note/test_note.py b/erpnext/utilities/doctype/note/test_note.py
deleted file mode 100644
index 997c57b..0000000
--- a/erpnext/utilities/doctype/note/test_note.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
-# See license.txt
-
-import frappe
-import unittest
-
-test_records = frappe.get_test_records('Note')
-
-class TestNote(unittest.TestCase):
-	pass
diff --git a/erpnext/utilities/doctype/note/test_records.json b/erpnext/utilities/doctype/note/test_records.json
deleted file mode 100644
index f3d7cff..0000000
--- a/erpnext/utilities/doctype/note/test_records.json
+++ /dev/null
@@ -1,7 +0,0 @@
-[
-	{
-		"doctype": "Note",
-		"name": "_Test Note 1",
-		"title": "Test Note Title"
-	}
-]
diff --git a/erpnext/utilities/doctype/note_user/README.md b/erpnext/utilities/doctype/note_user/README.md
deleted file mode 100644
index a8e066d..0000000
--- a/erpnext/utilities/doctype/note_user/README.md
+++ /dev/null
@@ -1 +0,0 @@
-User who can access / edit the parent Note.
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/note_user/__init__.py b/erpnext/utilities/doctype/note_user/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/utilities/doctype/note_user/__init__.py
+++ /dev/null
diff --git a/erpnext/utilities/doctype/note_user/note_user.json b/erpnext/utilities/doctype/note_user/note_user.json
deleted file mode 100644
index e67a75c..0000000
--- a/erpnext/utilities/doctype/note_user/note_user.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "creation": "2013-05-24 14:24:48", 
- "description": "List of users who can edit a particular Note", 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "Other", 
- "fields": [
-  {
-   "fieldname": "user", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "in_list_view": 1, 
-   "label": "User", 
-   "options": "User", 
-   "permlevel": 0, 
-   "reqd": 1
-  }, 
-  {
-   "default": "Edit", 
-   "fieldname": "permission", 
-   "fieldtype": "Select", 
-   "in_list_view": 1, 
-   "label": "Permission", 
-   "options": "Edit\nRead", 
-   "permlevel": 0
-  }
- ], 
- "idx": 1, 
- "istable": 1, 
- "modified": "2014-06-04 02:33:27.466061", 
- "modified_by": "Administrator", 
- "module": "Utilities", 
- "name": "Note User", 
- "owner": "Administrator", 
- "permissions": []
-}
\ No newline at end of file
diff --git a/erpnext/utilities/doctype/note_user/note_user.py b/erpnext/utilities/doctype/note_user/note_user.py
deleted file mode 100644
index 1594f78..0000000
--- a/erpnext/utilities/doctype/note_user/note_user.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-
-from frappe.model.document import Document
-
-class NoteUser(Document):
-	pass
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 681b6f7..be7f892 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,6 @@
 from setuptools import setup, find_packages
-import os
 
-version = "4.5.1"
+version = "5.0.0-alpha"
 
 with open("requirements.txt", "r") as f:
 	install_requires = f.readlines()
