updated generators for wip-4.2
diff --git a/erpnext/accounts/doctype/account/account.json b/erpnext/accounts/doctype/account/account.json
index ab88305..4649c38 100644
--- a/erpnext/accounts/doctype/account/account.json
+++ b/erpnext/accounts/doctype/account/account.json
@@ -1,331 +1,332 @@
 {
- "allow_copy": 1,
- "allow_import": 1,
- "allow_rename": 1,
- "creation": "2013-01-30 12:49:46",
- "description": "Heads (or groups) against which Accounting Entries are made and balances are maintained.",
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Master",
+ "allow_copy": 1, 
+ "allow_import": 1, 
+ "allow_rename": 1, 
+ "creation": "2013-01-30 12:49:46", 
+ "description": "Heads (or groups) against which Accounting Entries are made and balances are maintained.", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Master", 
  "fields": [
   {
-   "fieldname": "properties",
-   "fieldtype": "Section Break",
-   "in_list_view": 0,
-   "label": "Account Details",
-   "oldfieldtype": "Section Break",
+   "fieldname": "properties", 
+   "fieldtype": "Section Break", 
+   "in_list_view": 0, 
+   "label": "Account Details", 
+   "oldfieldtype": "Section Break", 
    "permlevel": 0
-  },
+  }, 
   {
-   "fieldname": "column_break0",
-   "fieldtype": "Column Break",
-   "in_list_view": 0,
-   "permlevel": 0,
+   "fieldname": "column_break0", 
+   "fieldtype": "Column Break", 
+   "in_list_view": 0, 
+   "permlevel": 0, 
    "width": "50%"
-  },
+  }, 
   {
-   "fieldname": "account_name",
-   "fieldtype": "Data",
-   "in_filter": 1,
-   "in_list_view": 1,
-   "label": "Account Name",
-   "no_copy": 1,
-   "oldfieldname": "account_name",
-   "oldfieldtype": "Data",
-   "permlevel": 0,
-   "read_only": 1,
-   "reqd": 1,
+   "fieldname": "account_name", 
+   "fieldtype": "Data", 
+   "in_filter": 1, 
+   "in_list_view": 1, 
+   "label": "Account Name", 
+   "no_copy": 1, 
+   "oldfieldname": "account_name", 
+   "oldfieldtype": "Data", 
+   "permlevel": 0, 
+   "read_only": 1, 
+   "reqd": 1, 
    "search_index": 1
-  },
+  }, 
   {
-   "default": "Ledger",
-   "fieldname": "group_or_ledger",
-   "fieldtype": "Select",
-   "in_filter": 1,
-   "in_list_view": 1,
-   "label": "Group or Ledger",
-   "oldfieldname": "group_or_ledger",
-   "oldfieldtype": "Select",
-   "options": "\nLedger\nGroup",
-   "permlevel": 0,
-   "read_only": 1,
-   "reqd": 1,
+   "default": "Ledger", 
+   "fieldname": "group_or_ledger", 
+   "fieldtype": "Select", 
+   "in_filter": 1, 
+   "in_list_view": 1, 
+   "label": "Group or Ledger", 
+   "oldfieldname": "group_or_ledger", 
+   "oldfieldtype": "Select", 
+   "options": "\nLedger\nGroup", 
+   "permlevel": 0, 
+   "read_only": 1, 
+   "reqd": 1, 
    "search_index": 1
-  },
+  }, 
   {
-   "fieldname": "company",
-   "fieldtype": "Link",
-   "in_filter": 1,
-   "label": "Company",
-   "oldfieldname": "company",
-   "oldfieldtype": "Link",
-   "options": "Company",
-   "permlevel": 0,
-   "read_only": 1,
-   "reqd": 1,
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "in_filter": 1, 
+   "label": "Company", 
+   "oldfieldname": "company", 
+   "oldfieldtype": "Link", 
+   "options": "Company", 
+   "permlevel": 0, 
+   "read_only": 1, 
+   "reqd": 1, 
    "search_index": 1
-  },
+  }, 
   {
-   "fieldname": "column_break1",
-   "fieldtype": "Column Break",
-   "permlevel": 0,
+   "fieldname": "column_break1", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
    "width": "50%"
-  },
+  }, 
   {
-   "fieldname": "parent_account",
-   "fieldtype": "Link",
-   "ignore_user_permissions": 1,
-   "label": "Parent Account",
-   "oldfieldname": "parent_account",
-   "oldfieldtype": "Link",
-   "options": "Account",
-   "permlevel": 0,
-   "reqd": 1,
+   "fieldname": "parent_account", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Parent Account", 
+   "oldfieldname": "parent_account", 
+   "oldfieldtype": "Link", 
+   "options": "Account", 
+   "permlevel": 0, 
+   "reqd": 1, 
    "search_index": 1
-  },
+  }, 
   {
-   "description": "Setting Account Type helps in selecting this Account in transactions.",
-   "fieldname": "account_type",
-   "fieldtype": "Select",
-   "in_filter": 1,
-   "label": "Account Type",
-   "oldfieldname": "account_type",
-   "oldfieldtype": "Select",
-   "options": "\nBank\nCash\nTax\nChargeable\nWarehouse\nReceivable\nPayable\nEquity\nFixed Asset\nCost of Goods Sold\nExpense Account\nIncome Account\nStock Received But Not Billed\nExpenses Included In Valuation\nStock Adjustment",
-   "permlevel": 0,
+   "description": "Setting Account Type helps in selecting this Account in transactions.", 
+   "fieldname": "account_type", 
+   "fieldtype": "Select", 
+   "in_filter": 1, 
+   "label": "Account Type", 
+   "oldfieldname": "account_type", 
+   "oldfieldtype": "Select", 
+   "options": "\nBank\nCash\nTax\nChargeable\nWarehouse\nReceivable\nPayable\nEquity\nFixed Asset\nCost of Goods Sold\nExpense Account\nIncome Account\nStock Received But Not Billed\nExpenses Included In Valuation\nStock Adjustment", 
+   "permlevel": 0, 
    "search_index": 0
-  },
+  }, 
   {
-   "description": "Rate at which this tax is applied",
-   "fieldname": "tax_rate",
-   "fieldtype": "Float",
-   "hidden": 0,
-   "label": "Rate",
-   "oldfieldname": "tax_rate",
-   "oldfieldtype": "Currency",
-   "permlevel": 0,
+   "description": "Rate at which this tax is applied", 
+   "fieldname": "tax_rate", 
+   "fieldtype": "Float", 
+   "hidden": 0, 
+   "label": "Rate", 
+   "oldfieldname": "tax_rate", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
    "reqd": 0
-  },
+  }, 
   {
-   "description": "If the account is frozen, entries are allowed to restricted users.",
-   "fieldname": "freeze_account",
-   "fieldtype": "Select",
-   "label": "Frozen",
-   "oldfieldname": "freeze_account",
-   "oldfieldtype": "Select",
-   "options": "No\nYes",
+   "description": "If the account is frozen, entries are allowed to restricted users.", 
+   "fieldname": "freeze_account", 
+   "fieldtype": "Select", 
+   "label": "Frozen", 
+   "oldfieldname": "freeze_account", 
+   "oldfieldtype": "Select", 
+   "options": "No\nYes", 
    "permlevel": 0
-  },
+  }, 
   {
-   "fieldname": "credit_days",
-   "fieldtype": "Int",
-   "hidden": 1,
-   "label": "Credit Days",
-   "oldfieldname": "credit_days",
-   "oldfieldtype": "Int",
-   "permlevel": 0,
+   "fieldname": "credit_days", 
+   "fieldtype": "Int", 
+   "hidden": 1, 
+   "label": "Credit Days", 
+   "oldfieldname": "credit_days", 
+   "oldfieldtype": "Int", 
+   "permlevel": 0, 
    "print_hide": 1
-  },
+  }, 
   {
-   "fieldname": "credit_limit",
-   "fieldtype": "Currency",
-   "hidden": 1,
-   "label": "Credit Limit",
-   "oldfieldname": "credit_limit",
-   "oldfieldtype": "Currency",
-   "options": "Company:company:default_currency",
-   "permlevel": 0,
+   "fieldname": "credit_limit", 
+   "fieldtype": "Currency", 
+   "hidden": 1, 
+   "label": "Credit Limit", 
+   "oldfieldname": "credit_limit", 
+   "oldfieldtype": "Currency", 
+   "options": "Company:company:default_currency", 
+   "permlevel": 0, 
    "print_hide": 1
-  },
+  }, 
   {
-   "description": "If this Account represents a Customer, Supplier or Employee, set it here.",
-   "fieldname": "master_type",
-   "fieldtype": "Select",
-   "label": "Master Type",
-   "oldfieldname": "master_type",
-   "oldfieldtype": "Select",
-   "options": "\nSupplier\nCustomer\nEmployee",
+   "description": "If this Account represents a Customer, Supplier or Employee, set it here.", 
+   "fieldname": "master_type", 
+   "fieldtype": "Select", 
+   "label": "Master Type", 
+   "oldfieldname": "master_type", 
+   "oldfieldtype": "Select", 
+   "options": "\nSupplier\nCustomer\nEmployee", 
    "permlevel": 0
-  },
+  }, 
   {
-   "fieldname": "master_name",
-   "fieldtype": "Link",
-   "label": "Master Name",
-   "oldfieldname": "master_name",
-   "oldfieldtype": "Link",
-   "options": "[Select]",
+   "fieldname": "master_name", 
+   "fieldtype": "Link", 
+   "label": "Master Name", 
+   "oldfieldname": "master_name", 
+   "oldfieldtype": "Link", 
+   "options": "[Select]", 
    "permlevel": 0
-  },
+  }, 
   {
-   "fieldname": "balance_must_be",
-   "fieldtype": "Select",
-   "label": "Balance must be",
-   "options": "\nDebit\nCredit",
+   "fieldname": "balance_must_be", 
+   "fieldtype": "Select", 
+   "label": "Balance must be", 
+   "options": "\nDebit\nCredit", 
    "permlevel": 0
-  },
+  }, 
   {
-   "fieldname": "root_type",
-   "fieldtype": "Select",
-   "label": "Root Type",
-   "options": "\nAsset\nLiability\nIncome\nExpense\nEquity",
-   "permlevel": 0,
+   "fieldname": "root_type", 
+   "fieldtype": "Select", 
+   "label": "Root Type", 
+   "options": "\nAsset\nLiability\nIncome\nExpense\nEquity", 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "fieldname": "report_type",
-   "fieldtype": "Select",
-   "label": "Report Type",
-   "options": "\nBalance Sheet\nProfit and Loss",
-   "permlevel": 0,
+   "fieldname": "report_type", 
+   "fieldtype": "Select", 
+   "label": "Report Type", 
+   "options": "\nBalance Sheet\nProfit and Loss", 
+   "permlevel": 0, 
    "read_only": 1
-  },
+  }, 
   {
-   "fieldname": "lft",
-   "fieldtype": "Int",
-   "hidden": 1,
-   "label": "Lft",
-   "permlevel": 0,
-   "print_hide": 1,
+   "fieldname": "lft", 
+   "fieldtype": "Int", 
+   "hidden": 1, 
+   "label": "Lft", 
+   "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 1
-  },
+  }, 
   {
-   "fieldname": "rgt",
-   "fieldtype": "Int",
-   "hidden": 1,
-   "label": "Rgt",
-   "permlevel": 0,
-   "print_hide": 1,
+   "fieldname": "rgt", 
+   "fieldtype": "Int", 
+   "hidden": 1, 
+   "label": "Rgt", 
+   "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 1
-  },
+  }, 
   {
-   "fieldname": "old_parent",
-   "fieldtype": "Data",
-   "hidden": 1,
-   "label": "Old Parent",
-   "permlevel": 0,
-   "print_hide": 1,
+   "fieldname": "old_parent", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "label": "Old Parent", 
+   "permlevel": 0, 
+   "print_hide": 1, 
    "read_only": 1
   }
- ],
- "icon": "icon-money",
- "idx": 1,
- "in_create": 1,
- "modified": "2014-06-03 18:27:58.109303",
- "modified_by": "Administrator",
- "module": "Accounts",
- "name": "Account",
- "owner": "Administrator",
+ ], 
+ "icon": "icon-money", 
+ "idx": 1, 
+ "in_create": 1, 
+ "modified": "2014-06-17 04:30:56.689314", 
+ "modified_by": "Administrator", 
+ "module": "Accounts", 
+ "name": "Account", 
+ "owner": "Administrator", 
  "permissions": [
   {
-   "amend": 0,
-   "apply_user_permissions": 1,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "import": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts User",
-   "submit": 0,
+   "amend": 0, 
+   "apply_user_permissions": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "import": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Accounts User", 
+   "submit": 0, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 0,
-   "apply_user_permissions": 1,
-   "create": 0,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Auditor",
-   "submit": 0,
+   "amend": 0, 
+   "apply_user_permissions": 1, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Auditor", 
+   "submit": 0, 
    "write": 0
-  },
+  }, 
   {
-   "amend": 0,
-   "apply_user_permissions": 1,
-   "create": 0,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Sales User",
-   "submit": 0,
+   "amend": 0, 
+   "apply_user_permissions": 1, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Sales User", 
+   "submit": 0, 
    "write": 0
-  },
+  }, 
   {
-   "amend": 0,
-   "apply_user_permissions": 1,
-   "create": 0,
-   "delete": 0,
-   "email": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Purchase User",
-   "submit": 0,
+   "amend": 0, 
+   "apply_user_permissions": 1, 
+   "create": 0, 
+   "delete": 0, 
+   "email": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Purchase User", 
+   "submit": 0, 
    "write": 0
-  },
+  }, 
   {
-   "amend": 0,
-   "cancel": 0,
-   "create": 0,
-   "delete": 0,
-   "permlevel": 2,
-   "read": 1,
-   "report": 1,
-   "role": "Auditor",
-   "submit": 0,
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "permlevel": 2, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Auditor", 
+   "submit": 0, 
    "write": 0
-  },
+  }, 
   {
-   "amend": 0,
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "export": 1,
-   "import": 1,
-   "permlevel": 0,
-   "print": 1,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts Manager",
-   "set_user_permissions": 1,
-   "submit": 0,
+   "amend": 0, 
+   "apply_user_permissions": 0, 
+   "create": 1, 
+   "delete": 1, 
+   "email": 1, 
+   "export": 1, 
+   "import": 1, 
+   "permlevel": 0, 
+   "print": 1, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Accounts Manager", 
+   "set_user_permissions": 1, 
+   "submit": 0, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 0,
-   "cancel": 0,
-   "create": 0,
-   "delete": 0,
-   "permlevel": 2,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts Manager",
-   "submit": 0,
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "permlevel": 2, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Accounts Manager", 
+   "submit": 0, 
    "write": 1
-  },
+  }, 
   {
-   "amend": 0,
-   "cancel": 0,
-   "create": 0,
-   "delete": 0,
-   "permlevel": 2,
-   "read": 1,
-   "report": 1,
-   "role": "Accounts User",
-   "submit": 0,
+   "amend": 0, 
+   "cancel": 0, 
+   "create": 0, 
+   "delete": 0, 
+   "permlevel": 2, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Accounts User", 
+   "submit": 0, 
    "write": 0
   }
- ],
+ ], 
  "search_fields": "group_or_ledger"
-}
+}
\ No newline at end of file
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 8b147b0..bddda2d 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -24,6 +24,8 @@
 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 = {
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index 63bf3b4..b9d5abb 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -7,6 +7,9 @@
 from frappe.utils.nestedset import NestedSet
 from frappe.website.website_generator import WebsiteGenerator
 from frappe.website.render import clear_cache
+from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
+
+condition_field = "show_in_website"
 
 class ItemGroup(NestedSet, WebsiteGenerator):
 	nsm_parent_field = 'parent_item_group'
@@ -39,6 +42,53 @@
 		if frappe.db.exists("Item", self.name):
 			frappe.throw(frappe._("An item exists with same name ({0}), please change the item group name or rename the item").format(self.name))
 
+	def get_context(self, context):
+		context.update({
+			"items": get_product_list_for_group(product_group = self.name, limit=100),
+			"parent_groups": get_parent_item_groups(self.name),
+			"title": self.name
+		})
+
+		if self.slideshow:
+			context.update(get_slideshow(self))
+
+		return context
+
+def get_product_list_for_group(product_group=None, start=0, limit=10):
+	child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(product_group)])
+
+	# base query
+	query = """select t1.name, t1.item_name, t1.page_name, t1.website_image, t1.item_group,
+			t1.web_long_description as website_description, t2.name as route
+		from `tabItem` t1, `tabWebsite Route` t2
+		where t1.show_in_website = 1 and (item_group in (%s)
+			or t1.name in (select parent from `tabWebsite Item Group` where item_group in (%s)))
+			and t1.name = t2.docname and t2.ref_doctype='Item' """ % (child_groups, child_groups)
+
+	query += """order by t1.weightage desc, t1.modified desc limit %s, %s""" % (start, limit)
+
+	data = frappe.db.sql(query, {"product_group": product_group}, as_dict=1)
+
+	return [get_item_for_list_in_html(r) for r in data]
+
+def get_child_groups(item_group_name):
+	item_group = frappe.get_doc("Item Group", item_group_name)
+	return frappe.db.sql("""select name
+		from `tabItem Group` where lft>=%(lft)s and rgt<=%(rgt)s
+			and show_in_website = 1""", {"lft": item_group.lft, "rgt": item_group.rgt})
+
+def get_item_for_list_in_html(context):
+	return frappe.get_template("templates/includes/product_in_grid.html").render(context)
+
+def get_group_item_count(item_group):
+	child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(item_group)])
+	return frappe.db.sql("""select count(*) from `tabItem`
+		where docstatus = 0 and show_in_website = 1
+		and (item_group in (%s)
+			or name in (select parent from `tabWebsite Item Group`
+				where item_group in (%s))) """ % (child_groups, child_groups))[0][0]
+
+
 def get_parent_item_groups(item_group_name):
 	item_group = frappe.get_doc("Item Group", item_group_name)
 	return frappe.db.sql("""select name, page_name from `tabItem Group`
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.py b/erpnext/setup/doctype/sales_partner/sales_partner.py
index b90b65e..2d5ad34 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.py
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.py
@@ -3,7 +3,7 @@
 
 from __future__ import unicode_literals
 import frappe
-from frappe.utils import cint, cstr, filter_strip_join
+from frappe.utils import cstr, filter_strip_join
 from frappe.website.website_generator import WebsiteGenerator
 
 class SalesPartner(WebsiteGenerator):
@@ -25,3 +25,21 @@
 
 	def get_page_title(self):
 		return self.partner_name
+
+	def get_context(self, context):
+		address = frappe.db.get_value("Address",
+			{"sales_partner": self.name, "is_primary_address": 1},
+			"*", as_dict=True)
+		if address:
+			city_state = ", ".join(filter(None, [address.city, address.state]))
+			address_rows = [address.address_line1, address.address_line2,
+				city_state, address.pincode, address.country]
+
+			context.update({
+				"email": address.email_id,
+				"partner_address": filter_strip_join(address_rows, "\n<br>"),
+				"phone": filter_strip_join(cstr(address.phone).split(","), "\n<br>")
+			})
+
+		return context
+
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index f43b531..129e2f7 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -6,11 +6,14 @@
 from frappe import msgprint, _
 from frappe.utils import cstr, flt, getdate, now_datetime, formatdate
 from frappe.website.website_generator import WebsiteGenerator
-from erpnext.setup.doctype.item_group.item_group import invalidate_cache_for
+from erpnext.setup.doctype.item_group.item_group import invalidate_cache_for, get_parent_item_groups
 from frappe.website.render import clear_cache
+from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
 
 class WarehouseNotSet(frappe.ValidationError): pass
 
+condition_field = "show_in_website"
+
 class Item(WebsiteGenerator):
 	def onload(self):
 		super(Item, self).onload()
@@ -55,6 +58,14 @@
 		self.validate_name_with_item_group()
 		self.update_item_price()
 
+	def get_context(self, context):
+		context["parent_groups"] = get_parent_item_groups(self.item_group) + \
+			[{"name": self.name}]
+		if self.slideshow:
+			context.update(get_slideshow(self))
+
+		return context
+
 	def check_warehouse_is_set_for_stock_item(self):
 		if self.is_stock_item=="Yes" and not self.default_warehouse:
 			frappe.msgprint(_("Default Warehouse is mandatory for stock Item."),
diff --git a/erpnext/templates/generators/item.py b/erpnext/templates/generators/item.py
deleted file mode 100644
index 1ad070e..0000000
--- a/erpnext/templates/generators/item.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
-
-from __future__ import unicode_literals
-
-import frappe
-from erpnext.setup.doctype.item_group.item_group import get_parent_item_groups
-from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
-
-doctype = "Item"
-condition_field = "show_in_website"
-
-def get_context(context):
-	item_context = context.doc.as_dict()
-	item_context["parent_groups"] = get_parent_item_groups(context.doc.item_group) + \
-		[{"name":context.doc.name}]
-	if context.doc.slideshow:
-		item_context.update(get_slideshow(context.doc))
-
-	return item_context
diff --git a/erpnext/templates/generators/item_group.py b/erpnext/templates/generators/item_group.py
deleted file mode 100644
index 8e09dbc..0000000
--- a/erpnext/templates/generators/item_group.py
+++ /dev/null
@@ -1,59 +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.website.doctype.website_slideshow.website_slideshow import get_slideshow
-from erpnext.setup.doctype.item_group.item_group import get_parent_item_groups
-
-doctype = "Item Group"
-condition_field = "show_in_website"
-
-def get_context(context):
-	item_group_context = context.doc.as_dict()
-	item_group_context.update({
-		"items": get_product_list_for_group(product_group = context.docname, limit=100),
-		"parent_groups": get_parent_item_groups(context.docname),
-		"title": context.docname
-	})
-
-	if context.doc.slideshow:
-		item_group_context.update(get_slideshow(context.doc))
-
-	return item_group_context
-
-def get_product_list_for_group(product_group=None, start=0, limit=10):
-	child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(product_group)])
-
-	# base query
-	query = """select t1.name, t1.item_name, t1.page_name, t1.website_image, t1.item_group,
-			t1.web_long_description as website_description, t2.name as route
-		from `tabItem` t1, `tabWebsite Route` t2
-		where t1.show_in_website = 1 and (item_group in (%s)
-			or t1.name in (select parent from `tabWebsite Item Group` where item_group in (%s)))
-			and t1.name = t2.docname and t2.ref_doctype='Item' """ % (child_groups, child_groups)
-
-	query += """order by t1.weightage desc, t1.modified desc limit %s, %s""" % (start, limit)
-
-	data = frappe.db.sql(query, {"product_group": product_group}, as_dict=1)
-
-	return [get_item_for_list_in_html(r) for r in data]
-
-def get_child_groups(item_group_name):
-	item_group = frappe.get_doc("Item Group", item_group_name)
-	return frappe.db.sql("""select name
-		from `tabItem Group` where lft>=%(lft)s and rgt<=%(rgt)s
-			and show_in_website = 1""", {"lft": item_group.lft, "rgt": item_group.rgt})
-
-def get_item_for_list_in_html(context):
-	return frappe.get_template("templates/includes/product_in_grid.html").render(context)
-
-def get_group_item_count(item_group):
-	child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(item_group)])
-	return frappe.db.sql("""select count(*) from `tabItem`
-		where docstatus = 0 and show_in_website = 1
-		and (item_group in (%s)
-			or name in (select parent from `tabWebsite Item Group`
-				where item_group in (%s))) """ % (child_groups, child_groups))[0][0]
-
diff --git a/erpnext/templates/generators/partner.py b/erpnext/templates/generators/partner.py
deleted file mode 100644
index 2079309..0000000
--- a/erpnext/templates/generators/partner.py
+++ /dev/null
@@ -1,28 +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 filter_strip_join
-
-doctype = "Sales Partner"
-condition_field = "show_in_website"
-
-def get_context(context):
-	partner_context = context.doc.as_dict()
-	
-	address = frappe.db.get_value("Address", 
-		{"sales_partner": context.doc.name, "is_primary_address": 1}, 
-		"*", as_dict=True)
-	if address:
-		city_state = ", ".join(filter(None, [address.city, address.state]))
-		address_rows = [address.address_line1, address.address_line2,
-			city_state, address.pincode, address.country]
-			
-		partner_context.update({
-			"email": address.email_id,
-			"partner_address": filter_strip_join(address_rows, "\n<br>"),
-			"phone": filter_strip_join(cstr(address.phone).split(","), "\n<br>")
-		})
-	
-	return partner_context