Merge branch 'master' into sales_purchase_return
diff --git a/patches/patch_list.py b/patches/patch_list.py
index 96a5e99..65fb44e 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -210,7 +210,6 @@
 	"execute:webnotes.delete_doc('DocType', 'Attendance Control Panel')",
 	"patches.march_2013.p02_get_global_default",
 	"patches.march_2013.p03_rename_blog_to_blog_post",
-	"execute:webnotes.bean('Style Settings', 'Style Settings').save()",
 	"execute:webnotes.reload_doc('hr', 'search_criteria', 'monthly_attendance_details')",
 	"patches.march_2013.p04_pos_update_stock_check",
 ]
\ No newline at end of file
diff --git a/public/js/feature_setup.js b/public/js/feature_setup.js
index 0304034..85c848d 100644
--- a/public/js/feature_setup.js
+++ b/public/js/feature_setup.js
@@ -166,22 +166,24 @@
 		'Address': {'fields':['sales_partner']},
 		'Contact': {'fields':['sales_partner']},
 		'Customer': {'fields':['sales_team']},
-		'Delivery Note': {'fields':['sales_team','Packing List']},
+		'Delivery Note': {'fields':['sales_team','packing_list']},
 		'Item': {'fields':['item_customer_details']},
-		'Sales Invoice': {'fields':['sales_team']},
-		'Sales Order': {'fields':['sales_team','Packing List']}
+		'Sales Invoice': {'fields':['sales_team', 'packing_list']},
+		'Sales Order': {'fields':['sales_team','packing_list']}
 	},
 	'fs_more_info': {
-		'Delivery Note': {'fields':['More Info']},
-		'Opportunity': {'fields':['More Info']},
-		'Material Request': {'fields':['More Info']},
-		'Lead': {'fields':['More Info']},
-		'Purchase Invoice': {'fields':['More Info']},
-		'Purchase Order': {'fields':['More Info']},
-		'Purchase Receipt': {'fields':['More Info']},
-		'Quotation': {'fields':['More Info']},
-		'Sales Invoice': {'fields':['More Info']},
-		'Sales Order': {'fields':['More Info']},
+		"Customer Issue": {"fields": ["more_info"]},
+		'Material Request': {'fields':['more_info']},
+		'Lead': {'fields':['more_info']},
+		'Opportunity': {'fields':['more_info']},
+		'Purchase Invoice': {'fields':['more_info']},
+		'Purchase Order': {'fields':['more_info']},
+		'Purchase Receipt': {'fields':['more_info']},
+		'Supplier Quotation': {'fields':['more_info']},
+		'Quotation': {'fields':['more_info']},
+		'Sales Invoice': {'fields':['more_info']},
+		'Sales Order': {'fields':['more_info']},
+		'Delivery Note': {'fields':['more_info']},
 	},
 	'fs_quality': {
 		'Item': {'fields':['Item Inspection Criteria','inspection_required']},
@@ -199,25 +201,23 @@
 }
 
 $(document).bind('form_refresh', function() {
-	for(sys_feat in sys_defaults)
-	{
-		if(sys_defaults[sys_feat]=='0' && (sys_feat in pscript.feature_dict)) //"Features to hide" exists
-		{
-			if(cur_frm.doc.doctype in  pscript.feature_dict[sys_feat])
-			{
-				for(fort in pscript.feature_dict[sys_feat][cur_frm.doc.doctype])
-				{
-					if(fort=='fields')
+	for(sys_feat in sys_defaults) {
+		if(sys_defaults[sys_feat]=='0' 
+			&& (sys_feat in pscript.feature_dict)) { //"Features to hide" exists
+
+			if(cur_frm.doc.doctype in  pscript.feature_dict[sys_feat]) {
+				for(fort in pscript.feature_dict[sys_feat][cur_frm.doc.doctype]) {
+					if(fort=='fields') {
 						hide_field(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort]);
-					else if(cur_frm.fields_dict[fort])
-					{
+					} else if(cur_frm.fields_dict[fort]) {
 						for(grid_field in pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort])
 							cur_frm.fields_dict[fort].grid.set_column_disp(pscript.feature_dict[sys_feat][cur_frm.doc.doctype][fort][grid_field], false);
-					}
-					else
+					} else {
 						msgprint('Grid "'+fort+'" does not exists');
+					}
 				}
 			}
+
 		}
 	}
 })
diff --git a/website/doctype/style_settings/custom_template.css b/website/doctype/style_settings/custom_template.css
index 208c7dd..f4038fb 100644
--- a/website/doctype/style_settings/custom_template.css
+++ b/website/doctype/style_settings/custom_template.css
@@ -53,11 +53,13 @@
 	border-radius: 5px;
 }
 {% else %}
+{% if doc.background_color == doc.page_background %}
 div.web-footer {
 	border-top: 1px solid #{{ get_hex_shade(doc.page_background or "ffffff", 15) }};
 	padding-top: 10px;
 }
 {% endif %}
+{% endif %}
 
 /* Bootstrap Navbar */
 .navbar-inverse .navbar-inner {
@@ -67,6 +69,14 @@
 	background-image: none;
 }
 
+.navbar-inner {
+	box-shadow: none;
+}
+
+{% if doc.top_bar_background == doc.page_background %}.navbar-inner {
+	border-bottom: 1px solid #{{ get_hex_shade(doc.page_background or "ffffff", 15) }};
+}{% endif %}
+
 .navbar-inverse .brand,
 .navbar-inverse .brand:hover,
 .navbar-inverse .brand:focus,
@@ -172,9 +182,22 @@
 }
 
 .breadcrumb {
-	background-color: #{{ get_hex_shade(doc.page_background or "ffffff", 5) }};
+	background-color: #{{ get_hex_shade(doc.page_background or "ffffff", 10) }};
 }
 
+.breadcrumb > li {
+  text-shadow: none;
+}
+
+.breadcrumb > li > .divider {
+  color: #{{ doc.page_text }};
+}
+
+.breadcrumb > .active {
+  color: #{{ doc.page_text }};
+}
+
+
 .table-striped tbody > tr:nth-child(odd) > td,
 .table-striped tbody > tr:nth-child(odd) > th {
 	background-color: #{{ get_hex_shade(doc.page_background or "ffffff", 5) }};
diff --git a/website/doctype/website_settings/website_settings.js b/website/doctype/website_settings/website_settings.js
index cbed609..a02c3b2 100644
--- a/website/doctype/website_settings/website_settings.js
+++ b/website/doctype/website_settings/website_settings.js
@@ -41,4 +41,14 @@
 				this.fieldobj.refresh_options(get_parent_options('top_bar_items'));
 			});
 	}
-});
\ No newline at end of file
+});
+
+cur_frm.cscript.set_banner_from_image = function(doc) {
+	if(!doc.banner_image) {
+		msgprint(wn._("Select a Banner Image first."));
+	}
+	var src = doc.banner_image;
+	if(src.indexOf("/")==-1) src = "files/" + src;
+	cur_frm.set_value("banner_html", "<a href='/'><img src='"+ src
+		+"'></a>");
+}
\ No newline at end of file
diff --git a/website/doctype/website_settings/website_settings.txt b/website/doctype/website_settings/website_settings.txt
index 5bc4f71..a39144c 100644
--- a/website/doctype/website_settings/website_settings.txt
+++ b/website/doctype/website_settings/website_settings.txt
@@ -2,7 +2,7 @@
  {
   "creation": "2013-03-07 11:55:11", 
   "docstatus": 0, 
-  "modified": "2013-03-12 11:17:11", 
+  "modified": "2013-03-13 16:25:22", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -79,6 +79,20 @@
   "label": "Banner"
  }, 
  {
+  "description": "Select an image of approx width 150px with a transparent background for best results.", 
+  "doctype": "DocField", 
+  "fieldname": "banner_image", 
+  "fieldtype": "Select", 
+  "label": "Banner Image", 
+  "options": "attach_files:"
+ }, 
+ {
+  "doctype": "DocField", 
+  "fieldname": "set_banner_from_image", 
+  "fieldtype": "Button", 
+  "label": "Set Banner from Image"
+ }, 
+ {
   "description": "Banner is above the Top Menu Bar.", 
   "doctype": "DocField", 
   "fieldname": "banner_html", 
diff --git a/website/utils.py b/website/utils.py
index b38d2b3..c7fe2f6 100644
--- a/website/utils.py
+++ b/website/utils.py
@@ -46,6 +46,8 @@
 	"writers": "website.helpers.blog.get_writers_args"
 }
 
+no_cache = "message"
+
 def render(page_name):
 	"""render html page"""
 	try:
@@ -68,10 +70,12 @@
 	
 	# load from cache, if auto cache clear is falsy
 	if not (hasattr(conf, 'auto_cache_clear') and conf.auto_cache_clear or 0):
-		html = webnotes.cache().get_value("page:" + page_name)
-		from_cache = True
+		if not page_name in no_cache:
+			html = webnotes.cache().get_value("page:" + page_name)
+			from_cache = True
 
 	if not html:
+		webnotes.connect()
 		html = load_into_cache(page_name)
 		from_cache = False