X-Git-Url: https://projects.mako.cc/source/yourule/blobdiff_plain/1711747333c7666b644f6124de39c49cd0b26526..c61d6a6300242da86d532d34bb0506e04c9de658:/yourule.py diff --git a/yourule.py b/yourule.py index 9010217..d6f44bd 100755 --- a/yourule.py +++ b/yourule.py @@ -4,17 +4,32 @@ from __future__ import division import web import sys, os, re from storm.locals import * + +# recalculate the path based on the location of the file +sys.path.append(os.path.dirname(__file__)) from svgruler import SVGRuler +from jinja import Environment, FileSystemLoader +jinja_env = Environment('<%', '%>', '<%=', '%>', '<%#', '%>', + loader=FileSystemLoader(os.path.dirname(__file__) + "/templates/")) + +def render(filename, vars): + web.header("Content-Type","text/html; charset=utf-8") + tmpl = jinja_env.get_template(filename + '.tmpl') + print tmpl.render(vars) + print web.ctx + # the url map for the application -urls = ( '/', 'index', +urls = ( '/?', 'index', '/ruler_([0-9\.]+)px_([0-9\.]+)([A-Za-z]+).(svg|png|jpg)', 'ruler_img', '/show/(.*(svg|png|jpg))', 'show_ruler', '/gallery(.*)', 'gallery', '/delete/(\d+)', 'delete', '/undelete/(\d+)', 'undelete') -database = create_database("sqlite:yourule.db") +database = create_database("sqlite:%s/db/yourule.db" % + os.path.dirname(__file__)) + store = Store(database) class Ruler(object): @@ -55,8 +70,7 @@ class Ruler(object): class index: def GET(self): - web.header("Content-Type","text/html; charset=utf-8") - web.render('index.tmpl') + render('index', locals()) def POST(self): input = web.input() @@ -67,7 +81,7 @@ class index: pixel_width = input['pixel_width'] unit_width = input['unit_width'] units = input['units'] - web.render('index.tmpl') + render('index', locals()) else: ruler = Ruler(pixel_width = input['pixel_width'], unit_width = input['unit_width'], @@ -77,7 +91,6 @@ class index: class show_ruler: def GET(self, ruler_url, ext): - web.debug('test test') if web.input().has_key('fromgallery'): fromgallery = True else: @@ -85,9 +98,7 @@ class show_ruler: other_unit, other_unit_url = get_other_unit(ruler_url) - web.header("Content-Type","text/html; charset=utf-8") - web.render('show_ruler.tmpl') - + render('show_ruler', locals()) class ruler_img: def GET(self, pixel_width=None, unit_width=None, units=None, ext=None): @@ -127,12 +138,12 @@ class gallery: rulers = store.find(Ruler, Ruler.show == 1) rulers.order_by(Ruler.model) - web.render('gallery.tmpl') + render('gallery', locals()) def POST(self, ruler_url): input = web.input() - errormsg = valid_input(input) + errormsg = validate_input(input) if not input.model: errormsg = 'Please fill out all fields.' @@ -152,7 +163,7 @@ class gallery: rulers = store.find(Ruler, Ruler.show == 1) rulers.order_by(Ruler.model) - web.render('gallery.tmpl') + render('gallery', locals()) class delete: def GET(self, id): @@ -209,8 +220,6 @@ def validate_input(input): return(errormsg) -# render the site template here so that i can use it later -web.render('site.tmpl', None, True, 'site') web.webapi.internalerror = web.debugerror if __name__ == "__main__":