I've realized re-using code becomes quite a hastle - for example if
you use 2 or 3 column layout for web, 1 column layout works best for
mobile.
I've created new controller and views to be shown on the mobile (even
if they are duplicated), and use redirect() and
auth.settings.myfunction_next where myfunction = change_password or
login or logout or retrieve_password etc.
Then you can have corresponding functions in your mobile controller,
like
mobile.py
-------------
def login():
return dict(form=auth.login())
login.html
--------------
{{extend 'm_layout.html'}}
{{=form}}
and so on.