X-Git-Url: https://projects.mako.cc/source/yourule/blobdiff_plain/ee98f53330408fd5f0c0a27720a3dc0d9edced89..e209d254f3b64e5dca8924912cf6f2190f5ffbc1:/yourule.py diff --git a/yourule.py b/yourule.py index 3de9e7b..2e4022b 100755 --- a/yourule.py +++ b/yourule.py @@ -4,17 +4,25 @@ 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('templates/')) + loader=FileSystemLoader(os.path.dirname(__file__) + "/templates/")) + +def render(filename, vars={}): + if re.match(r'.+\.\css$', filename): + web.header("Content-Type","text/css; charset=utf-8") + else: + web.header("Content-Type","text/html; charset=utf-8") -def render(filename, vars): - web.header("Content-Type","text/html; charset=utf-8") tmpl = jinja_env.get_template(filename + '.tmpl') + vars['homepath'] = web.ctx.homepath + vars['ctx'] = web.ctx print tmpl.render(vars) - web.debug(web.ctx) # the url map for the application urls = ( '/?', 'index', @@ -22,10 +30,10 @@ urls = ( '/?', 'index', '/show/(.*(svg|png|jpg))', 'show_ruler', '/gallery(.*)', 'gallery', '/delete/(\d+)', 'delete', - '/undelete/(\d+)', 'undelete') + '/undelete/(\d+)', 'undelete', + '/style.css', 'css') -database = create_database("sqlite:%s/db/yourule.db" % - os.path.dirname(__file__)) +database = create_database("mysql:yourule") store = Store(database) @@ -36,7 +44,7 @@ class Ruler(object): unit_width = Float() model = Unicode() units = Unicode() - show = Int() + visible = Int() cm_in_ratio = 0.3937 def __init__(self, **kw): @@ -133,8 +141,14 @@ class gallery: if ruler_url: pixel_width, unit_width, units = process_ruler_url(ruler_url)[0:3] - rulers = store.find(Ruler, Ruler.show == 1) - rulers.order_by(Ruler.model) + new_rulers = store.find(Ruler, Ruler.visible == 1)#.order_by(Ruler.model) + + rulers = [] + for ruler in new_rulers: + rulers.append(ruler) + + #rulers = map(lambda x: x, rulers) + render('gallery', locals()) def POST(self, ruler_url): @@ -158,14 +172,14 @@ class gallery: store.add(new_ruler) store.commit() - rulers = store.find(Ruler, Ruler.show == 1) - rulers.order_by(Ruler.model) + rulers = store.find(Ruler, Ruler.visible == 1) + #rulers.order_by(Ruler.model) render('gallery', locals()) class delete: def GET(self, id): ruler = store.get(Ruler, int(id)) - ruler.show = 0 + ruler.visible = 0 store.commit() web.redirect('/gallery') @@ -173,10 +187,14 @@ class delete: class undelete: def GET(self, id): ruler = store.get(Ruler, int(id)) - ruler.show = 1 + ruler.visible = 1 store.commit() web.redirect('/gallery') +class css: + def GET(self): + render('style.css') + def get_other_unit(url): pixel_width, unit_width, units = process_ruler_url(url)[0:3] @@ -193,7 +211,6 @@ def get_other_unit(url): new_ruler = Ruler(pixel_width=pixel_width, unit_width=unit_width, units=units) - web.debug(units) return(units, new_ruler.url()) @@ -222,5 +239,5 @@ web.webapi.internalerror = web.debugerror if __name__ == "__main__": web.run(urls, globals(), web.reloader) -#application = web.wsgifunc(web.webpyfunc(urls, globals())) +application = web.wsgifunc(web.webpyfunc(urls, globals()))