]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/lib/base.py
Fix division of currency
[bluechips.git] / bluechips / lib / base.py
index 586336c3a351ff1c25ce3f14f01624601cc8d03e..d04f98160d38c95a8e50171c704ae34378c37263 100644 (file)
@@ -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 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']