# HG changeset patch # User Bernhard Herzog # Date 1213029200 0 # Node ID 4adcb15cbdfbc63e5408cac8264bb06a47a86f2c # Parent 77d7f2cbd7ce9d38de30009dd712c9e61a96e7e1 Let the user supply the filename of the template to use for the status page. bin/createstaticweb.py and bin/starttreepkgweb.py now have an additional option --status-template for the filename of the template, and the code in treepkg/web.py accepts the filename as parameter in various places. diff -r 77d7f2cbd7ce -r 4adcb15cbdfb bin/createstaticweb.py --- a/bin/createstaticweb.py Mon Jun 09 10:51:56 2008 +0000 +++ b/bin/createstaticweb.py Mon Jun 09 16:33:20 2008 +0000 @@ -1,5 +1,5 @@ #! /usr/bin/python2.4 -# Copyright (C) 2007 by Intevation GmbH +# Copyright (C) 2007, 2008 by Intevation GmbH # Authors: # Bernhard Herzog # @@ -16,14 +16,23 @@ from treepkg.web import Status def parse_commandline(): - return create_parser().parse_args() + parser = create_parser() + parser.set_defaults(status_template="status-by-revision.html") + parser.add_option("--status-template", + help=("The template file to use for the status page." + " Relative filenames are interpreted" + " relative to the web subdirectory." + " Default is status-by-revision.html.")) + return parser.parse_args() -def create_static_site(treepkg_config, destdir): - status = Status(treepkg_config=treepkg_config) +def create_static_site(treepkg_config, status_template, destdir): + status = Status(treepkg_config=treepkg_config, template=status_template) status.create_static_site(destdir) def main(): options, args = parse_commandline() - create_static_site(options.config_file, args[0]) + create_static_site(options.config_file, + options.status_template, + args[0]) main() diff -r 77d7f2cbd7ce -r 4adcb15cbdfb bin/starttreepkgweb.py --- a/bin/starttreepkgweb.py Mon Jun 09 10:51:56 2008 +0000 +++ b/bin/starttreepkgweb.py Mon Jun 09 16:33:20 2008 +0000 @@ -1,5 +1,5 @@ #! /usr/bin/python2.4 -# Copyright (C) 2007 by Intevation GmbH +# Copyright (C) 2007, 2008 by Intevation GmbH # Authors: # Bernhard Herzog # @@ -19,14 +19,21 @@ def parse_commandline(): parser = create_parser() parser.set_defaults(cherrypy_config=os.path.join(treepkgcmd.topdir, - "cherrypy.cfg")) + "cherrypy.cfg"), + status_template="status-by-revision.html") parser.add_option("--cherrypy-config", help=("The cherrypy config file for the web interface." " Default cherrypy.cfg")) + parser.add_option("--status-template", + help=("The template file to use for the status page." + " Relative filenames are interpreted" + " relative to the web subdirectory." + " Default is status-by-revision.html.")) return parser.parse_args() def main(): options, args = parse_commandline() - runserver(options.config_file, options.cherrypy_config) + runserver(options.config_file, options.cherrypy_config, + status_template=options.status_template) main() diff -r 77d7f2cbd7ce -r 4adcb15cbdfb treepkg/web.py --- a/treepkg/web.py Mon Jun 09 10:51:56 2008 +0000 +++ b/treepkg/web.py Mon Jun 09 16:33:20 2008 +0000 @@ -21,8 +21,9 @@ """Implements the tree packager status pages""" - def __init__(self, treepkg_config): + def __init__(self, treepkg_config, template): self.treepkg_config = treepkg_config + self.template = template self.loader = TemplateLoader([os.path.join(os.path.dirname(__file__), os.path.pardir, "web")]) @@ -30,7 +31,7 @@ @expose def index(self): group = report.get_packager_group(self.treepkg_config) - tmpl = self.loader.load('status-by-revision.html') + tmpl = self.loader.load(self.template) stream = tmpl.generate(report=report.prepare_report(group)) return stream.render('html') @@ -94,9 +95,10 @@ raise cherrypy.HTTPRedirect('/status') -def runserver(treepkg_config, cherrypy_config): +def runserver(treepkg_config, cherrypy_config, status_template): cherrypy.root = TreePKG() - cherrypy.root.status = Status(treepkg_config=treepkg_config) + cherrypy.root.status = Status(treepkg_config=treepkg_config, + template=status_template) cherrypy.config.update(file=cherrypy_config) cherrypy.server.start()