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
return func(*args, **kwargs)
return redirect_on_get_wrap
+def render(name, *args, **kwargs):
+ if any([x in request.user_agent for x in ('iPhone','webOS')]):
+ 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']