From 5d9fc72753c3bcd05da518c839bbeda1b7acdb57 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 21 Jun 2012 11:48:51 +0530 Subject: [PATCH] updates in web.py and template - page.html --- erpnext/website/templates/page.html | 4 +- public/web.py | 99 ++++++++++++++++------------- 2 files changed, 57 insertions(+), 46 deletions(-) diff --git a/erpnext/website/templates/page.html b/erpnext/website/templates/page.html index c34dead322..97a309ab73 100644 --- a/erpnext/website/templates/page.html +++ b/erpnext/website/templates/page.html @@ -12,7 +12,7 @@ var _page = new wn.views.Page(window.page_name); // page script - {{ insert_code }} + {{ javascript }} // trigger onload _page.trigger('onload'); @@ -23,7 +23,7 @@ {% endif %} {% if insert_style %} - + {% endif %} {% endblock %} diff --git a/public/web.py b/public/web.py index c7c1df2109..751d76206a 100755 --- a/public/web.py +++ b/public/web.py @@ -15,11 +15,49 @@ import conf 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 @@ def get_outer_env(): '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" % 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_name) - - except Exception, e: - return jenv.get_template('404.html').render(get_outer_env()) + \ - ('\n' % webnotes.getTraceback()) + if __name__=="__main__": - print "Content-Type: text/html" - print - print get_html().encode('utf-8') + init() + respond()