2
# Copyright (C) 2007-2008 The University of Melbourne
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
# GNU General Public License for more details.
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22
# This is an IVLE application.
23
# A sample / testing application for IVLE.
25
from common import util
30
# TODO: Nicer 404 errors
33
"""Handler for the Help application."""
34
(appurl, subpath) = util.split_path(req.path)
39
# app must be valid and have help available
40
if appurl not in conf.apps.app_url:
41
req.throw_error(req.HTTP_NOT_FOUND)
42
app = conf.apps.app_url[appurl]
44
req.throw_error(req.HTTP_NOT_FOUND)
45
# subpath must be empty, for now, as there is only one help file per app
47
req.throw_error(req.HTTP_NOT_FOUND)
48
show_help_app(req, app)
50
def show_help_menu(req):
51
"""Show the help menu."""
53
# Set request attributes
54
req.content_type = "text/html"
55
req.write_html_head_foot = True
58
req.write("<h1>Help</h1>\n")
60
# Write a list of links to all apps with help modules
62
for (appurl, app) in conf.apps.app_url.items():
64
req.write(' <li><a href="%s">%s</a></li>\n'
65
% (os.path.join(util.make_path("help"), appurl), app.name))
68
def show_help_app(req, app):
69
"""Show help for an application."""
70
helpfile = os.path.join(util.make_local_path("apps"), app.dir, "help.html")
72
# Set request attributes
73
req.content_type = "text/html"
74
req.write_html_head_foot = True
77
req.write("<h1>Help - %s</h1>\n" % app.name)
79
# Print out the contents of the HTML help file
80
req.sendfile(helpfile)