blob: ff52e7db5afffb620cfdceef2c15df59230fa0b7 [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 Doshi76ec66d2012-07-20 18:11:30 +053019"""
20 return a dynamic page from website templates
21
22 all html pages related to website are generated here
23"""
Anand Doshi486f9df2012-07-19 13:40:31 +053024from __future__ import unicode_literals
Rushabh Mehtabd7f7232012-06-15 14:00:06 +053025import cgi, cgitb, os, sys
26cgitb.enable()
27
28# import libs
29sys.path.append('..')
30import conf
31sys.path.append('../lib/py')
32sys.path.append(conf.modules_path)
33
Anand Doshi5d9fc722012-06-21 11:48:51 +053034def init():
Anand Doshi76ec66d2012-07-20 18:11:30 +053035 import webnotes.handler
36 webnotes.handler.get_cgi_fields()
Anand Doshi5d9fc722012-06-21 11:48:51 +053037 webnotes.connect()
38
39def respond():
Anand Doshi72c945b2012-06-22 20:01:07 +053040 import webnotes
Anand Doshi1703cc82012-07-19 20:31:56 +053041 from webnotes.utils import get_encoded_string
Anand Doshi72c945b2012-06-22 20:01:07 +053042 try:
43 if 'page' in webnotes.form_dict:
44 html = get_html(webnotes.form_dict['page'])
45 else:
46 # show home page
47 html = get_html('index')
48 except Exception, e:
49 html = get_html('404')
Anand Doshi76ec66d2012-07-20 18:11:30 +053050
51 content = []
52 import webnotes.handler
53 html = get_encoded_string(html)
54 html, content = webnotes.handler.gzip_response(html, content)
55
56 content += [
57 "Content-Type: text/html",
58 "",
59 ]
60
61 webnotes.handler.print_content(content)
62 print html
Anand Doshi5d9fc722012-06-21 11:48:51 +053063
Anand Doshi72c945b2012-06-22 20:01:07 +053064def get_html(page_name):
Anand Doshi51146c02012-07-12 18:41:12 +053065 import website.utils
66 page_name = website.utils.scrub_page_name(page_name)
67
68 comments = get_comments(page_name)
69
Anand Doshi72c945b2012-06-22 20:01:07 +053070 import website.web_cache
Anand Doshi51146c02012-07-12 18:41:12 +053071 html = website.web_cache.get_html(page_name, comments)
Anand Doshi72c945b2012-06-22 20:01:07 +053072
Anand Doshi5d9fc722012-06-21 11:48:51 +053073 return html
74
Anand Doshi51146c02012-07-12 18:41:12 +053075def get_comments(page_name):
76 import webnotes
77
78 if page_name == '404':
79 comments = """error: %s""" % webnotes.getTraceback()
80 else:
81 comments = """page: %s""" % page_name
82
83 return comments
84
Rushabh Mehtabd7f7232012-06-15 14:00:06 +053085if __name__=="__main__":
Anand Doshi5d9fc722012-06-21 11:48:51 +053086 init()
Anand Doshi51146c02012-07-12 18:41:12 +053087 respond()