aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Losh <steve@stevelosh.com>2009-02-07 12:39:19 -0500
committerSteve Losh <steve@stevelosh.com>2009-02-07 12:39:19 -0500
commit6132015512a0eec6852c8e2a3125f695e0840fb1 (patch)
treef258c2808d628f8db5542151f66ce6eb0d47f653
parent5f61c45a6f5265deb5a9da1fd53da66b4baae104 (diff)
downloadbugseverywhere-6132015512a0eec6852c8e2a3125f695e0840fb1.tar.gz
Refactored more into the web interface.
-rwxr-xr-xcfbe.py14
-rw-r--r--web.py14
2 files changed, 13 insertions, 15 deletions
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'],