blob: ed0441f3f906da3ca72a5a7515ec1e8a60285e8d [file] [log] [blame]
Rushabh Mehtabd7f7232012-06-15 14:00:06 +05301#!/usr/bin/env python
2
Anand Doshi51146c02012-07-12 18:41:12 +05303# ERPNext - web based ERP (http://erpnext.com)
4# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
5#
6# This program is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program. If not, see <http://www.gnu.org/licenses/>.
18
Anand Doshi486f9df2012-07-19 13:40:31 +053019from __future__ import unicode_literals
Rushabh Mehtabd7f7232012-06-15 14:00:06 +053020"""
21return a dynamic page from website templates
Rushabh Mehta96bf0b72012-06-15 17:29:03 +053022
23all html pages except login-page.html get generated here
Rushabh Mehtabd7f7232012-06-15 14:00:06 +053024"""
25
26import cgi, cgitb, os, sys
27cgitb.enable()
28
29# import libs
30sys.path.append('..')
31import conf
32sys.path.append('../lib/py')
33sys.path.append(conf.modules_path)
34
Anand Doshi5d9fc722012-06-21 11:48:51 +053035def init():
36 import webnotes
37 webnotes.form = cgi.FieldStorage(keep_blank_values=True)
38 for key in webnotes.form.keys():
39 webnotes.form_dict[key] = webnotes.form.getvalue(key)
40 webnotes.connect()
41
42def respond():
Anand Doshi72c945b2012-06-22 20:01:07 +053043 import webnotes
44 try:
45 if 'page' in webnotes.form_dict:
46 html = get_html(webnotes.form_dict['page'])
47 else:
48 # show home page
49 html = get_html('index')
50 except Exception, e:
51 html = get_html('404')
52
Anand Doshi5d9fc722012-06-21 11:48:51 +053053 print "Content-Type: text/html"
54 print
55 print html.encode('utf-8')
56
Anand Doshi72c945b2012-06-22 20:01:07 +053057def get_html(page_name):
Anand Doshi51146c02012-07-12 18:41:12 +053058 import website.utils
59 page_name = website.utils.scrub_page_name(page_name)
60
61 comments = get_comments(page_name)
62
Anand Doshi72c945b2012-06-22 20:01:07 +053063 import website.web_cache
Anand Doshi51146c02012-07-12 18:41:12 +053064 html = website.web_cache.get_html(page_name, comments)
Anand Doshi72c945b2012-06-22 20:01:07 +053065
Anand Doshi5d9fc722012-06-21 11:48:51 +053066 return html
67
Anand Doshi51146c02012-07-12 18:41:12 +053068def get_comments(page_name):
69 import webnotes
70
71 if page_name == '404':
72 comments = """error: %s""" % webnotes.getTraceback()
73 else:
74 comments = """page: %s""" % page_name
75
76 return comments
77
Rushabh Mehtabd7f7232012-06-15 14:00:06 +053078if __name__=="__main__":
Anand Doshi5d9fc722012-06-21 11:48:51 +053079 init()
Anand Doshi51146c02012-07-12 18:41:12 +053080 respond()