From: Steve Losh Date: Sat, 7 Feb 2009 17:39:19 +0000 (-0500) Subject: Refactored more into the web interface. X-Git-Tag: 1.0.0~53^2~4^2~17 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6132015512a0eec6852c8e2a3125f695e0840fb1;p=be.git Refactored more into the web interface. --- diff --git a/cfbe.py b/cfbe.py index 7ace04c..817f41f 100755 --- a/cfbe.py +++ b/cfbe.py @@ -2,21 +2,11 @@ import cherrypy from cherryflavoredbugseverywhere import web -from jinja2 import Environment, FileSystemLoader -from datetime import datetime from optparse import OptionParser from os import path module_dir = path.dirname(path.abspath(web.__file__)) - -def datetimeformat(value, format='%B %d, %Y at %I:%M %p'): - """Takes a timestamp and revormats it into a human-readable string.""" - return datetime.fromtimestamp(value).strftime(format) - - -template_root = path.join(module_dir, 'templates') -env = Environment(loader=FileSystemLoader(template_root)) -env.filters['datetimeformat'] = datetimeformat +template_dir = path.join(module_dir, 'templates') def build_parser(): """Builds and returns the command line option parser.""" @@ -40,5 +30,5 @@ def parse_arguments(): config = path.join(module_dir, 'cfbe.config') options = parse_arguments() -WebInterface = web.WebInterface(path.abspath(options['bug_root'])) +WebInterface = web.WebInterface(path.abspath(options['bug_root']), template_dir) cherrypy.quickstart(WebInterface, '/', config) diff --git a/web.py b/web.py index 0e88493..0833884 100644 --- a/web.py +++ b/web.py @@ -1,14 +1,22 @@ import cherrypy from libbe import bugdir +from jinja2 import Environment, FileSystemLoader +from datetime import datetime + +def datetimeformat(value, format='%B %d, %Y at %I:%M %p'): + """Takes a timestamp and revormats it into a human-readable string.""" + return datetime.fromtimestamp(value).strftime(format) class WebInterface: """The web interface to CFBE.""" - def __init__(self, bug_root): + def __init__(self, bug_root, template_root): """Initialize the bug repository for this web interface.""" self.bug_root = bug_root self.bd = bugdir.BugDir(root=self.bug_root) self.repository_name = self.bd.root.split('/')[-1] + self.env = Environment(loader=FileSystemLoader(template_root)) + env.filters['datetimeformat'] = datetimeformat def get_common_information(self): """Returns a dict of common information that most pages will need.""" @@ -65,7 +73,7 @@ class WebInterface: if target != '': label += ' Currently Unschdeuled' if target == 'None' else ' Scheduled for %s' % (target,) - template = env.get_template('list.html') + template = self.env.get_template('list.html') bugs = self.filter_bugs(status, assignee, target) common_info = self.get_common_information() @@ -85,7 +93,7 @@ class WebInterface: bug = self.bd.bug_from_shortname(id) - template = env.get_template('bug.html') + template = self.env.get_template('bug.html') common_info = self.get_common_information() return template.render(bug=bug, bd=self.bd, assignees=common_info['possible_assignees'],