merge
diff --git a/config.json b/config.json
new file mode 100644
index 0000000..ff6f80f
--- /dev/null
+++ b/config.json
@@ -0,0 +1,146 @@
+{
+	"modules": {
+		"Selling": {
+			"link": "selling-home",
+			"color": "#3f4901",
+			"icon": "icon-tag",
+			"type": "module"
+		},
+		"Accounts": {
+			"link": "accounts-home",
+			"color": "#025770",
+			"icon": "icon-money",
+			"type": "module"
+		},
+		"Stock": {
+			"type": "module",
+			"link": "stock-home",
+			"color": "#a66a02",
+			"icon": "icon-truck"
+		},
+		"Buying": {
+			"type": "module",
+			"link": "buying-home",
+			"color": "#8F0222",
+			"icon": "icon-shopping-cart"
+		},
+		"Support": {
+			"type": "module",
+			"link": "support-home",
+			"color": "#410169",
+			"icon": "icon-phone"
+		},
+		"Projects": {
+			"type": "module",
+			"link": "projects-home",
+			"color": "#473b7f",
+			"icon": "icon-tasks"
+		},
+		"Manufacturing": {
+			"type": "module",
+			"link": "manufacturing-home",
+			"color": "#590116",
+			"icon": "icon-magic"
+		},
+		"Website": {
+			"type": "module",
+			"link": "website-home",
+			"color": "#968c00",
+			"icon": "icon-globe"
+		},
+		"HR": {
+			"type": "module",
+			"link": "hr-home",
+			"color": "#018d6c",
+			"label": "Human Resources",
+			"icon": "icon-group"
+		},
+		"Setup": {
+			"type": "setup",
+			"link": "Setup",
+			"color": "#484848",
+			"icon": "icon-wrench"
+		},
+		"Activity": {
+			"type": "page",
+			"link": "activity",
+			"color": "#633501",
+			"icon": "icon-play",
+			"label": "Activity"
+		},
+		"Knowledge Base": {
+			"type": "page",
+			"link": "questions",
+			"color": "#01372b",
+			"label": "Knowledge Base",
+			"icon": "icon-question-sign"
+		}
+	},
+	"web": {
+		"pages": {
+			"about": {
+				"template": "app/website/templates/pages/about",
+				"args_method": "website.doctype.about_us_settings.about_us_settings.get_args"
+			},
+			"account": {
+				"template": "app/website/templates/pages/account"
+			},
+			"attributions": {
+				"template": "app/website/templates/pages/attributions"
+			},
+			"blog": {
+				"template": "app/website/templates/pages/blog",
+				"args_method": "website.helpers.blog.get_blog_template_args"
+			},
+			"contact": {
+				"template": "app/website/templates/pages/contact",
+				"args_doctype": "Contact Us Settings"
+			},
+			"index": {
+				"template": "app/website/templates/pages/index"
+			},
+			"order": {
+				"no_cache": true,
+				"template": "app/website/templates/pages/order",
+				"args_method": "selling.doctype.sales_order.sales_order.get_website_args"
+			},
+			"orders": {
+				"template": "app/website/templates/pages/orders",
+				"args_method": "selling.doctype.sales_order.sales_order.get_currency_and_number_format"
+			},
+			"product_search": {
+				"template": "app/website/templates/pages/product_search"
+			},
+			"ticket": {
+				"no_cache": true,
+				"template": "app/website/templates/pages/ticket",
+				"get_website_args": "support.doctype.support_ticket.support_ticket.get_website_args"
+			},
+			"tickets": {
+				"template": "app/website/templates/pages/tickets"
+			},
+			"writers": {
+				"template": "app/website/templates/pages/writers",
+				"args_method": "website.helpers.blog.get_writers_args"
+			}
+		},
+		"generators": {
+			"Web Page": {
+				"template": "app/website/templates/html/web_page.html",
+				"condition_field": "published"
+			},
+			"Blog Post": {
+				"template": "app/website/templates/html/blog_page.html",
+				"condition_field": "published"
+			},
+			"Item": {
+				"template": "app/website/templates/html/product_page.html",
+				"condition_field": "show_in_website"
+			},
+			"Item Group":{
+				"template": "app/website/templates/html/product_group.html",
+				"condition_field": "show_in_website"
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/home/page/activity/activity.txt b/home/page/activity/activity.txt
index ec39d01..57f4b7a 100644
--- a/home/page/activity/activity.txt
+++ b/home/page/activity/activity.txt
@@ -1,21 +1,32 @@
 [
  {
-  "owner": "Administrator", 
+  "creation": "2012-06-14 18:44:56", 
   "docstatus": 0, 
-  "creation": "2012-02-29 11:59:13", 
+  "modified": "2013-04-03 14:59:38", 
   "modified_by": "Administrator", 
-  "modified": "2012-02-29 12:11:46"
+  "owner": "Administrator"
  }, 
  {
-  "name": "__common__", 
-  "title": "Activity", 
-  "module": "Home", 
   "doctype": "Page", 
+  "module": "Home", 
+  "name": "__common__", 
   "page_name": "activity", 
-  "standard": "Yes"
+  "standard": "Yes", 
+  "title": "Activity"
  }, 
  {
-  "name": "activity", 
-  "doctype": "Page"
+  "doctype": "Page Role", 
+  "name": "__common__", 
+  "parent": "activity", 
+  "parentfield": "roles", 
+  "parenttype": "Page", 
+  "role": "All"
+ }, 
+ {
+  "doctype": "Page", 
+  "name": "activity"
+ }, 
+ {
+  "doctype": "Page Role"
  }
 ]
\ No newline at end of file
diff --git a/home/page/desktop/__init__.py b/home/page/desktop/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/home/page/desktop/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/home/page/desktop/desktop.css b/home/page/desktop/desktop.css
deleted file mode 100644
index ed3a1b3..0000000
--- a/home/page/desktop/desktop.css
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Sprite CSS */
-
-.case-border {
-	border-radius: 10px;
-	-moz-border-radius: 10px;
-	-webkit-border-radius: 10px;
-	width: 32px;
-	height: 32px;
-	padding: 12px;
-	border: 2px solid white;
-	box-shadow: 0 0 4px 1px black;
-	-moz-box-shadow: 0 0 4px 1px black;
-	-webkit-box-shadow: 0 0 4px 1px black;
-	-o-box-shadow: 0 0 4px 1px black;
-	margin: auto;
-}
-
-.case-wrapper {
-	margin: 24px;
-	float: left;
-	width: 100px;
-	height: 100px;
-}
-
-.case-wrapper i {
-	font-size: 32px;
-	color: #f8f8f8;
-}
-
-.case-label {
-	color: white;
-	padding-top: 10px;
-	text-align: center;
-	text-shadow: 1px 1px 2px #000, 1px 1px 2px #000, 1px 1px 2px #000, 0px 0px 2px #000;
-}
-
-/* Hover and click effects */
-.case-border:hover, .circle:hover, .hover-effect {
-	box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important;
-	-moz-box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important;
-	-webkit-box-shadow: 0 0 2px 0px black, 0 0 4px 1px white !important;
-	-o-box-shadow: 0 0 2px 0px black, 0 0 10px 1px white !important;
-}
-
-.case-border:active, .case-border:focus, .case-border-click {
-	transform: scale(0.98, 0.98);
-	-ms-transform: scale(0.98, 0.98); /* IE 9 */
-	-webkit-transform: scale(0.98, 0.98); /* Safari and Chrome */
-	-o-transform: scale(0.98, 0.98); /* Opera */
-	-moz-transform: scale(0.98, 0.98); /* Firefox */
-}
-
-.circle:active, .circle:focus, .circle-click {
-	transform: scale(1, 1);
-	-ms-transform: scale(1, 1); /* IE 9 */
-	-webkit-transform: scale(1, 1); /* Safari and Chrome */
-	-o-transform: scale(1, 1); /* Opera */
-	-moz-transform: scale(1, 1); /* Firefox */
-}
-
-.circle {
-	border-radius: 30px;
-	-moz-border-radius: 30px;
-	-webkit-border-radius: 30px;
-	height: 15px;
-	line-height: 12px;
-	min-width: 15px;
-	background: #B00D07;
-	padding: 3px;
-	float: right;
-	margin-top: -12px;
-	margin-right: 10px;
-	border: 2px solid white;
-	box-shadow: 0 0 4px 1px black;
-	-moz-box-shadow: 0 0 4px 1px black;
-	-webkit-box-shadow: 0 0 4px 1px black;
-	-o-box-shadow: 0 0 4px 1px black;
-}
-
-.circle-text {
-	color: white;
-	text-align: center;
-	display: inline-block;
-	margin-top: 1px;
-}
-
diff --git a/home/page/desktop/desktop.html b/home/page/desktop/desktop.html
deleted file mode 100644
index 43ee423..0000000
--- a/home/page/desktop/desktop.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<div style="min-height: 500px; background: None; text-align: center;
-	margin: 0px auto;">	
-	<div id="icon-grid">
-	</div>
-</div>
-<div style="clear: both"></div>
diff --git a/home/page/desktop/desktop.js b/home/page/desktop/desktop.js
deleted file mode 100644
index 87181d8..0000000
--- a/home/page/desktop/desktop.js
+++ /dev/null
@@ -1,101 +0,0 @@
-wn.provide('erpnext.desktop');
-
-erpnext.desktop.refresh = function() {
-	erpnext.desktop.render();
-
-	$("#icon-grid").sortable({
-		update: function() {
-			new_order = [];
-			$("#icon-grid .case-wrapper").each(function(i, e) {
-				new_order.push($(this).attr("data-name"));
-			});
-			wn.defaults.set_default("_desktop_items", new_order);
-		}
-	});
-}
-
-erpnext.desktop.render = function() {
-	document.title = "Desktop";
-	var add_icon = function(m) {
-		var module = wn.modules[m];
-		if(!module.label) 
-			module.label = m;
-		module.name = m;
-		module.label = wn._(module.label);
-		module.gradient_css = wn.get_gradient_css(module.color, 45);
-		module._link = module.link.toLowerCase().replace("/", "-");
-		
-		$module_icon = $(repl('\
-			<div id="module-icon-%(_link)s" class="case-wrapper" \
-				data-name="%(name)s" data-link="%(link)s">\
-				<div class="case-border" style="%(gradient_css)s">\
-					<i class="%(icon)s"></i>\
-				</div>\
-				<div class="case-label">%(label)s</div>\
-			</div>', module)).click(function() {
-				wn.set_route($(this).attr("data-link"));
-			}).css({
-				cursor:"pointer"
-			}).appendTo("#icon-grid");
-	}
-	
-	// modules
-	var modules_list = wn.user.get_desktop_items();
-	$.each(modules_list, function(i, m) {
-		if(!in_list(['Setup', 'Core'], m) && wn.boot.profile.allow_modules.indexOf(m)!=-1)
-			add_icon(m);
-	})
-
-	// setup
-	if(user_roles.indexOf('System Manager')!=-1)
-		add_icon('Setup')
-
-	// notifications
-	erpnext.desktop.show_pending_notifications();
-
-}
-
-erpnext.desktop.show_pending_notifications = function() {
-	var add_circle = function(str_module, id, title) {
-		var module = $('#'+str_module);
-		module.prepend(
-			repl('<div id="%(id)s" class="circle" title="%(title)s" style="display: None">\
-					<span class="circle-text"></span>\
-				 </div>', {id: id, title: wn._(title)}));
-		
-		var case_border = module.find('.case-border');
-		var circle = module.find('.circle');
-
-		var add_hover_and_click = function(primary, secondary, hover_class, click_class) {
-			primary
-			.hover(
-				function() { secondary.addClass(hover_class); },
-				function() { secondary.removeClass(hover_class); })
-			.mousedown(function() { secondary.addClass(click_class); })
-			.mouseup(function() { secondary.removeClass(click_class); })
-			.focusin(function() { $(this).mousedown(); })
-			.focusout(function() { $(this).mouseup(); })
-		}
-		
-		add_hover_and_click(case_border, circle, 'hover-effect', 'circle-click');
-		add_hover_and_click(circle, case_border, 'hover-effect', 'case-border-click');
-
-	}
-
-	add_circle('module-icon-messages', 'unread_messages', 'Unread Messages');
-	add_circle('module-icon-support-home', 'open_support_tickets', 'Open Support Tickets');
-	add_circle('module-icon-todo', 'things_todo', 'Things To Do');
-	add_circle('module-icon-calendar-event', 'todays_events', 'Todays Events');
-	add_circle('module-icon-projects-home', 'open_tasks', 'Open Tasks');
-	add_circle('module-icon-questions', 'unanswered_questions', 'Unanswered Questions');
-	add_circle('module-icon-selling-home', 'open_leads', 'Open Leads');
-
-	erpnext.update_messages();
-
-}
-
-pscript.onload_desktop = function() {
-	// load desktop
-	erpnext.desktop.refresh();
-}
-
diff --git a/home/page/desktop/desktop.txt b/home/page/desktop/desktop.txt
deleted file mode 100644
index 4a5fb95..0000000
--- a/home/page/desktop/desktop.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
-  "creation": "2012-06-14 18:44:56", 
-  "docstatus": 0, 
-  "modified": "2013-02-12 18:11:00", 
-  "modified_by": "Administrator", 
-  "owner": "Administrator"
- }, 
- {
-  "doctype": "Page", 
-  "module": "Home", 
-  "name": "__common__", 
-  "page_name": "desktop", 
-  "standard": "Yes", 
-  "title": "Desktop"
- }, 
- {
-  "doctype": "Page Role", 
-  "name": "__common__", 
-  "parent": "desktop", 
-  "parentfield": "roles", 
-  "parenttype": "Page", 
-  "role": "All"
- }, 
- {
-  "doctype": "Page", 
-  "name": "desktop"
- }, 
- {
-  "doctype": "Page Role"
- }
-]
\ No newline at end of file
diff --git a/patches/april_2013/p04_reverse_modules_list.py b/patches/april_2013/p04_reverse_modules_list.py
new file mode 100644
index 0000000..9215fea
--- /dev/null
+++ b/patches/april_2013/p04_reverse_modules_list.py
@@ -0,0 +1,11 @@
+import webnotes, json
+import webnotes.utils
+
+def execute():
+	modules = webnotes.get_config().modules
+	
+	ml = json.loads(webnotes.conn.get_global("modules_list") or "[]")
+	
+	webnotes.conn.set_global("hidden_modules", 
+		json.dumps(list(set(modules.keys()).difference(set(ml)))))
+	
\ No newline at end of file
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 0b7092c..8974f00 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -234,6 +234,6 @@
 	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Classic") # 2013-04-02',
 	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Modern") # 2013-04-02',
 	'execute:webnotes.reload_doc("selling", "Print Format", "Quotation Spartan") # 2013-04-02',
+	"patches.april_2013.p04_reverse_modules_list",
 	"execute:webnotes.delete_doc('Search Criteria', 'time_log_summary')"
-	
 ]
\ No newline at end of file
diff --git a/projects/page/projects_home/projects_home.js b/projects/page/projects_home/projects_home.js
index 0e7ccff..cfde6b3 100644
--- a/projects/page/projects_home/projects_home.js
+++ b/projects/page/projects_home/projects_home.js
@@ -26,12 +26,6 @@
 				description: wn._("Batch Time Logs for billing."),
 				doctype:"Time Log Batch"
 			},
-			{
-				label: wn._("Timesheet"),
-				description: wn._("[DEPRECATED] Timesheet for tasks."),
-				doctype:"Timesheet"
-			},
-
 		]
 	},
 	{
diff --git a/public/build.json b/public/build.json
index 05d603f..24abde2 100644
--- a/public/build.json
+++ b/public/build.json
@@ -13,7 +13,6 @@
 	"public/js/all-app.min.js": [
 		"app/public/js/startup.js",
 		"app/public/js/conf.js",
-		"app/public/js/modules.js",
 		"app/public/js/toolbar.js",
 		"app/public/js/feature_setup.js",
 		"app/public/js/utils.js",
diff --git a/public/js/modules.js b/public/js/modules.js
deleted file mode 100644
index dc9548f..0000000
--- a/public/js/modules.js
+++ /dev/null
@@ -1,105 +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/>.
-
-wn.home_page = "desktop";
-wn.provide("wn.module_page");
-
-$.extend(wn.modules, {
-	"Selling": {
-		link: "selling-home",
-		color: "#3f4901",
-		icon: "icon-tag"
-	},
-	"Accounts": {
-		link: "accounts-home",
-		color: "#025770",
-		icon: "icon-money"
-	},
-	"Stock": {
-		link: "stock-home",
-		color: "#a66a02",
-		icon: "icon-truck"
-	},
-	"Buying": {
-		link: "buying-home",
-		color: "#8F0222",
-		icon: "icon-shopping-cart"
-	},
-	"Support": {
-		link: "support-home",
-		color: "#410169",
-		icon: "icon-phone"
-	},
-	"Projects": {
-		link: "projects-home",
-		color: "#473b7f",
-		icon: "icon-tasks"
-	},
-	"Manufacturing": {
-		link: "manufacturing-home",
-		color: "#590116",
-		icon: "icon-magic"
-	},
-	"Website": {
-		link: "website-home",
-		color: "#968c00",
-		icon: "icon-globe"
-	},
-	"HR": {
-		link: "hr-home",
-		color: "#018d6c",
-		label: wn._("Human Resources"),
-		icon: "icon-group"
-	},
-	"Setup": {
-		link: "Setup",
-		color: "#484848",
-		icon: "icon-wrench"
-	},
-	"Activity": {
-		link: "activity",
-		color: "#633501",
-		icon: "icon-play",
-		label: wn._("Activity"),
-	},
-	"To Do": {
-		link: "todo",
-		color: "#febf04",
-		label: wn._("To Do"),
-		icon: "icon-check"
-	},
-	"Calendar": {
-		link: "Calendar/Event",
-		color: "#026584",
-		label: wn._("Calendar"),
-		icon: "icon-calendar"
-	},
-	"Messages": {
-		link: "messages",
-		color: "#8d016e",
-		label: wn._("Messages"),
-		icon: "icon-comments"
-	},
-	"Knowledge Base": {
-		link: "questions",
-		color: "#01372b",
-		label: wn._("Knowledge Base"),
-		icon: "icon-question-sign"
-	},
-	
-});
-
-wn.provide('erpnext.module_page');
\ No newline at end of file
diff --git a/public/js/startup.js b/public/js/startup.js
index 1ae3feb..0a6580b 100644
--- a/public/js/startup.js
+++ b/public/js/startup.js
@@ -31,11 +31,7 @@
 
 	if(user != 'Guest'){
 		erpnext.setup_mousetrap();
-		
-		// always allow apps
-		wn.boot.profile.allow_modules = wn.boot.profile.allow_modules.concat(
-			['To Do', 'Knowledge Base', 'Calendar', 'Activity', 'Messages'])
-		
+				
 		// setup toolbar
 		erpnext.toolbar.setup();
 		
diff --git a/public/js/toolbar.js b/public/js/toolbar.js
index bcd2ddd..03d7d0a 100644
--- a/public/js/toolbar.js
+++ b/public/js/toolbar.js
@@ -74,12 +74,11 @@
 	}
 
 	// add to dropdown
-	for(var i in modules_list) {
-		var m = modules_list[i]
-		if(m!='Setup' && wn.boot.profile.allow_modules.indexOf(m)!=-1 && wn.modules[m]) {
+	$.each(modules_list,function(i, m) {
+		if(m!='Setup') {
 			$('.navbar .modules').append(_get_list_item(m));			
 		}
-	}
+	})
 	
 	// setup for system manager
 	if(user_roles.indexOf("System Manager")!=-1) {
diff --git a/setup/page/modules_setup/__init__.py b/setup/page/modules_setup/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/setup/page/modules_setup/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/setup/page/modules_setup/modules_setup.css b/setup/page/modules_setup/modules_setup.css
deleted file mode 100644
index e69de29..0000000
--- a/setup/page/modules_setup/modules_setup.css
+++ /dev/null
diff --git a/setup/page/modules_setup/modules_setup.html b/setup/page/modules_setup/modules_setup.html
deleted file mode 100644
index 26130de..0000000
--- a/setup/page/modules_setup/modules_setup.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<div class="layout-wrapper">
-	<a class="close" onclick="window.history.back();">&times;</a>		
-	<h1>Modules Setup</h1>
-	<hr>
-	<div class="help" style="width: 300px; float: right">
-		Select checkbox to show / hide module.
-	</div>
-	<div id="modules-list">
-	</div>
-	<div>
-		<button class="btn btn-small btn-primary" id="modules-update" 
-			onclick="wn.pages.modules_setup.update()">Update</button>
-	</div>
-</div>
\ No newline at end of file
diff --git a/setup/page/modules_setup/modules_setup.js b/setup/page/modules_setup/modules_setup.js
deleted file mode 100644
index 5868b46..0000000
--- a/setup/page/modules_setup/modules_setup.js
+++ /dev/null
@@ -1,51 +0,0 @@
-wn.require('lib/js/lib/jquery/jquery.ui.sortable.js');
-
-$.extend(wn.pages.modules_setup, {
-	modules: ['Activity', 'Accounts', 'Selling', 'Buying', 'Stock', 'Manufacturing', 'Projects', 
-		'Support', 'HR', 'Website', 'To Do', 'Messages', 'Calendar', 'Knowledge Base'],	
-	onload: function(wrapper) {
-		wn.pages.modules_setup.refresh_page(JSON.parse(wn.boot.modules_list || "[]"));
-	},
-	refresh_page: function(ml) {
-		$('#modules-list').empty();
-
-		// Hide Setup and Dashboard modules
-		ml.indexOf('Setup')!=-1 && ml.splice(ml.indexOf('Setup'), 1);
-
-		// checked modules
-		for(i in ml) {
-			$('#modules-list').append(repl('<p style="cursor:move;">\
-				<input type="checkbox" data-module="%(m)s"> \
-				%(m)s</p>', {m:ml[i]}));
-		}
-		$('#modules-list [data-module]').attr('checked', true);
-		
-		// unchecked modules
-		var all = wn.pages.modules_setup.modules;
-		for(i in all) {
-			if(!$('#modules-list [data-module="'+all[i]+'"]').length) {
-				$('#modules-list').append(repl('<p style="cursor:move;">\
-					<input type="checkbox" data-module="%(m)s"> \
-					%(m)s</p>', {m:all[i]}));				
-			}
-		}
-		
-	},
-	update: function() {
-		var ml = [];
-		$('#modules-list [data-module]').each(function() {
-			if($(this).attr('checked')) 
-				ml.push($(this).attr('data-module'));
-		});
-		
-		wn.call({
-			method: 'setup.page.modules_setup.modules_setup.update',
-			args: {
-				ml: JSON.stringify(ml)
-			},
-			callback: function(r) {
-			},
-			btn: $('#modules-update').get(0)
-		});
-	}
-});
diff --git a/setup/page/modules_setup/modules_setup.py b/setup/page/modules_setup/modules_setup.py
deleted file mode 100644
index 3a3504a..0000000
--- a/setup/page/modules_setup/modules_setup.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from __future__ import unicode_literals
-import webnotes
-
-@webnotes.whitelist()
-def update(arg=None):
-	"""update modules"""
-	webnotes.conn.set_global('modules_list', webnotes.form_dict['ml'])
-	webnotes.msgprint('Updated')
-	webnotes.clear_cache()
\ No newline at end of file
diff --git a/setup/page/modules_setup/modules_setup.txt b/setup/page/modules_setup/modules_setup.txt
deleted file mode 100644
index a20e9df..0000000
--- a/setup/page/modules_setup/modules_setup.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2012-06-14 15:07:28", 
-  "modified_by": "Administrator", 
-  "modified": "2012-10-04 16:55:31"
- }, 
- {
-  "name": "__common__", 
-  "title": "Modules Setup", 
-  "module": "Setup", 
-  "doctype": "Page", 
-  "page_name": "modules_setup", 
-  "standard": "Yes"
- }, 
- {
-  "parent": "modules_setup", 
-  "name": "__common__", 
-  "doctype": "Page Role", 
-  "parenttype": "Page", 
-  "role": "System Manager", 
-  "parentfield": "roles"
- }, 
- {
-  "name": "modules_setup", 
-  "doctype": "Page"
- }, 
- {
-  "doctype": "Page Role"
- }
-]
\ No newline at end of file
diff --git a/startup/boot.py b/startup/boot.py
index 574646f..4774a90 100644
--- a/startup/boot.py
+++ b/startup/boot.py
@@ -26,9 +26,7 @@
 		import webnotes.model.doctype
 		bootinfo['notification_settings'] = webnotes.doc("Notification Control", 
 			"Notification Control").get_values()
-		
-		bootinfo['modules_list'] = webnotes.conn.get_global('modules_list')
-		
+				
 		# if no company, show a dialog box to create a new company
 		bootinfo['setup_complete'] = webnotes.conn.sql("""select name from 
 			tabCompany limit 1""") and 'Yes' or 'No'
diff --git a/startup/website.py b/startup/website.py
index 1041039..295e5bb 100644
--- a/startup/website.py
+++ b/startup/website.py
@@ -1,47 +1,8 @@
 import webnotes, conf, os
 
-
 def get_templates_path():
 	return os.path.join(os.path.dirname(conf.__file__), "app", "website", "templates")
 
-standard_pages = [
-	"404", "about", "account", "attributions", "blog", "contact", "error", "index",
-	"login", "message", "order", "orders", "print", "product_search", "profile",
-	"ticket", "tickets", "writers"
-]
-
-page_map = {
-	'Web Page': webnotes._dict({
-		"template": 'html/web_page.html',
-		"condition_field": "published"
-	}),
-	'Blog Post': webnotes._dict({
-		"template": 'html/blog_page.html',
-		"condition_field": "published",
-	}),
-	'Item': webnotes._dict({
-		"template": 'html/product_page.html',
-		"condition_field": "show_in_website",
-	}),
-	'Item Group': webnotes._dict({
-		"template": "html/product_group.html",
-		"condition_field": "show_in_website"
-	})
-}
-
-page_settings_map = {
-	"about": "website.doctype.about_us_settings.about_us_settings.get_args",
-	"contact": "Contact Us Settings",
-	"blog": "website.helpers.blog.get_blog_template_args",
-	"writers": "website.helpers.blog.get_writers_args",
-	"print": "core.doctype.print_format.print_format.get_args",
-	"orders": "selling.doctype.sales_order.sales_order.get_currency_and_number_format",
-	"order": "selling.doctype.sales_order.sales_order.get_website_args",
-	"ticket": "support.doctype.support_ticket.support_ticket.get_website_args"
-}
-
-no_cache = ["message", "print", "order", "ticket"]
-
 def get_home_page():
 	doc_name = webnotes.conn.get_value('Website Settings', None, 'home_page')
 	if doc_name:
diff --git a/utilities/page/messages/__init__.py b/utilities/page/messages/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/utilities/page/messages/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/utilities/page/messages/messages.css b/utilities/page/messages/messages.css
deleted file mode 100644
index 88bbde7..0000000
--- a/utilities/page/messages/messages.css
+++ /dev/null
@@ -1,32 +0,0 @@
-#message-post-text {
-}
-
-#message-list {	
-}
-
-.message {
-	padding: 7px;
-	padding-left: 17px;
-	border-bottom: 1px solid #ccc;
-}
-
-.message-mark {
-	margin-left: -17px;
-	width: 9px;
-	position: absolute;
-	height: 30px;
-}
-
-.message .help {
-	margin-bottom: 0px;
-	padding-bottom: 0px;
-	color: #888;
-	font-size: 11px;
-}
-
-.message-other {
-}
-
-.message-self {
-	background-color: #eee;
-}
\ No newline at end of file
diff --git a/utilities/page/messages/messages.html b/utilities/page/messages/messages.html
deleted file mode 100644
index e69de29..0000000
--- a/utilities/page/messages/messages.html
+++ /dev/null
diff --git a/utilities/page/messages/messages.js b/utilities/page/messages/messages.js
deleted file mode 100644
index 4d77e16..0000000
--- a/utilities/page/messages/messages.js
+++ /dev/null
@@ -1,214 +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/>.
-
-wn.provide('erpnext.messages');
-
-wn.pages.messages.onload = function(wrapper) {
-	wn.ui.make_app_page({
-		parent: wrapper,
-		title: "Messages"
-	});
-	
-	$('<div><div class="avatar avatar-large">\
-		<img id="avatar-image" src="lib/images/ui/avatar.png"></div>\
-		<h3 style="display: inline-block" id="message-title">Everyone</h3>\
-	</div><hr>\
-	<div id="post-message">\
-	<textarea style="width: 100%; height: 24px;"></textarea>\
-	<div><button class="btn">Post</button></div><hr>\
-	</div>\
-	<div class="all-messages"></div>').appendTo($(wrapper).find('.layout-main-section'));
-
-	wrapper.appframe.add_home_breadcrumb();
-	wrapper.appframe.add_breadcrumb(wn.modules["Messages"].icon);
-	
-	erpnext.messages = new erpnext.Messages(wrapper);
-	erpnext.toolbar.set_new_comments(0);
-}
-
-$(wn.pages.messages).bind('show', function() {
-	// remove alerts
-	$('#alert-container .alert').remove();
-	
-	erpnext.toolbar.set_new_comments(0);	
-	erpnext.messages.show();
-	setTimeout("erpnext.messages.refresh()", 17000);
-})
-
-erpnext.Messages = Class.extend({
-	init: function(wrapper) {
-		this.wrapper = wrapper;
-		this.show_active_users();
-		this.make_post_message();
-		this.make_list();
-		//this.update_messages('reset'); //Resets notification icons		
-	},
-	make_post_message: function() {
-		var me = this;
-		$('#post-message textarea').keydown(function(e) {
-			if(e.which==13) {
-				$('#post-message .btn').click();
-				return false;
-			}
-		});
-		
-		$('#post-message .btn').click(function() {
-			var txt = $('#post-message textarea').val();
-			if(txt) {
-				wn.call({
-					module:'utilities',
-					page:'messages',
-					method:'post',
-					args: {
-						txt: txt,
-						contact: me.contact
-					},
-					callback:function(r,rt) {
-						$('#post-message textarea').val('')
-						me.list.run();
-					},
-					btn: this
-				});
-			}			
-		});
-	},
-	show: function() {
-		var contact = this.get_contact() || this.contact || user;
-
-		$('#message-title').html(contact==user ? "Everyone" :
-			wn.user_info(contact).fullname)
-
-		$('#avatar-image').attr("src", wn.utils.get_file_link(wn.user_info(contact).image));
-
-		$("#show-everyone").toggle(contact!=user);
-		
-		$("#post-message button").text(contact==user ? "Post Publicly" : "Post to user")
-		
-		this.contact = contact;
-		this.list.opts.args.contact = contact;
-		this.list.run();
-		
-	},
-	// check for updates every 5 seconds if page is active
-	refresh: function() {
-		setTimeout("erpnext.messages.refresh()", 17000);
-		if(wn.container.page.label != 'Messages') return;
-		this.show();
-	},
-	get_contact: function() {
-		var route = location.hash;
-		if(route.indexOf('/')!=-1) {
-			var name = decodeURIComponent(route.split('/')[1]);
-			if(name.indexOf('__at__')!=-1) {
-				name = name.replace('__at__', '@');
-			}
-			return name;
-		}
-	},
-	make_list: function() {
-		this.list = new wn.ui.Listing({
-			parent: $(this.wrapper).find('.all-messages'),
-			method: 'utilities.page.messages.messages.get_list',
-			args: {
-				contact: null
-			},
-			hide_refresh: true,
-			no_loading: true,
-			render_row: function(wrapper, data) {
-				$(wrapper).removeClass('list-row');
-				
-				data.creation = dateutil.comment_when(data.creation);
-				data.comment_by_fullname = wn.user_info(data.owner).fullname;
-				data.image = wn.utils.get_file_link(wn.user_info(data.owner).image);
-				data.mark_html = "";
-
-				data.reply_html = '';
-				if(data.owner==user) {
-					data.cls = 'message-self';
-					data.comment_by_fullname = 'You';	
-				} else {
-					data.cls = 'message-other';
-				}
-
-				// delete
-				data.delete_html = "";
-				if(data.owner==user || data.comment.indexOf("assigned to")!=-1) {
-					data.delete_html = repl('<a class="close" \
-						onclick="erpnext.messages.delete(this)"\
-						data-name="%(name)s">&times;</a>', data);
-				}
-				
-				if(data.owner==data.comment_docname && data.parenttype!="Assignment") {
-					data.mark_html = "<div class='message-mark' title='Public'\
-						style='background-color: green'></div>"
-				}
-
-				wrapper.innerHTML = repl('<div class="message %(cls)s">%(mark_html)s\
-						<span class="avatar avatar-small"><img src="%(image)s"></span><b>%(comment)s</b>\
-						%(delete_html)s\
-						<div class="help">by %(comment_by_fullname)s, %(creation)s</div>\
-					</div>\
-					<div style="clear: both;"></div>', data);
-			}
-		});
-	},
-	delete: function(ele) {
-		$(ele).parent().css('opacity', 0.6);
-		wn.call({
-			method:'utilities.page.messages.messages.delete',
-			args: {name : $(ele).attr('data-name')},
-			callback: function() {
-				$(ele).parent().toggle(false);
-			}
-		});
-	},
-	show_active_users: function() {
-		var me = this;
-		wn.call({
-			module:'utilities',
-			page:'messages',
-			method:'get_active_users',
-			callback: function(r,rt) {
-				var $body = $(me.wrapper).find('.layout-side-section');
-				$('<h4>Users</h4><hr>\
-					<div id="show-everyone">\
-						<a href="#messages/'+user+'" class="btn">\
-							Show messages from everyone</a><hr></div>\
-				').appendTo($body);
-				r.message.sort(function(a, b) { return b.has_session - a.has_session; });
-				for(var i in r.message) {
-					var p = r.message[i];
-					if(p.name != user) {
-						p.fullname = wn.user_info(p.name).fullname;
-						p.image = wn.utils.get_file_link(wn.user_info(p.name).image);
-						p.name = p.name.replace('@', '__at__');
-						p.status_color = p.has_session ? "green" : "#ddd";
-						p.status = p.has_session ? "Online" : "Offline";
-						$(repl('<p>\
-							<span class="avatar avatar-small" \
-								style="border: 3px solid %(status_color)s" \
-								title="%(status)s"><img src="%(image)s"></span>\
-							<a href="#!messages/%(name)s">%(fullname)s</a>\
-							</p>', p))
-							.appendTo($body);						
-					}
-				}
-			}
-		});
-	}
-});
-
-
diff --git a/utilities/page/messages/messages.py b/utilities/page/messages/messages.py
deleted file mode 100644
index 90f5e91..0000000
--- a/utilities/page/messages/messages.py
+++ /dev/null
@@ -1,117 +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 webnotes
-
-@webnotes.whitelist()
-def get_list(arg=None):
-	"""get list of messages"""
-	webnotes.form_dict['limit_start'] = int(webnotes.form_dict['limit_start'])
-	webnotes.form_dict['limit_page_length'] = int(webnotes.form_dict['limit_page_length'])
-	webnotes.form_dict['user'] = webnotes.session['user']
-
-	# set all messages as read
-	webnotes.conn.begin()
-	webnotes.conn.sql("""UPDATE `tabComment`
-	set docstatus = 1 where comment_doctype in ('My Company', 'Message')
-	and comment_docname = %s
-	""", webnotes.user.name)
-	webnotes.conn.commit()
-
-	if webnotes.form_dict['contact'] == webnotes.session['user']:
-		# return messages
-		return webnotes.conn.sql("""select * from `tabComment` 
-		where (owner=%(contact)s 
-			or comment_docname=%(user)s 
-			or (owner=comment_docname and ifnull(parenttype, "")!="Assignment"))
-		and comment_doctype ='Message'
-		order by creation desc
-		limit %(limit_start)s, %(limit_page_length)s""", webnotes.form_dict, as_dict=1)		
-	else:
-		return webnotes.conn.sql("""select * from `tabComment` 
-		where (owner=%(contact)s and comment_docname=%(user)s)
-		or (owner=%(user)s and comment_docname=%(contact)s)
-		or (owner=%(contact)s and comment_docname=%(contact)s)
-		and comment_doctype ='Message'
-		order by creation desc
-		limit %(limit_start)s, %(limit_page_length)s""", webnotes.form_dict, as_dict=1)
-		
-
-@webnotes.whitelist()
-def get_active_users(arg=None):
-	return webnotes.conn.sql("""select name,
-		(select count(*) from tabSessions where user=tabProfile.name
-			and timediff(now(), lastupdate) < time("01:00:00")) as has_session
-	 	from tabProfile 
-		where ifnull(enabled,0)=1 and
-		docstatus < 2 and 
-		name not in ('Administrator', 'Guest') 
-		order by first_name""", as_dict=1)
-
-@webnotes.whitelist()
-def post(arg=None):
-	import webnotes
-	"""post message"""
-	if not arg:
-		arg = {}
-		arg.update(webnotes.form_dict)
-	
-	if isinstance(arg, basestring):
-		import json
-		arg = json.loads(arg)
-
-	from webnotes.model.doc import Document
-	d = Document('Comment')
-	d.parenttype = arg.get("parenttype")
-	d.comment = arg['txt']
-	d.comment_docname = arg['contact']
-	d.comment_doctype = 'Message'
-	d.save()
-
-	import webnotes.utils
-	if webnotes.utils.cint(arg.get('notify')):
-		notify(arg)
-	
-@webnotes.whitelist()
-def delete(arg=None):
-	webnotes.conn.sql("""delete from `tabComment` where name=%s""", 
-		webnotes.form_dict['name']);
-
-def notify(arg=None):
-	from webnotes.utils import cstr, get_fullname
-	from startup import get_url
-	
-	fn = get_fullname(webnotes.user.name) or webnotes.user.name
-	
-	url = get_url()
-	
-	message = '''You have a message from <b>%s</b>:
-	
-	%s
-	
-	To answer, please login to your erpnext account at \
-	<a href=\"%s\" target='_blank'>%s</a>
-	''' % (fn, arg['txt'], url, url)
-	
-	sender = webnotes.conn.get_value("Profile", webnotes.user.name, "email") \
-		or webnotes.user.name
-	recipient = [webnotes.conn.get_value("Profile", arg["contact"], "email") \
-		or arg["contact"]]
-	
-	from webnotes.utils.email_lib import sendmail
-	sendmail(recipient, sender, message, arg.get("subject") or "You have a message from %s" % (fn,))
-	
\ No newline at end of file
diff --git a/utilities/page/messages/messages.txt b/utilities/page/messages/messages.txt
deleted file mode 100644
index 32fab17..0000000
--- a/utilities/page/messages/messages.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2012-02-24 11:21:57", 
-  "modified_by": "Administrator", 
-  "modified": "2012-02-24 11:21:57"
- }, 
- {
-  "name": "__common__", 
-  "title": "Messages", 
-  "module": "Utilities", 
-  "doctype": "Page", 
-  "page_name": "messages", 
-  "standard": "Yes"
- }, 
- {
-  "name": "messages", 
-  "doctype": "Page"
- }
-]
\ No newline at end of file
diff --git a/utilities/page/todo/__init__.py b/utilities/page/todo/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/utilities/page/todo/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/utilities/page/todo/todo.css b/utilities/page/todo/todo.css
deleted file mode 100644
index f67f729..0000000
--- a/utilities/page/todo/todo.css
+++ /dev/null
@@ -1,51 +0,0 @@
-.todoitem {
-	padding-bottom: 3px;
-	clear: both;
-}
-
-.todoitem div {
-	float: left;
-	display: inline-block;
-	padding: 3px;
-}
-
-.todoitem .label {
-	width: 50px;
-	margin-right: 11px;
-	margin-top: 3px;
-	text-align: center;
-}
-
-.todoitem .todo-date {
-	margin-top: -2px;
-	margin-right: 7px;
-	color: #aaa;
-}
-
-.todoitem .close {
-	margin-left: 5px;
-	font-size: 17px;
-}
-
-.todoitem .close-span {
-	float: right;
-}
-
-.todo-separator {
-	border-bottom: 1px solid #DEB85F;
-	margin-bottom: 5px;
-	clear: both;
-}
-
-.todo-content {
-	padding-right: 15px;
-}
-
-.todo-layout {
-	background-color: #FFFDC9;
-	min-height: 300px;
-}
-
-.todoitem .popup-on-click {
-	margin: 0px 6px;
-}
\ No newline at end of file
diff --git a/utilities/page/todo/todo.html b/utilities/page/todo/todo.html
deleted file mode 100644
index e00f8ef..0000000
--- a/utilities/page/todo/todo.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="layout-wrapper layout-wrapper-background">
-	<div class="appframe-area"></div>
-	<div class="layout-main todo-layout">
-		<div>
-			<div id="todo-list">
-				<div class="todo-content"></div>
-			</div>
-		</div>
-		<div style="clear: both"></div>
-	</div>
-</div>
\ No newline at end of file
diff --git a/utilities/page/todo/todo.js b/utilities/page/todo/todo.js
deleted file mode 100644
index fa82002..0000000
--- a/utilities/page/todo/todo.js
+++ /dev/null
@@ -1,212 +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/>.
-
-wn.provide('erpnext.todo');
-
-erpnext.todo.refresh = function() {
-	wn.call({
-		method: 'utilities.page.todo.todo.get',
-		callback: function(r,rt) {
-			var todo_list = $('#todo-list div.todo-content');
-			var assigned_todo_list = $('#assigned-todo-list div.todo-content');
-			todo_list.empty();
-			assigned_todo_list.empty();
-			
-			var nothing_to_do = function() {
-				$('#todo-list div.todo-content')
-					.html('<div class="alert">Nothing to do :)</div>');
-			}
-			
-			
-			if(r.message) {
-				for(var i in r.message) {
-					new erpnext.todo.ToDoItem(r.message[i]);
-				}
-				if (!todo_list.html()) { nothing_to_do(); }
-			} else {
-				nothing_to_do();
-			}
-		}
-	});
-}
-
-erpnext.todo.ToDoItem = Class.extend({
-	init: function(todo) {
-		label_map = {
-			'High': 'label-important',
-			'Medium': 'label-info',
-			'Low':''
-		}
-		todo.labelclass = label_map[todo.priority];
-		todo.userdate = dateutil.str_to_user(todo.date) || '';
-		
-		todo.fullname = '';
-		if(todo.assigned_by) {
-			var assigned_by = wn.boot.user_info[todo.assigned_by]
-			todo.fullname = repl("[By %(fullname)s] ".bold(), {
-				fullname: (assigned_by ? assigned_by.fullname : todo.assigned_by),
-			});
-		}
-		
-		var parent_list = "#todo-list";
-		if(todo.owner !== user) {
-			var owner = wn.boot.user_info[todo.owner];
-			todo.fullname = repl("[To %(fullname)s] ".bold(), {
-				fullname: (owner ? owner.fullname : todo.owner),
-			});
-		}
-		parent_list += " div.todo-content";
-		
-		if(todo.reference_name && todo.reference_type) {
-			todo.link = repl('<a href="#!Form/%(reference_type)s/%(reference_name)s">\
-						%(reference_type)s: %(reference_name)s</a>', todo);
-		} else if(todo.reference_type) {
-			todo.link = repl('<br><a href="#!List/%(reference_type)s">\
-						%(reference_type)s</a>', todo);
-		} else {
-			todo.link = '';
-		}
-		if(!todo.description) todo.description = '';
-		todo.description_display = todo.description.replace(/\n\n/g, "<br>").trim();
-				
-		$(parent_list).append(repl('\
-			<div class="todoitem">\
-				<div class="label %(labelclass)s">%(priority)s</div>\
-				<div class="popup-on-click"><a href="#">[edit]</a></div>\
-				<div class="todo-date-fullname">\
-					<div class="todo-date">%(userdate)s</div>\
-					%(fullname)s:\
-				</div>\
-				<div class="description">%(description_display)s\
-					<span class="ref_link">%(link)s</span>\
-				</div>\
-				<div class="close-span"><a href="#" class="close">&times;</a></div>\
-			</div>\
-			<div class="todo-separator"></div>', todo));
-		$todo = $(parent_list + ' div.todoitem:last');
-		
-		if(todo.checked) {
-			$todo.find('.description').css('text-decoration', 'line-through');
-		}
-		
-		if(!todo.reference_type)
-			$todo.find('.ref_link').toggle(false);
-		
-		$todo.find('.popup-on-click')
-			.data('todo', todo)
-			.click(function() {
-				erpnext.todo.make_dialog($(this).data('todo'));
-				return false;
-			});
-			
-		$todo.find('.close')
-			.data('name', todo.name)
-			.click(function() {
-				$(this).parent().css('opacity', 0.5);
-				wn.call({
-					method:'utilities.page.todo.todo.delete',
-					args: {name: $(this).data('name')},
-					callback: function() {
-						erpnext.todo.refresh();
-					}
-				});
-				return false;
-			})
-	}
-});
-
-erpnext.todo.make_dialog = function(det) {
-	if(!erpnext.todo.dialog) {
-		var dialog = new wn.ui.Dialog({
-			width: 480,
-			title: 'To Do', 
-			fields: [
-				{fieldtype:'Text', fieldname:'description', label:'Description', 
-					reqd:1},
-				{fieldtype:'Date', fieldname:'date', label:'Event Date', reqd:1},
-				{fieldtype:'Check', fieldname:'checked', label:'Completed'},
-				{fieldtype:'Select', fieldname:'priority', label:'Priority', reqd:1, 'options':['Medium','High','Low'].join('\n')},
-				{fieldtype:'Button', fieldname:'save', label:'Save (Ctrl+S)'}
-			]
-		});
-		
-		dialog.fields_dict.save.input.onclick = function() {
-			erpnext.todo.save(this);	
-		}
-		erpnext.todo.dialog = dialog;
-	}
-
-	if(det) {
-		erpnext.todo.dialog.set_values({
-			date: det.date,
-			priority: det.priority,
-			description: det.description,
-			checked: det.checked
-		});
-		erpnext.todo.dialog.det = det;		
-	}
-	erpnext.todo.dialog.show();
-	
-}
-
-erpnext.todo.save = function(btn) {
-	var d = erpnext.todo.dialog;
-	var det = d.get_values();
-	
-	if(!det) {
-	 	return;
-	}
-	
-	det.name = d.det.name || '';
-	wn.call({
-		method:'utilities.page.todo.todo.edit',
-		args: det,
-		btn: btn,
-		callback: function() {
-			erpnext.todo.dialog.hide();
-			erpnext.todo.refresh();
-		}
-	});
-}
-
-wn.pages.todo.onload = function(wrapper) {
-	// create app frame
-	wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.appframe-area'), 'To Do');
-	wrapper.appframe.add_home_breadcrumb();
-	wrapper.appframe.add_breadcrumb(wn.modules["To Do"].icon);
-	wrapper.appframe.add_button('Refresh', erpnext.todo.refresh, 'icon-refresh');
-	wrapper.appframe.add_button('Add', function() {
-		erpnext.todo.make_dialog({
-			date:get_today(), priority:'Medium', checked:0, description:''});
-	}, 'icon-plus');
-	wrapper.appframe.add_ripped_paper_effect(wrapper);
-	
-	// show report button for System Manager
-	if(wn.boot.profile.roles.indexOf("System Manager") !== -1) {
-		wrapper.appframe.add_button("Report", function() { wn.set_route("query-report", "todo"); },
-			"icon-table");
-	}
-
-	// load todos
-	erpnext.todo.refresh();
-	
-	// save on click
-	wrapper.save_action = function() {
-		if(erpnext.todo.dialog && erpnext.todo.dialog.display) {
-			erpnext.todo.dialog.fields_dict.save.input.click();
-		}
-	};
-}
\ No newline at end of file
diff --git a/utilities/page/todo/todo.py b/utilities/page/todo/todo.py
deleted file mode 100644
index f0de04e..0000000
--- a/utilities/page/todo/todo.py
+++ /dev/null
@@ -1,64 +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 webnotes
-from webnotes.model.doc import Document
-
-@webnotes.whitelist()
-def get(arg=None):
-	"""get todo list"""
-	return webnotes.conn.sql("""select name, owner, description, date,
-		priority, checked, reference_type, reference_name, assigned_by
-		from `tabToDo` where (owner=%s or assigned_by=%s)
-		order by field(priority, 'High', 'Medium', 'Low') asc, date asc""",
-		(webnotes.session['user'], webnotes.session['user']), as_dict=1)
-
-@webnotes.whitelist()		
-def edit(arg=None):
-	import markdown2
-	args = webnotes.form_dict
-
-	d = Document('ToDo', args.get('name') or None)
-	d.description = args['description']
-	d.date = args['date']
-	d.priority = args['priority']
-	d.checked = args.get('checked', 0)
-	if not d.owner: d.owner = webnotes.session['user']
-	d.save(not args.get('name') and 1 or 0)
-
-	if args.get('name') and d.checked:
-		notify_assignment(d)
-
-	return d.name
-
-@webnotes.whitelist()
-def delete(arg=None):
-	name = webnotes.form_dict['name']
-	d = Document('ToDo', name)
-	if d and d.name and d.owner != webnotes.session['user']:
-		notify_assignment(d)
-	webnotes.conn.sql("delete from `tabToDo` where name = %s", name)
-
-def notify_assignment(d):
-	doc_type = d.reference_type
-	doc_name = d.reference_name
-	assigned_by = d.assigned_by
-	
-	if doc_type and doc_name and assigned_by:
-		from webnotes.widgets.form import assign_to
-		assign_to.notify_assignment(assigned_by, d.owner, doc_type, doc_name)
-		
\ No newline at end of file
diff --git a/utilities/page/todo/todo.txt b/utilities/page/todo/todo.txt
deleted file mode 100644
index 523bb43..0000000
--- a/utilities/page/todo/todo.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-[
- {
-  "owner": "Administrator", 
-  "docstatus": 0, 
-  "creation": "2012-02-23 13:59:03", 
-  "modified_by": "Administrator", 
-  "modified": "2012-02-23 13:59:03"
- }, 
- {
-  "name": "__common__", 
-  "title": "To Do", 
-  "module": "Utilities", 
-  "doctype": "Page", 
-  "page_name": "todo", 
-  "standard": "Yes"
- }, 
- {
-  "name": "todo", 
-  "doctype": "Page"
- }
-]
\ No newline at end of file
diff --git a/website/helpers/blog.py b/website/helpers/blog.py
index fb85e0d..386c4b7 100644
--- a/website/helpers/blog.py
+++ b/website/helpers/blog.py
@@ -74,7 +74,7 @@
 	webnotes.webutils.clear_cache(args.get('page_name'))
 	
 	comment['comment_date'] = webnotes.utils.global_date_format(comment['creation'])
-	template_args = { 'comment_list': [comment], 'template': 'html/comment.html' }
+	template_args = { 'comment_list': [comment], 'template': 'app/website/templates/html/comment.html' }
 	
 	# get html of comment row
 	comment_html = webnotes.webutils.build_html(template_args)
diff --git a/website/helpers/product.py b/website/helpers/product.py
index 4a1cd40..d6f16fb 100644
--- a/website/helpers/product.py
+++ b/website/helpers/product.py
@@ -82,7 +82,7 @@
 
 def get_item_for_list_in_html(r):
 	scrub_item_for_list(r)
-	r.template = "html/product_in_list.html"
+	r.template = "app/website/templates/html/product_in_list.html"
 	return build_html(r)
 
 def scrub_item_for_list(r):
diff --git a/website/templates/css/login.css b/website/templates/css/login.css
deleted file mode 100644
index 4120807..0000000
--- a/website/templates/css/login.css
+++ /dev/null
@@ -1,43 +0,0 @@
-	<style>
-		#login_wrapper {
-			width: 300px;
-			margin: 70px auto;
-		}
-
-		#login_wrapper,
-		#login_wrapper h3 {
-			color: #333;
-		}
-		
-		#login_wrapper a {
-			color: #0088cc;
-		}
-
-		.layout-wrapper {
-			background-color: #fff;
-			padding: 10px;
-			box-shadow: 1px 1px 3px 3px #ccc;
-			font-size: 12px;
-			min-height: 100px;
-			border-radius: 5px;
-		}
-
-		#login_wrapper h3 {
-			text-align: center;
-		}
-
-		.login-banner {
-			margin-bottom: 20px;
-		}
-		
-		.login-box td {
-			padding: 8px;
-		}
-		.login-box td input {
-			margin-bottom: 0px;
-		}
-		.login-footer {
-			text-align: center;
-			padding: 15px;
-		}
-	</style>
\ No newline at end of file
diff --git a/website/templates/html/base.html b/website/templates/html/base.html
deleted file mode 100644
index cfba1a5..0000000
--- a/website/templates/html/base.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<title>{{ title }}</title>
-	<meta name="generator" content="wnframework">
-	<script type="text/javascript" src="lib/js/lib/jquery/jquery.min.js"></script>
-	<script type="text/javascript" src="js/all-web.min.js"></script>
-	<script type="text/javascript" src="js/wn-web.js"></script>
-	<link type="text/css" rel="stylesheet" href="css/all-web.css">
-	<link type="text/css" rel="stylesheet" href="css/wn-web.css">
-	<link rel="shortcut icon" href="{{ favicon }}" type="image/x-icon">
-	<link rel="icon" href="{{ favicon }}" type="image/x-icon">
-	{% if description -%}
-	<meta name="description" content="{{ description }}">	
-	{%- endif %}
-	{% block header -%}
-	{%- endblock %}
-</head>
-<body>
-	{% block body %}
-	{% endblock %}
-</body>
-</html>
\ No newline at end of file
diff --git a/website/templates/html/blog_page.html b/website/templates/html/blog_page.html
index 270d427..cf1f00e 100644
--- a/website/templates/html/blog_page.html
+++ b/website/templates/html/blog_page.html
@@ -1,11 +1,11 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% block javascript %}
-	{% include "js/blog_page.js" %}
+	{% include "app/website/templates/js/blog_page.js" %}
 {% endblock %}
 
 {% block css %}
-	{% include "css/blog_page.css" %}
+	{% include "app/website/templates/css/blog_page.css" %}
 {% endblock %}
 
 {% block content %}
@@ -23,7 +23,7 @@
 	<!-- end blog content -->
 	{% if blogger_info %}
 	<hr />
-	{% include "html/blogger.html" %}
+	{% include "app/website/templates/html/blogger.html" %}
 	{% endif %}
 	<hr>
 	<h3>{{ texts.comments }}</h3><br>
@@ -35,7 +35,7 @@
 		</div>
 		{% endif %}
 		
-		{% include 'html/comment.html' %}
+		{% include 'app/website/templates/html/comment.html' %}
 	</div>
 	<div><button class="btn add-comment">{{ texts.add_comment }}</button></div>
 	<div style="display: none; margin-top: 10px;" 
@@ -52,5 +52,5 @@
 		</form>
 	</div>
 </div>
-{% include 'html/blog_footer.html' %}
+{% include 'app/website/templates/html/blog_footer.html' %}
 {% endblock %}
\ No newline at end of file
diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html
index 624371e..570c769 100644
--- a/website/templates/html/outer.html
+++ b/website/templates/html/outer.html
@@ -1,4 +1,4 @@
-{% extends "html/base.html" %}
+{% extends "lib/templates/base.html" %}
 
 {% block body %}
 	<div class="container">
@@ -10,13 +10,13 @@
 			<div class="span12">{{ banner_html }}</div>
 		</div>{% endif %}
 		<div class="outer">
-			{% include "html/navbar.html" %}
+			{% include "app/website/templates/html/navbar.html" %}
 			<div class="content row" id="page-{{ name }}" style="display: block;">
 			{%- block content -%}
 			{%- endblock -%}
 			</div>
 		</div>
 	</div>
-	{% include "html/footer.html" %}
+	{% include "app/website/templates/html/footer.html" %}
 
 {% endblock %}
\ No newline at end of file
diff --git a/website/templates/html/page.html b/website/templates/html/page.html
index 9d38cdc..c9fbec4 100644
--- a/website/templates/html/page.html
+++ b/website/templates/html/page.html
@@ -1,4 +1,4 @@
-{% extends "html/outer.html" %}
+{% extends "app/website/templates/html/outer.html" %}
 
 {% block title -%}{{ title }}{%- endblock %}
 
diff --git a/website/templates/html/product_group.html b/website/templates/html/product_group.html
index 510f994..b3c8511 100644
--- a/website/templates/html/product_group.html
+++ b/website/templates/html/product_group.html
@@ -1,11 +1,11 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% block content %}
-{% include 'html/product_search_box.html' %}
-{% include 'html/product_breadcrumbs.html' %}
+{% include 'app/website/templates/html/product_search_box.html' %}
+{% include 'app/website/templates/html/product_breadcrumbs.html' %}
 <div class="span12">
 	{% if slideshow %}<!-- slideshow -->
-	{% include "html/slideshow.html" %}
+	{% include "app/website/templates/html/slideshow.html" %}
 	{% endif %}
 	{% if description %}<!-- description -->
 	<div>{{ description or ""}}</div>
diff --git a/website/templates/html/product_in_list.html b/website/templates/html/product_in_list.html
index bc62607..5cd9eac 100644
--- a/website/templates/html/product_in_list.html
+++ b/website/templates/html/product_in_list.html
@@ -4,7 +4,7 @@
 		{%- if website_image -%}
 		<img class="product-image" style="width: 80%; margin: auto;" src="{{ website_image }}">
 		{%- else -%}
-		{% include 'html/product_missing_image.html' %}
+		{% include 'app/website/templates/html/product_missing_image.html' %}
 		{%- endif -%}
 		</a>
 	</div>
diff --git a/website/templates/html/product_page.html b/website/templates/html/product_page.html
index f897a31..23091ad 100644
--- a/website/templates/html/product_page.html
+++ b/website/templates/html/product_page.html
@@ -1,28 +1,28 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% block javascript %}
-	{% include "js/product_page.js" %}
+	{% include "app/website/templates/js/product_page.js" %}
 {% endblock %}
 
 {% block css %}
-	{% include "css/product_page.css" %}
+	{% include "app/website/templates/css/product_page.css" %}
 {% endblock %}
 
 {% block content %}
-	{% include 'html/product_search_box.html' %}
-	{% include 'html/product_breadcrumbs.html' %}
+	{% include 'app/website/templates/html/product_search_box.html' %}
+	{% include 'app/website/templates/html/product_breadcrumbs.html' %}
 	<div class="span12 product-page-content" itemscope itemtype="http://schema.org/Product">
 		<div class="row">
 			<div class="span6">
 				{% if slideshow %}
-					{% include "html/slideshow.html" %}
+					{% include "app/website/templates/html/slideshow.html" %}
 				{% else %}
 					{% if website_image %}
 					<image itemprop="image" class="item-main-image"
 						src="{{ website_image }}" />
 					{% else %}
 					<div class="img-area">
-						{% include 'html/product_missing_image.html' %}
+						{% include 'app/website/templates/html/product_missing_image.html' %}
 					</div>
 					{% endif %}
 				{% endif %}
diff --git a/website/templates/html/web_page.html b/website/templates/html/web_page.html
index d3c646a..6b8c914 100644
--- a/website/templates/html/web_page.html
+++ b/website/templates/html/web_page.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% block javascript %}
 	{% if insert_code %}
@@ -8,7 +8,7 @@
 
 {% block content %}
 <div class="span12" style="margin-top: 15px;">
-	{% include "html/slideshow.html" %}
+	{% include "app/website/templates/html/slideshow.html" %}
 	{{ main_section }}
 </div>
 {% endblock %}
\ No newline at end of file
diff --git a/website/templates/js/login.js b/website/templates/js/login.js
deleted file mode 100644
index 06ea4c5..0000000
--- a/website/templates/js/login.js
+++ /dev/null
@@ -1,97 +0,0 @@
-
-var login = {};
-
-$(document).ready(function(wrapper) {
-	$('#login_btn').click(login.do_login)
-		
-	$('#password').keypress(function(ev){
-		if(ev.which==13 && $('#password').val()) {
-			$('form').submit(function() {
-				login.do_login();
-				return false;
-			});
-		}
-	});
-	$(document).trigger('login_rendered');
-})
-
-// Login
-login.do_login = function(){
-    var args = {};
-	if(window.is_sign_up) {
-		args.cmd = "core.doctype.profile.profile.sign_up";
-		args.email = $("#login_id").val();
-	    args.full_name = $("#full_name").val();
-
-		if(!args.email || !valid_email(args.email) || !args.full_name) {
-			login.set_message("Valid email and name required.");
-			return false;
-		}
-	} else if(window.is_forgot) {
-		args.cmd = "reset_password";
-		args.user = $("#login_id").val();
-		
-		if(!args.user) {
-			login.set_message("Valid Login Id required.");
-			return false;
-		}
-
-	} else {
-		args.cmd = "login"
-	    args.usr = $("#login_id").val();
-	    args.pwd = $("#password").val();
-
-		if(!args.usr || !args.pwd) {
-			login.set_message("Both login and password required.");
-			return false;
-		}	
-	}
-
-	$('#login_btn').attr("disabled", "disabled");
-	$("#login-spinner").toggle(true);
-	$('#login_message').toggle(false);
-	
-	$.ajax({
-		type: "POST",
-		url: "server.py",
-		data: args,
-		dataType: "json",
-		success: function(data) {
-			$("input").val("");
-			$("#login-spinner").toggle(false);
-			$('#login_btn').attr("disabled", false);
-			if(data.message=="Logged In") {
-				window.location.href = "app.html";
-			} else if(data.message=="No App") {
-				window.location.href = "index";
-			} else {
-				login.set_message(data.message);
-			}
-		}
-	})
-	
-	return false;
-}
-
-login.sign_up = function() {
-	$("#login_wrapper h3").html("Sign Up");
-	$("#login-label").html("Email Id");
-	$("#password-row, #sign-up-wrapper, #login_message").toggle(false);
-	$("#full-name-row").toggle(true);
-	$("#login_btn").html("Register");
-	$("#forgot-wrapper").html("<a onclick='location.reload()' href='#'>Login</a>")
-	window.is_sign_up = true;
-}
-
-login.show_forgot_password = function() {
-	$("#login_wrapper h3").html("Forgot");
-	$("#login-label").html("Email Id");
-	$("#password-row, #sign-up-wrapper, #login_message").toggle(false);
-	$("#login_btn").html("Send Password");
-	$("#forgot-wrapper").html("<a onclick='location.reload()' href='#'>Login</a>")
-	window.is_forgot = true;
-}
-
-login.set_message = function(message, color) {
-    $('#login_message').html(message).toggle(true);	
-}
\ No newline at end of file
diff --git a/website/templates/pages/404.html b/website/templates/pages/404.html
deleted file mode 100644
index 8a676ce..0000000
--- a/website/templates/pages/404.html
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends "html/outer.html" %}
-
-{% set title="Not Found" %}
-
-{% block content %}
-<div class="content">
-	<div class="layout-wrapper layout-main">
-		<h3><i class="icon-exclamation-sign"></i> Page missing or moved</h3>
-		<br>
-		<p>We are very sorry for this, but the page you are looking for is missing
-			(this could be because of a typo in the address) or moved.</p>
-	</div>
-</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/about.html b/website/templates/pages/about.html
index 380c543..0cbd562 100644
--- a/website/templates/pages/about.html
+++ b/website/templates/pages/about.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="About Us" %}
 
diff --git a/website/templates/pages/account.html b/website/templates/pages/account.html
index 8e8f4b4..fe2b858 100644
--- a/website/templates/pages/account.html
+++ b/website/templates/pages/account.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="My Account" %}
 
diff --git a/website/templates/pages/attributions.html b/website/templates/pages/attributions.html
index 9e4b50d..05e8e88 100644
--- a/website/templates/pages/attributions.html
+++ b/website/templates/pages/attributions.html
@@ -1,4 +1,4 @@
-{% extends "html/outer.html" %}
+{% extends "app/website/templates/html/outer.html" %}
 
 {% block header %}
 <style>
diff --git a/website/templates/pages/blog.html b/website/templates/pages/blog.html
index df258e1..7483c7c 100644
--- a/website/templates/pages/blog.html
+++ b/website/templates/pages/blog.html
@@ -1,11 +1,11 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% block javascript %}
-	{% include "js/blog.js" %}
+	{% include "app/website/templates/js/blog.js" %}
 {% endblock %}
 
 {% block css %}
-	{% include "css/blog.css" %}
+	{% include "app/website/templates/css/blog.css" %}
 {% endblock %}
 
 {% set title="Blog" %}
@@ -29,5 +29,5 @@
 			style="display:none;">More...</button>
 	</div>
 </div>
-{% include 'html/blog_footer.html' %}
+{% include 'app/website/templates/html/blog_footer.html' %}
 {% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/contact.html b/website/templates/pages/contact.html
index 79bcb04..b9b3cd7 100644
--- a/website/templates/pages/contact.html
+++ b/website/templates/pages/contact.html
@@ -1,7 +1,7 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% block javascript %}
-	{% include "js/contact.js" %}
+	{% include "app/website/templates/js/contact.js" %}
 {% endblock %}
 
 {% set title="Contact Us" %}
diff --git a/website/templates/pages/error.html b/website/templates/pages/error.html
deleted file mode 100644
index 2be810d..0000000
--- a/website/templates/pages/error.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{% extends "html/outer.html" %}
-
-{% set title="Error" %}
-
-{% block content %}
-<div class="content">
-	<div class="layout-wrapper layout-main">
-		<h3><i class="icon-exclamation-sign"></i> Oops, a server error has occured</h3>
-		<br>
-		<pre>%(error)s</pre>
-	</div>
-</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/index.html b/website/templates/pages/index.html
index 1307872..761da0c 100644
--- a/website/templates/pages/index.html
+++ b/website/templates/pages/index.html
@@ -1 +1 @@
-{% extends "html/web_page.html" %}
\ No newline at end of file
+{% extends "app/website/templates/html/web_page.html" %}
\ No newline at end of file
diff --git a/website/templates/pages/login.html b/website/templates/pages/login.html
deleted file mode 100644
index 6b847ff..0000000
--- a/website/templates/pages/login.html
+++ /dev/null
@@ -1,62 +0,0 @@
-{% extends "html/base.html" %}
-
-{% block header %}
-	<script>
-		{% include "js/login.js" %}
-	</script>
-	{% include "css/login.css" %}
-{% endblock %}
-
-{% set title="Login" %}
-
-{% block body %}
-	<div class="container" id='login_wrapper'>
-		<div class='layout-wrapper layout-main'>
-			<p id="login_message" class="alert" style="display: none;"></p>
-			<h3><i class="icon-lock" style="margin-top: 7px"></i> Login</h3>
-			<form autocomplete="on">
-				<table border="0" class="login-box">
-					<tbody>
-						<tr>
-							<td style="text-align: right; padding: 3px;" 
-								id="login-label">Login Id</td>
-							<td><input id="login_id" type="text" style="width: 180px"/></td>
-						</tr>
-						<tr id="password-row">
-							<td style="text-align: right; padding: 3px;" >Password</td>
-							<td><input id="password" type="password" style="width: 180px" /></td>
-						</tr>
-						<tr id="full-name-row" style="display: none;">
-							<td style="text-align: right; padding: 3px;">Full Name</td>
-							<td><input id="full_name" type="text" style="width: 180px" /></td>
-						</tr>
-						<tr>
-							<td>&nbsp;</td>
-							<td>
-								<button type="submit" id="login_btn" 
-									class="btn btn-small btn-primary">Login</button>
-								<img src="lib/images/ui/button-load.gif" id="login-spinner" 
-									style="display: none;">
-							</td>
-						</tr>
-						</tbody>
-				</table>
-			</form>
-			<br>
-			<p style="text-align: center" id="forgot-wrapper">
-				<a id="forgot-password" style="cursor:pointer"
-				onclick="return login.show_forgot_password()">Forgot Password</a></p>
-			<p style="text-align: center" id="sign-up-wrapper">
-				New user? <a id="sign-up" style="cursor:pointer"
-				onclick="return login.sign_up()">Sign Up</a></p>
-		</div>
-	</div>
-	<div class="web-footer login-footer container">
-		<a href="index.html">Home</a> | 
-			<a href="https://erpnext.com">ERPNext</a><br><br>
-			{% if copyright %}
-			<div class="web-footer-copyright">&copy; {{ copyright }}
-			{% endif %}
-	</div>
-
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/message.html b/website/templates/pages/message.html
deleted file mode 100644
index ea9e14e..0000000
--- a/website/templates/pages/message.html
+++ /dev/null
@@ -1,11 +0,0 @@
-{% extends "html/outer.html" %}
-
-{% set title=webnotes.message_title %}
-
-{% block content %}
-<div class="content">
-	<div class="layout-wrapper layout-main">
-		{{ webnotes.message }}
-	</div>
-</div>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/order.html b/website/templates/pages/order.html
index 9e80694..8e7bfe7 100644
--- a/website/templates/pages/order.html
+++ b/website/templates/pages/order.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title=doc.name %}
 
diff --git a/website/templates/pages/orders.html b/website/templates/pages/orders.html
index 3bb7bd4..0c93a68 100644
--- a/website/templates/pages/orders.html
+++ b/website/templates/pages/orders.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="My Orders" %}
 
diff --git a/website/templates/pages/print.html b/website/templates/pages/print.html
deleted file mode 100644
index b684dfe..0000000
--- a/website/templates/pages/print.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<title>Print Format</title>
-	<meta name="generator" content="wnframework">
-	<style>
-	{{ css }}
-	</style>
-</head>
-<body>
-	{{ body }}
-</body>
-{%- if comment -%}
-<!-- {{ comment }} -->
-{%- endif -%}
-</html>
\ No newline at end of file
diff --git a/website/templates/pages/product_search.html b/website/templates/pages/product_search.html
index 66bf160..2dab6ff 100644
--- a/website/templates/pages/product_search.html
+++ b/website/templates/pages/product_search.html
@@ -1,9 +1,9 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="Product Search" %}
 
 {% block javascript %}
-{% include "js/product_list.js" %}
+{% include "app/website/templates/js/product_list.js" %}
 {% endblock %}
 
 {% block content %}
@@ -17,7 +17,7 @@
 });
 </script>
 
-{% include 'html/product_search_box.html' %}
+{% include 'app/website/templates/html/product_search_box.html' %}
 <div class="span12">
 	<h3 class="search-results">Search Results</h3>
 	<div id="search-list" class="row">
diff --git a/website/templates/pages/profile.html b/website/templates/pages/profile.html
index 1b9350c..d689cfb 100644
--- a/website/templates/pages/profile.html
+++ b/website/templates/pages/profile.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="My Profile" %}
 
diff --git a/website/templates/pages/ticket.html b/website/templates/pages/ticket.html
index fe185f8..858dd3b 100644
--- a/website/templates/pages/ticket.html
+++ b/website/templates/pages/ticket.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title=doc.name %}
 
diff --git a/website/templates/pages/tickets.html b/website/templates/pages/tickets.html
index 11da329..843d10e 100644
--- a/website/templates/pages/tickets.html
+++ b/website/templates/pages/tickets.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="My Tickets" %}
 
diff --git a/website/templates/pages/writers.html b/website/templates/pages/writers.html
index bba3749..67c0b7e 100644
--- a/website/templates/pages/writers.html
+++ b/website/templates/pages/writers.html
@@ -1,4 +1,4 @@
-{% extends "html/page.html" %}
+{% extends "app/website/templates/html/page.html" %}
 
 {% set title="Blog Writers" %}
 
@@ -10,8 +10,8 @@
 	{% endif %}
 	<hr>
 	{% for blogger_info in bloggers %}
-	{% include "html/blogger.html" %}	
+	{% include "app/website/templates/html/blogger.html" %}	
 	{% endfor %}
 </div>
-{% include 'html/blog_footer.html' %}
+{% include 'app/website/templates/html/blog_footer.html' %}
 {% endblock %}
\ No newline at end of file