X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/e080215f07b8153ef01d6c840a4ba3a4bfc2d770..79cb1c0d3048c165fd3b9ff287ee1fbe361f904d:/floof/lib/helpers.py?ds=sidebyside diff --git a/floof/lib/helpers.py b/floof/lib/helpers.py index 878b888..9fbfa7d 100644 --- a/floof/lib/helpers.py +++ b/floof/lib/helpers.py @@ -1,7 +1,50 @@ +# -*- coding: utf-8 -*- """Helper functions Consists of functions to typically be used within templates, but also -available to Controllers. This module is available to templates as 'h'. +available to Controllers. This module is available to both as 'h'. """ # Import helpers as desired, or define your own, ie: -#from webhelpers.html.tags import checkbox, password +# from webhelpers.html.tags import checkbox, password +from webhelpers import * +from routes import url_for, redirect_to +from pylons import config, url + +# Scaffolding helper imports +from webhelpers.html.tags import * +from webhelpers.html.tools import * +from webhelpers.html import HTML, literal +from webhelpers.pylonslib import Flash +import sqlalchemy.types as types +flash = Flash() +# End of. + +from floof.lib import file_storage as storage + +def get_object_or_404(model, **kw): + from pylons.controllers.util import abort + """ + Returns object, or raises a 404 Not Found is object is not in db. + Uses elixir-specific `get_by()` convenience function (see elixir source: + http://elixir.ematia.de/trac/browser/elixir/trunk/elixir/entity.py#L1082) + Example: user = get_object_or_404(model.User, id = 1) + """ + obj = model.get_by(**kw) + if obj is None: + abort(404) + return obj + +def get_comment_owner_url(**route): + """Given a view route, returns the owner_url route parameter for generating + comment URLs. + """ + if 'owner_url' in route: + # We're already in a comments page. Reuse the existing owner URL + return route['owner_url'] + + # url() returns URLs beginning with a slash. We just need to strip it. + return url(**route)[1:] + +def storage_url(prefix, identifier): + """Returns a URL for the given object-in-storage.""" + return storage.get_path(prefix, identifier)