changeset 152:4adcb15cbdfb

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.
author Bernhard Herzog <bh@intevation.de>
date Mon, 09 Jun 2008 16:33:20 +0000
parents 77d7f2cbd7ce
children e5f3f61c0620
files bin/createstaticweb.py bin/starttreepkgweb.py treepkg/web.py
diffstat 3 files changed, 30 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- 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 <bh@intevation.de>
 #
@@ -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()
--- 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 <bh@intevation.de>
 #
@@ -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()
--- 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()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)