updates in web.py and template - page.html
diff --git a/public/web.py b/public/web.py
index c7c1df2..751d762 100755
--- a/public/web.py
+++ b/public/web.py
@@ -15,11 +15,49 @@
 sys.path.append('../lib/py')
 sys.path.append(conf.modules_path)
 
+def init():
+	import webnotes
+	webnotes.form = cgi.FieldStorage(keep_blank_values=True)
+	for key in webnotes.form.keys():
+		webnotes.form_dict[key] = webnotes.form.getvalue(key)
+	webnotes.connect()
+
+def respond():
+	html = get_html()
+	print "Content-Type: text/html"
+	print
+	print html.encode('utf-8')
+
+def get_html():
+	import webnotes
+	from webnotes.model.doc import Document
+	# Get web page
+	outer_env_dict = get_outer_env()
+	try:
+		if 'page' in webnotes.form_dict:
+			page_name = webnotes.form_dict['page']
+			if page_name.endswith('.html'):
+				page_name = page_name[:-5]
+				
+			if page_name.startswith('blog'):
+				raise Exception
+				#page_name = 
+			else:
+				page_name = get_web_page_name(page_name)		
+		else:
+			from webnotes.cms import get_home_page
+			page_name = get_home_page('Guest')
+		
+		page = Document('Web Page', page_name)
+		page.fields.update(outer_env_dict)
+
+		return build_html(page.fields, "page: %s" % page_name)
+		
+	except Exception, e:
+		return build_html(outer_env_dict, "error: %s" % webnotes.getTraceback(), '404.html')
+
 def get_outer_env():
-	"""env for outer (cache this)"""
-	
-	# TODO: Cache this in cache item
-	
+	"""env dict for outer template"""
 	import webnotes
 	return {
 		'top_bar_items': webnotes.conn.sql("""select * from `tabTop Bar Item`
@@ -33,50 +71,23 @@
 		'brand': webnotes.conn.get_value('Website Settings', None, 'brand_html'),
 		'copyright': webnotes.conn.get_value('Website Settings', None, 'copyright'),
 	}
+
+def build_html(args, comments, template='page.html'):
+	"""build html using jinja2 templates"""
+	from webnotes.utils import cstr
+	from jinja2 import Environment, FileSystemLoader
+	jenv = Environment(loader = FileSystemLoader('../erpnext/website/templates'))
 	
+	html = jenv.get_template(template).render(args)
+	html += "\n<!-- %s -->" % cstr(comments)
+	return html
+
 def get_web_page_name(page_name):
 	"""get page by shortname"""
 	import webnotes
 	return webnotes.conn.sql("""select name from `tabWeb Page` where page_name=%s""", page_name)[0][0]
-	
-def get_html():
-	import webnotes
-	from jinja2 import Environment, FileSystemLoader
-	from webnotes.model.doc import Document
-	
-	jenv = Environment(loader = FileSystemLoader('../erpnext/website/templates'))
-	
-	webnotes.form = cgi.FieldStorage(keep_blank_values=True)
-	for key in webnotes.form.keys():
-		webnotes.form_dict[key] = webnotes.form.getvalue(key)
-	webnotes.connect()
-	
-	# Get web page
-	try:
-		if 'page' in webnotes.form_dict:
-			page_name = webnotes.form_dict['page']
-			if page_name.endswith('.html'):
-				page_name = page_name[:-5]
-				
-			if page_name.startswith('blog'):
-				pass
-				# page_name = 
-			else:
-				page_name = get_web_page_name(page_name)		
-		else:
-			from webnotes.cms import get_home_page
-			page_name = get_home_page('Guest')
-		
-		page = Document('Web Page', page_name)
-		page.fields.update(get_outer_env())
-		return jenv.get_template('page.html').render(page.fields) + \
-			('\n<!-- page: %s -->' % page_name)
-		
-	except Exception, e:
-		return jenv.get_template('404.html').render(get_outer_env()) + \
-			('\n<!-- error: %s -->' % webnotes.getTraceback())
+
 		
 if __name__=="__main__":
-	print "Content-Type: text/html"
-	print
-	print get_html().encode('utf-8')
+	init()
+	respond()