Hi Angelo, it works now, thanks! Any ideas about the second question? There have been a lot of proposals how to change every view from .html to .m.html if is_mobile is true. Now I am a little bit confused: what would be the best code following if ua.is_mobile...?
2011/8/29 Angelo Compagnucci <angelo.compagnu...@gmail.com> > Hi Martin, > > In trunk the correct syntax should be: > > from gluon.contrib import user_agent_parser > ua = user_agent_parser.detect(request.env.http_user_agent) > if ua.is_mobile: ... > > Or better: > > ua = request.user_agent() > if ua.is_mobile: ... > > The mothod user_agent() search in session if the user_agent was > already parsed, so in the end it parses the user agent only first > time. > > 2011/8/29 Martin Weissenboeck <mweis...@gmail.com>: > > I tried: > > > > def mobile(): > > from gluon.contrib import user_agent_parser > > ua = user_agent_parser.detect(request.env.http_user_agent) > > if ua.dist.is_mobile: .... > > and i got: > > AttributeError: 'NoneType' object has no attribute 'is_mobile' > > Browsers: Opera 11.50, Safari 3.1.2 > > (1) What is wrong? > > (2) There have been a lot of proposals how to change every view from > .html > > to .m.html if is_mobile is true. > > Now I am a little bit confused: what would be the best code following > if > > ua.dist.is_mobile...? > > Regards, Martin > > 2011/8/28 Massimo Di Pierro <massimo.dipie...@gmail.com> > >> > >> I have no objection.What do others think? > >> > >> On Aug 28, 10:53 am, Angelo Compagnucci <angelo.compagnu...@gmail.com> > >> wrote: > >> > HI Ross, Massimo, > >> > > >> > I wrote a small decorator to use the newly added is_mobile flag: > >> > > >> > class mobilize(object): > >> > def __init__(self, func): > >> > self.func = func > >> > def __call__(self): > >> > from gluon import current > >> > if current.session._user_agent: > >> > if current.session._user_agent.is_mobile: > >> > current.response.view = \ > >> > current.response.view.split(".")[0] + ".mobi" > >> > return self.func() > >> > > >> > It should be included at the bottom of user_agent_parser.py. > >> > > >> > With this you can have automatically selected the view.html or the > >> > view.mobi depending on your browser is mobile or not, an example > could > >> > be: > >> > > >> > @mobilize > >> > def index(): > >> > """ > >> > example action using the mobilizer decorator it is > >> > rendered by views/default/index.html or > >> > views/default/index.mobi depending if your browser > >> > is mobile or not > >> > """ > >> > return dict(message=response.view) > >> > > >> > Could this be added in trunk? > >> > > >> > 2011/8/27 Massimo Di Pierro <massimo.dipie...@gmail.com>: > >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > > This is in trunk as of last night. > >> > > >> > > On Aug 26, 12:13 pm, Ross Peoples <ross.peop...@gmail.com> wrote: > >> > >> I submitted this to Massimo for inclusion. Now we wait :) > > > > >