X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Flib%2Fbase.py;h=abff9ce6ac458ac69a227c78a6efff5b28713d38;hb=94a556a2cc75c26c623e6855039d214ab62e17de;hp=586336c3a351ff1c25ce3f14f01624601cc8d03e;hpb=01eb085c206c4ba88045fb88a2f1076622bd2585;p=bluechips.git diff --git a/bluechips/lib/base.py b/bluechips/lib/base.py index 586336c..abff9ce 100644 --- a/bluechips/lib/base.py +++ b/bluechips/lib/base.py @@ -2,12 +2,15 @@ Provides the BaseController class for subclassing. """ + from decorator import decorator -from pylons import request, tmpl_context as c +from pylons import request, session, tmpl_context as c from pylons.controllers import WSGIController from pylons.i18n import _, ungettext, N_ -from pylons.templating import render_mako as render +from pylons.templating import render_mako + +from mako.exceptions import TopLevelLookupException import bluechips.lib.helpers as h from bluechips import model @@ -48,6 +51,21 @@ def redirect_on_get(action): return func(*args, **kwargs) return redirect_on_get_wrap +def render(name, *args, **kwargs): + if 'iPhone' in request.user_agent: + if 'use_non_mobile' in request.params: + session['use_non_mobile'] = (request.params['use_non_mobile'] == + 'yes') + if session.get('use_non_mobile'): + c.mobile_client = True + else: + try: + return render_mako('/mobile' + name, *args, **kwargs) + except TopLevelLookupException: + # If a mobile template doesn't exist for this page, don't show + # the 'use mobile interface' link. + c.mobile_client = False + return render_mako(name, *args, **kwargs) __all__ = ['c', 'h', 'render', 'model', 'meta', '_', 'ungettext', 'N_', 'BaseController', 'update_sar', 'redirect_on_get']