[cleanup] projects
diff --git a/erpnext/hr/doctype/leave_application/leave_application.py b/erpnext/hr/doctype/leave_application/leave_application.py
index 6882034..fee39aa 100755
--- a/erpnext/hr/doctype/leave_application/leave_application.py
+++ b/erpnext/hr/doctype/leave_application/leave_application.py
@@ -239,7 +239,7 @@
 
 	def notify(self, args):
 		args = frappe._dict(args)
-		from frappe.desk.page.messages.messages import post
+		from frappe.desk.page.chat.chat import post
 		post(**{"txt": args.message, "contact": args.message_to, "subject": args.subject,
 			"notify": cint(self.follow_via_email)})
 
diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js
index d190f34..e4ac864 100644
--- a/erpnext/projects/doctype/project/project.js
+++ b/erpnext/projects/doctype/project/project.js
@@ -11,6 +11,57 @@
 				"project_name": frm.doc.name
 			}
 		}
+
+		frm.set_query('customer', 'erpnext.controllers.queries.customer_query');
+
+		// sales order
+		frm.set_query('sales_order', function() {
+			var filters = {
+				'project': ["in", frm.doc.__islocal ? [""] : [frm.doc.name, ""]]
+			};
+
+			if (frm.doc.customer) {
+				filters["customer"] = frm.doc.customer;
+			}
+
+			return {
+				filters: filters
+			}
+		});
+	},
+	refresh: function(frm) {
+		if(frm.doc.__islocal) {
+			frm.web_link && frm.web_link.remove();
+		} else {
+			frm.add_web_link("/projects?project=" + encodeURIComponent(frm.doc.name));
+
+			if(frappe.model.can_read("Task")) {
+				frm.add_custom_button(__("Gantt Chart"), function() {
+					frappe.route_options = {"project": frm.doc.name,
+						"start": frm.doc.expected_start_date, "end": frm.doc.expected_end_date};
+					frappe.set_route("Gantt", "Task");
+				}, __("View"), true);
+				frm.add_custom_button(__("Tasks"), function() {
+					frappe.route_options = {"project": frm.doc.name}
+					frappe.set_route("List", "Task");
+				}, __("View"), true);
+			}
+
+			if(frappe.model.can_read("Time Log")) {
+				frm.add_custom_button(__("Time Logs"), function() {
+					frappe.route_options = {"project": frm.doc.name}
+					frappe.set_route("List", "Time Log");
+				}, __("View"), true);
+			}
+
+			if(frappe.model.can_read("Expense Claim")) {
+				frm.add_custom_button(__("Expense Claims"), function() {
+					frappe.route_options = {"project": frm.doc.name}
+					frappe.set_route("List", "Expense Claim");
+				}, __("View"), true);
+			}
+		}
+
 	}
 });
 
@@ -23,51 +74,3 @@
 	}
 })
 
-// show tasks
-cur_frm.cscript.refresh = function(doc) {
-	if(!doc.__islocal) {
-		if(frappe.model.can_read("Task")) {
-			cur_frm.add_custom_button(__("Gantt Chart"), function() {
-				frappe.route_options = {"project": doc.name, "start": doc.expected_start_date, "end": doc.expected_end_date};
-				frappe.set_route("Gantt", "Task");
-			}, __("View"), true);
-			cur_frm.add_custom_button(__("Tasks"), function() {
-				frappe.route_options = {"project": doc.name}
-				frappe.set_route("List", "Task");
-			}, __("View"), true);
-		}
-		if(frappe.model.can_read("Time Log")) {
-			cur_frm.add_custom_button(__("Time Logs"), function() {
-				frappe.route_options = {"project": doc.name}
-				frappe.set_route("List", "Time Log");
-			}, __("View"), true);
-		}
-
-		if(frappe.model.can_read("Expense Claim")) {
-			cur_frm.add_custom_button(__("Expense Claims"), function() {
-				frappe.route_options = {"project": doc.name}
-				frappe.set_route("List", "Expense Claim");
-			}, __("View"), true);
-		}
-	}
-}
-
-cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) {
-	return{
-		query: "erpnext.controllers.queries.customer_query"
-	}
-}
-
-cur_frm.fields_dict['sales_order'].get_query = function(doc) {
-	var filters = {
-		'project': ["in", doc.__islocal ? [""] : [doc.name, ""]]
-	};
-
-	if (doc.customer) {
-		filters["customer"] = doc.customer;
-	}
-
-	return {
-		filters: filters
-	}
-}
diff --git a/erpnext/projects/doctype/project/project.json b/erpnext/projects/doctype/project/project.json
index 34bb36f..ada5909 100644
--- a/erpnext/projects/doctype/project/project.json
+++ b/erpnext/projects/doctype/project/project.json
@@ -352,6 +352,7 @@
    "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
+   "description": "Project will be accessible on the website to these users", 
    "fieldname": "users", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -965,14 +966,14 @@
  "hide_heading": 0, 
  "hide_toolbar": 0, 
  "icon": "icon-puzzle-piece", 
- "idx": 1, 
+ "idx": 24, 
  "in_create": 0, 
  "in_dialog": 0, 
  "is_submittable": 0, 
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 4, 
- "modified": "2016-03-25 06:46:29.485193", 
+ "modified": "2016-03-31 01:34:05.703925", 
  "modified_by": "Administrator", 
  "module": "Projects", 
  "name": "Project", 
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index edfd964..90a2cb2 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -37,7 +37,7 @@
 		self.sync_tasks()
 		self.tasks = []
 		self.send_welcome_email()
-		
+
 	def validate_dates(self):
 		if self.expected_start_date and self.expected_end_date:
 			if getdate(self.expected_end_date) < getdate(self.expected_start_date):
@@ -124,7 +124,7 @@
 			from `tabPurchase Invoice Item` where project = %s and docstatus=1""", self.name)
 
 		self.total_purchase_cost = total_purchase_cost and total_purchase_cost[0][0] or 0
-				
+
 	def send_welcome_email(self):
 		url = get_url("/project/{0}".format(self.name))
 		messages = (
@@ -143,7 +143,7 @@
 				print user.welcome_email_sent
 				frappe.sendmail(user.user, subject=_("Project Collaboration Invitation"), content=content.format(*messages), bulk=True)
 				user.welcome_email_sent=1
-			
+
 
 def get_project_list(doctype, txt, filters, limit_start, limit_page_length=20):
 	return frappe.db.sql('''select distinct project.*
@@ -163,7 +163,7 @@
 	return {
 		"title": _("My Projects"),
 		"get_list": get_project_list,
-		"row_template": "templates/includes/project_row.html"
+		"row_template": "templates/includes/projects/project_row.html"
 	}
 
 @frappe.whitelist()
diff --git a/erpnext/templates/includes/project_row.html b/erpnext/templates/includes/projects/project_row.html
similarity index 86%
rename from erpnext/templates/includes/project_row.html
rename to erpnext/templates/includes/projects/project_row.html
index fc264c1..fcd0e22 100644
--- a/erpnext/templates/includes/project_row.html
+++ b/erpnext/templates/includes/projects/project_row.html
@@ -3,13 +3,13 @@
 	<a class="no-decoration" href="/projects?project={{ doc.name }}">
 		<div class="row">
 			<div class="col-xs-4">
-           
+
 				{{ doc.name }}
 			</div>
 			<div class="col-xs-4">
 				{% if doc.percent_complete %}
 					<div class="progress" style="margin-bottom: 0!important; margin-top: 10px!important; height:5px;">
-					  <div class="progress-bar progress-bar-warning" role="progressbar" 
+					  <div class="progress-bar progress-bar-{{ "warning" if doc.percent_complete|round < 100 else "success"}}" role="progressbar"
 					  	aria-valuenow="{{ doc.percent_complete|round|int }}"
 					  	aria-valuemin="0" aria-valuemax="100" style="width:{{ doc.percent_complete|round|int }}%;">
 					  </div>
diff --git a/erpnext/templates/includes/projects/timeline.html b/erpnext/templates/includes/projects/timeline.html
deleted file mode 100644
index 605404b..0000000
--- a/erpnext/templates/includes/projects/timeline.html
+++ /dev/null
@@ -1,17 +0,0 @@
-{% for timeline in doc.timelines %}
-	<article class="timeline-entry">
-		<div class="timeline-entry-inner">
-			<div class="timeline-icon {{ "bg-danger" if ((timeline.reference_name).startswith('ISS') and (timeline.subject).startswith('Open')) else "bg-warning" if ((timeline.reference_name).startswith('TASK') and (timeline.subject).startswith('Open')) else "bg-success" if (timeline.subject).startswith('Closed') else "bg-info"}}">		
-			</div>
-			<div class="timeline-label">
-				<span class="avatar avatar-small" title="{{ timeline.modified_by }}"> <img src="{{ timeline.user_image }}"></span>
-				<span class='indicator'>
-				{{timeline.reference_name}} {{timeline.subject }}
-				</span>
-				<span class='indicator pull-right'>
-				{{ frappe.utils.pretty_date(timeline.creation) }}
-				</span>
-			</div>
-		</div>
-	</article>
-{% endfor %}
\ No newline at end of file
diff --git a/erpnext/templates/pages/projects.html b/erpnext/templates/pages/projects.html
index 0663dbf..6ecdfb6 100644
--- a/erpnext/templates/pages/projects.html
+++ b/erpnext/templates/pages/projects.html
@@ -38,7 +38,7 @@
 <div class="col-xs-6">
 	{% if doc.percent_complete %}
 		<div class="progress progress-hg">
-		  <div class="progress-bar progress-bar-warning active" role="progressbar"
+		  <div class="progress-bar progress-bar-{{ "warning" if doc.percent_complete|round < 100 else "success" }} active" role="progressbar"
 		  	aria-valuenow="{{ doc.percent_complete|round|int }}"
 		  	aria-valuemin="0" aria-valuemax="100" style="width:{{ doc.percent_complete|round|int }}%;">
 		  </div>