Merge branch 'latest' of github.com:webnotes/erpnext into latest
diff --git a/erpnext/home/__init__.py b/erpnext/home/__init__.py
index bec99d4..75556e3 100644
--- a/erpnext/home/__init__.py
+++ b/erpnext/home/__init__.py
@@ -42,11 +42,12 @@
 	"makes a new Feed record"
 	#msgprint(subject)
 	from webnotes.model.doc import Document
+	from webnotes.utils import get_full_name
 
-	if feedtype in ('Login', 'Comment'):
+	if feedtype in ('Login', 'Comment', 'Assignment'):
 		# delete old login, comment feed
 		webnotes.conn.sql("""delete from tabFeed where 
-			datediff(curdate(), creation) > 7 and doc_type in ('Comment', 'Login')""")
+			datediff(curdate(), creation) > 7 and doc_type in ('Comment', 'Login', 'Assignment')""")
 	else:
 		# one feed per item
 		webnotes.conn.sql("""delete from tabFeed
@@ -60,6 +61,7 @@
 	f.doc_name = name
 	f.subject = subject
 	f.color = color
+	f.full_name = get_full_name(owner)
 	f.save()
 
 def update_feed(doc, method=None):   
diff --git a/erpnext/home/doctype/feed/feed.txt b/erpnext/home/doctype/feed/feed.txt
index f239f7c..62d6633 100644
--- a/erpnext/home/doctype/feed/feed.txt
+++ b/erpnext/home/doctype/feed/feed.txt
@@ -5,77 +5,85 @@
 	{
 		'creation': '2011-04-06 18:11:38',
 		'docstatus': 0,
-		'modified': '2012-02-03 11:28:16',
-		'modified_by': 'Administrator',
-		'owner': 'Administrator'
+		'modified': '2012-02-08 11:35:40',
+		'modified_by': u'Administrator',
+		'owner': u'Administrator'
 	},
 
 	# These values are common for all DocType
 	{
-		'autoname': '_FEED.#####',
-		'colour': 'White:FFF',
-		'default_print_format': 'Standard',
+		'autoname': u'_FEED.#####',
+		'colour': u'White:FFF',
+		'default_print_format': u'Standard',
 		'doctype': 'DocType',
-		'module': 'Home',
+		'module': u'Home',
 		'name': '__common__',
-		'section_style': 'Simple',
+		'section_style': u'Simple',
 		'show_in_menu': 0,
-		'version': 2
+		'version': 3
 	},
 
 	# These values are common for all DocField
 	{
-		'doctype': 'DocField',
+		'doctype': u'DocField',
 		'name': '__common__',
-		'parent': 'Feed',
-		'parentfield': 'fields',
-		'parenttype': 'DocType',
+		'parent': u'Feed',
+		'parentfield': u'fields',
+		'parenttype': u'DocType',
 		'permlevel': 0
 	},
 
 	# DocType, Feed
 	{
 		'doctype': 'DocType',
-		'name': 'Feed'
+		'name': u'Feed'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'feed_type',
-		'fieldtype': 'Select',
-		'label': 'Feed Type'
+		'doctype': u'DocField',
+		'fieldname': u'feed_type',
+		'fieldtype': u'Select',
+		'label': u'Feed Type'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'doc_type',
-		'fieldtype': 'Data',
-		'label': 'Doc Type'
+		'doctype': u'DocField',
+		'fieldname': u'doc_type',
+		'fieldtype': u'Data',
+		'label': u'Doc Type'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'doc_name',
-		'fieldtype': 'Data',
-		'label': 'Doc Name'
+		'doctype': u'DocField',
+		'fieldname': u'doc_name',
+		'fieldtype': u'Data',
+		'label': u'Doc Name'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'subject',
-		'fieldtype': 'Data',
-		'label': 'Subject'
+		'doctype': u'DocField',
+		'fieldname': u'subject',
+		'fieldtype': u'Data',
+		'label': u'Subject'
 	},
 
 	# DocField
 	{
-		'doctype': 'DocField',
-		'fieldname': 'color',
-		'fieldtype': 'Data',
-		'label': 'Color'
+		'doctype': u'DocField',
+		'fieldname': u'color',
+		'fieldtype': u'Data',
+		'label': u'Color'
+	},
+
+	# DocField
+	{
+		'doctype': u'DocField',
+		'fieldname': u'full_name',
+		'fieldtype': u'Data',
+		'label': u'Full Name'
 	}
 ]
\ No newline at end of file
diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js
index 90aef9e..9a76d16 100644
--- a/erpnext/home/page/event_updates/event_updates.js
+++ b/erpnext/home/page/event_updates/event_updates.js
@@ -457,11 +457,10 @@
 		parent: this.list_area,
 		query: repl('select \
 			distinct t1.name, t1.feed_type, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
-			concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")) as full_name, \
+			if(ifnull(t1.full_name,"")="", t1.owner, t1.full_name) as full_name, \
 			t1.modified, t1.color \
-			from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \
+			from tabFeed t1, tabUserRole t3, tabDocPerm t4 \
 			where t1.doc_type = t4.parent \
-			and t2.name = t1.owner \
 			and t3.parent = "%(user)s" \
 			and t4.role = t3.role \
 			and ifnull(t4.`read`,0) = 1 \
diff --git a/erpnext/startup/event_handlers.py b/erpnext/startup/event_handlers.py
index 3c6281f..d9fbbed 100644
--- a/erpnext/startup/event_handlers.py
+++ b/erpnext/startup/event_handlers.py
@@ -38,7 +38,6 @@
 
 def comment_added(doc):
 	"""add comment to feed"""
-	import json
 	home.make_feed('Comment', doc.comment_doctype, doc.comment_docname, doc.comment_by,
 		'<i>"' + doc.comment + '"</i>', '#6B24B3')
 
diff --git a/erpnext/startup/modules.js b/erpnext/startup/modules.js
index c22aee0..0280c74 100644
--- a/erpnext/startup/modules.js
+++ b/erpnext/startup/modules.js
@@ -15,10 +15,6 @@
 				new SidebarItem(ml[m]);
 			}
 		}
-		if(in_list(user_roles, 'System Manager')) {
-			var div = $a(page_body.left_sidebar, 'div', 'link_type', {padding:'8px', fontSize:'11px'});
-			$(div).html('[edit]').click(pscript.startup_set_module_order)
-		}
 		nav_obj.observers.push({notify:function(t,dt,dn) { pscript.select_sidebar_menu(t, dt, dn); }});
 
 		// select current
@@ -352,33 +348,3 @@
 			si.show_section(me.det.doc_type);
 	}
 }
-
-
-// ====================================================================
-// Drag & Drop order selection
-// ====================================================================
-
-pscript.startup_set_module_order = function() {
-	var update_order= function(ml) {
-		mdict = {};
-		for(var i=0; i<ml.length; i++) {
-			mdict[ml[i][3][3]] = {'module_seq':ml[i][1], 'is_hidden':(ml[i][2] ? 'No' : 'Yes')}
-		}
-		$c_obj('Home Control', 'set_module_order', JSON.stringify(mdict), function(r,rt) { pscript.startup_make_sidebar(); } )
-	}
-
-	var callback = function(r, rt) {
-		var ml = [];
-		for(var i=0; i<r.message.length; i++) {
-			var det = r.message[i];
-			ml.push([det[1], det[2], (det[3]!='No' ? 0 : 1), det[0]]);
-		}
-		new ListSelector('Set Module Sequence', 'Select items and set the order you want them to appear'+
-			'<br><b>Note:</b> <i>These changes will apply to all users!</i>', ml, update_order, 1);
-	}
-	$c_obj('Home Control', 'get_module_order', '', callback)
-
-}
-
-
-
diff --git a/erpnext/website/css/website.css b/erpnext/website/css/website.css
index 8a90b1b..28303db 100644
--- a/erpnext/website/css/website.css
+++ b/erpnext/website/css/website.css
@@ -61,6 +61,26 @@
 	overflow-x: hidden;
 }
 
+.web-page-status {
+	padding: 7px;
+	color: #777;
+	clear: both;
+	text-align: right;
+}
+
+.web-page-status a,
+.web-page-status a:hover,
+.web-page-status a:visited {
+	padding: 2px;
+	background-color: #777;
+	color: #FFF;
+	text-decoration: none;
+}
+
+.web-page-status a:hover {
+	background-color: #444;
+}
+
 footer {
 	color: #777;	
 }
diff --git a/erpnext/website/doctype/blog/blog.py b/erpnext/website/doctype/blog/blog.py
index c83b922..5e50327 100644
--- a/erpnext/website/doctype/blog/blog.py
+++ b/erpnext/website/doctype/blog/blog.py
@@ -23,8 +23,11 @@
 		from jinja2 import Template
 		import markdown2
 		import os
+		from webnotes.utils import global_date_format, get_full_name
 		
 		self.doc.content_html = markdown2.markdown(self.doc.content or '')
+		self.doc.full_name = get_full_name(self.doc.owner)
+		self.doc.updated = global_date_format(self.doc.modified)
 		
 		with open(os.path.join(os.path.dirname(__file__), 'template.html'), 'r') as f:
 			p.content = Template(f.read()).render(doc=self.doc)
@@ -35,5 +38,11 @@
 		p.save()
 		
 		website.utils.add_guest_access_to_page(p.name)
+		
+		# cleanup
+		for f in ['content_html', 'full_name', 'updated']:
+			if f in self.doc.fields:
+				del self.doc.fields[f]
+				
 
 			
\ No newline at end of file
diff --git a/erpnext/website/doctype/blog/blog_page.js b/erpnext/website/doctype/blog/blog_page.js
index 1df9b54..3ad2535 100644
--- a/erpnext/website/doctype/blog/blog_page.js
+++ b/erpnext/website/doctype/blog/blog_page.js
@@ -25,14 +25,14 @@
 
 	wrapper.comment_list = new wn.widgets.Listing({
 		parent: $(wrapper).find('.web-main-section').get(0),
-		query: 'select comment, comment_by_fullname, comment_date\
+		query: 'select comment, comment_by_fullname, modified\
 			from `tabComment Widget Record` where comment_doctype="Page"\
 			and comment_docname="{{ doc.name }}"',
 		no_result_message: 'Be the first one to comment',
 		render_row: function(parent, data) {
-			data.comment_date = dateutil.str_to_user(data.comment_date);
+			data.comment_date = prettyDate(data.modified);
 			$(parent).html(repl("<div style='color:#777'>\
-				On %(comment_date)s %(comment_by_fullname)s said:\
+				%(comment_by_fullname)s | %(comment_date)s:\
 				</div>\
 				<p style='margin-left: 20px;'>%(comment)s</p><br>", data))
 		},
diff --git a/erpnext/website/doctype/blog/template.html b/erpnext/website/doctype/blog/template.html
index f70bacb..1b81fe2 100644
--- a/erpnext/website/doctype/blog/template.html
+++ b/erpnext/website/doctype/blog/template.html
@@ -2,7 +2,8 @@
 	<div class="web-content" id="blog-{{ doc.name }}">
 		<h1>Blog</h1>
 		<div class="web-main-section">
-			<h2>{{ doc.title }}</h2>
+			<h3>{{ doc.title }}</h3>
+			<div class="help">By {{ doc.full_name }} on {{ doc.updated }}</div>
 			<br>
 			{{ doc.content_html }}
 		</div>
diff --git a/erpnext/website/doctype/web_page/template.html b/erpnext/website/doctype/web_page/template.html
index faacca1..1fb613c 100644
--- a/erpnext/website/doctype/web_page/template.html
+++ b/erpnext/website/doctype/web_page/template.html
@@ -14,11 +14,15 @@
 		<div class="web-side-section">
 			{{ doc.side_section_html }}
 			{% if doc.see_also %}
+			<div class="info-box">
 				<h4>See Also</h4>
 				{{ doc.see_also }}
+			</div>
 			{% endif %}
 		</div>
-		<div style="clear: both">
-		</div>
+		<div style="clear: both"></div>
 	</div>
-</div>
\ No newline at end of file
+</div>
+<div class="web-page-status">
+	Last Modified: {{ doc.updated }} <a href="#contact">Feedback</a>
+</div>
diff --git a/erpnext/website/doctype/web_page/web_page.py b/erpnext/website/doctype/web_page/web_page.py
index 8f7c38f..e262bfe 100644
--- a/erpnext/website/doctype/web_page/web_page.py
+++ b/erpnext/website/doctype/web_page/web_page.py
@@ -14,8 +14,10 @@
 		p = website.utils.add_page(self.doc.title)
 		
 		from jinja2 import Template
+		from webnotes.utils import global_date_format
 		import os
 	
+		self.doc.updated = global_date_format(self.doc.modified)
 		website.utils.markdown(self.doc, ['head_section','main_section', 'side_section'])
 		
 		self.add_page_links()
@@ -31,24 +33,21 @@
 	def add_page_links(self):
 		"""add links for next_page and see_also"""
 		if self.doc.next_page:
-			self.doc.next_page_html = """<div class="info-box round">
-			<p style="text-align: right"><b>Next:</b>
-				<a href="#!%(name)s">%(title)s</a></p></div>""" % {"name":self.doc.next_page, \
+			self.doc.next_page_html = """<div class="info-box round" style="text-align: right">
+				<b>Next:</b>
+				<a href="#!%(name)s">%(title)s</a></div>""" % {"name":self.doc.next_page, \
 						"title": webnotes.conn.get_value("Page", self.doc.next_page, "title")}
 
 		self.doc.see_also = ''
 		for d in self.doclist:
 			if d.doctype=='Related Page':
 				tmp = {"page":d.page, "title":webnotes.conn.get_value('Page', d.page, 'title')}
-				self.doc.see_also += """<li><a href="#!%(page)s">%(title)s</a></li>""" % tmp
-		
-		if self.doc.see_also:
-			self.doc.see_also = '<ul>%s</ul>' % self.doc.see_also
-		
+				self.doc.see_also += """<div><a href="#!%(page)s">%(title)s</a></div>""" % tmp
+				
 	def cleanup_temp(self):
 		"""cleanup temp fields"""
 		fl = ['main_section_html', 'side_section_html', 'see_also', \
-			'next_page_html', 'head_section_html']
+			'next_page_html', 'head_section_html', 'updated']
 		for f in fl:
 			if f in self.doc.fields:
 				del self.doc.fields[f]
diff --git a/erpnext/website/page/blog/blog.js b/erpnext/website/page/blog/blog.js
index 6be1d07..9e89acd 100644
--- a/erpnext/website/page/blog/blog.js
+++ b/erpnext/website/page/blog/blog.js
@@ -10,9 +10,9 @@
 		render_row: function(parent, data) {
 			if(data.content.length==300) data.content += '...';
 			data.date = prettyDate(data.modified);
-			parent.innerHTML = repl('<h4><a href="#!%(name)s">%(title)s</a></h4>\
-				<div class="help">By %(first_name)s %(last_name)s on %(date)s</div>\
-				<p><div class="comment">%(content)s</div></p><br>', data);
+			parent.innerHTML = repl('<h3><a href="#!%(name)s">%(title)s</a></h3>\
+				<p><div class="help">By %(first_name)s %(last_name)s on %(date)s</div></p>\
+				<div class="comment">%(content)s</div><br>', data);
 		},
 		page_length: 10
 	});
diff --git a/version.num b/version.num
index 24f98f2..be6c136 100644
--- a/version.num
+++ b/version.num
@@ -1 +1 @@
-367
\ No newline at end of file
+383
\ No newline at end of file