Apologize everyone, and Niphlod, I forgot to restart my browser, and now the 2 values are consistent ...... my bad for the disturbance.
On Sat, Apr 20, 2013 at 9:16 AM, fun man <funma...@gmail.com> wrote: > Hi Niphlod, > > def index(): > # when people first login, they will get their timezone set. > tz = fast_tz_detector() > print > print 'Hi, you should save this returned by request.vars', > request.vars # if you debug, uncomment this line, and make sure return > tz=tz below > > print "plugin_timezone_tz == ", session.plugin_timezone_tz > if session.plugin_timezone_tz: > if db.userinfo[auth.user_id] == None: # check first time login > > db.userinfo.insert(detected_timezone=session.plugin_timezone_tz, > id=auth.user_id) #insert record > else: > > db.userinfo[auth.user_id]=dict(detected_timezone=session.plugin_timezone_tz) > #update record > print " called index & after db udpate = ", > db.userinfo[auth.user_id].detected_timezone > > > Hi, you should save this returned by request.vars <Storage {'timezone': > 'Australia/Darwin'}> > plugin_timezone_tz == America/New_York > called index & after db udpate = America/New_York > > My machine is set to 'Australia/Darwan' now. request.vars is working fine. > > Is there a reason why session.plugin_timezone_tz always return > "America/New_York"? No matter how I changed my timezone of the client, i > didn't see session.plugin_timezone_tz got updated. > > After this, my timezone problem should go away :-) > > thanks for your help. > > > > On Fri, Apr 19, 2013 at 5:11 PM, Funmanhk <funma...@gmail.com> wrote: > >> Niphlod, >> >> Thank you for pointing this out. I have some serious learning ahead. >> Thank you for being patient with my questions. >> >> I am good with your approach below. The first suggestion works out for >> me, and my time zone issue is resolved. >> >> Thank you! >> >> On 19 Apr, 2013, at 15:39, Niphlod <niph...@gmail.com> wrote: >> >> fast_tz_detector returns a SCRIPT(). >> Of course you can't "read it" because the page executes it, so it's fine >> if you see a blank space: >> If you see the page source (using firefox, right click --> View page >> source) you'd see a <script>blablablabla</script> >> >> On the "let's save it to the database" topic ..... try it yourself: >> >> def index(): >> print 'Hi, you should save this ', request.vars >> some_message = "here timezone is detected" >> tz = fast_tz_detector() >> return .... >> >> When you return a "fast_tz_detector()", as soon as the browser loads the >> page, javascript detects the timezone and it is sent back to the same >> controller function (in this case, "index"). >> >> Another way is to "hack it up" somewhere >> >> def index(): >> if session.plugin_timezone_tz: >> db.sometable.insert( >> detected_timezone=session.plugin_timezone_tz, user_id=auth.user_id) >> some_message = "here timezone is detected" >> tz = fast_tz_detector() >> return ..... >> >> >> >> >> >> On Friday, April 19, 2013 3:58:09 AM UTC+2, fun man wrote: >>> >>> hi Niphlod, >>> >>> I've tried your example in the attachment. The good news is that the >>> user selected timezone it the profile/register page is working >>> consistently! Great work! Thank you! >>> >>> The bad news is that the dynamic detection, and return from the client >>> session is still not working... >>> def index(): >>> some_message = "here timezone is detected" >>> tz = fast_tz_detector() >>> >>> I found out that tz is still not returning anything in the index page. >>> That should be my landing page, and once this is detected. I want to move >>> this value to the db. Then use it for the rest of the other functions in >>> the application. >>> >>> I am reading your plugin, and it will take me some time to really figure >>> out what is going on inside fast_tz_detector()... Not sure why it didn't >>> return the thing I want :-) >>> >>> >>> On Thu, Apr 18, 2013 at 6:08 PM, fun man <funm...@gmail.com> wrote: >>> >>>> Sorry Niphlod. I was on my phone, and didn't see this attachment. >>>> Thanks again for helping me out without asking for anything. I will try to >>>> learn from your example. >>>> >>>> >>>> On Fri, Apr 19, 2013 at 8:33 AM, Funmanhk <funm...@gmail.com> wrote: >>>> >>>>> Btw, I want to say that Niphlod has been very helpful. I am definitely >>>>> missing the HTML+JS knowledge, but that didn't stop me to try out in >>>>> web2py >>>>> and have a good attempt on this issue. >>>>> >>>>> I am one little step away from solving this time zone problem haunting >>>>> me for a few months. I wouldn't have the courage to start this adventure >>>>> without seeing the community's effort here. >>>>> >>>>> Thanks Niphlod, and everyone to create and support this. >>>>> >>>>> On 19 Apr, 2013, at 3:13, Niphlod <nip...@gmail.com> wrote: >>>>> >>>>> packed an app with a few examples: might explain better how to deal >>>>> with timezones. >>>>> >>>>> On Thursday, April 18, 2013 6:20:18 PM UTC+2, fun man wrote: >>>>>> >>>>>> yes. I am with you. I didn't store timezone in the db, and will be >>>>>> using UTC for all input to the db too. >>>>>> >>>>>> I hope to find a way to use the detected timezone to use in the >>>>>> .represent method for the sqlform.grid. >>>>>> db.prototype.modified_on.**repre**sent = lambda value, row : >>>>>> pytz.UTC.localize(value).**astim**ezone(pytz.timezone('**Asia/**Tokyo')) >>>>>> >>>>>> >>>>>> The above is working for me. I basically hardcode it to 'Asia/Tokyo'. >>>>>> I am trying to get the value from your plugin to replace my hard coded >>>>>> one >>>>>> above. >>>>>> >>>>>> >>>>>> On Fri, Apr 19, 2013 at 12:41 AM, Niphlod <nip...@gmail.com> wrote: >>>>>> >>>>>>> the whole point of timezone normalization is NOT having "a timezone >>>>>>> attached at the end". >>>>>>> It's storing in the database as UTC and displaying as "localized" to >>>>>>> the users. >>>>>>> Are we sure that you fully grasped what the timezone implementation >>>>>>> on the IS_DATE* validators in web2py and that that idea fits with your >>>>>>> one ? >>>>>>> >>>>>>> >>>>>>> On Thursday, April 18, 2013 4:35:51 PM UTC+2, fun man wrote: >>>>>>> >>>>>>>> i am not using any specific language translation. It should be the >>>>>>>> default language. >>>>>>>> >>>>>>>> i also think that it is timezone issue, but not very sure how to do >>>>>>>> the normalization. The model i use is Field('modified_on', >>>>>>>> 'datetime'), >>>>>>>> I see that there is no timezone attached at the end. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Apr 18, 2013 at 7:11 PM, Niphlod <nip...@gmail.com> wrote: >>>>>>>> >>>>>>>>> that seems more a problem with the format of the date than the >>>>>>>>> fact that it has to be "timezone-normalized"....what language >>>>>>>>> translation >>>>>>>>> are you using ? >>>>>>>>> >>>>>>>>> PS: what I meant with "landing page" is that you're sure that the >>>>>>>>> user will hit that page before arriving to the form. >>>>>>>>> If you are sure, there's no need to embed the LOADed fragment in >>>>>>>>> the form page >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> --- >>>>>>>>> You received this message because you are subscribed to a topic in >>>>>>>>> the Google Groups "web2py-users" group. >>>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>>>>>> **to****pic/web2py/aV1nNiDIwiY/**unsubsc****ribe?hl=en<https://groups.google.com/d/topic/web2py/aV1nNiDIwiY/unsubscribe?hl=en> >>>>>>>>> . >>>>>>>>> To unsubscribe from this group and all its topics, send an email >>>>>>>>> to web2py+un...@**googlegroups.com. >>>>>>>>> >>>>>>>>> For more options, visit https://groups.google.com/**grou**** >>>>>>>>> ps/opt_out <https://groups.google.com/groups/opt_out>. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>> >>>>>>> --- >>>>>>> You received this message because you are subscribed to a topic in >>>>>>> the Google Groups "web2py-users" group. >>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/** >>>>>>> to**pic/web2py/aV1nNiDIwiY/**unsubsc**ribe?hl=en<https://groups.google.com/d/topic/web2py/aV1nNiDIwiY/unsubscribe?hl=en> >>>>>>> . >>>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>>> web2py+un...@**googlegroups.com. >>>>>>> For more options, visit >>>>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>>>> . >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>> >>>>> --- >>>>> You received this message because you are subscribed to a topic in the >>>>> Google Groups "web2py-users" group. >>>>> To unsubscribe from this topic, visit https://groups.google.com/d/** >>>>> topic/web2py/aV1nNiDIwiY/**unsubscribe?hl=en<https://groups.google.com/d/topic/web2py/aV1nNiDIwiY/unsubscribe?hl=en> >>>>> . >>>>> To unsubscribe from this group and all its topics, send an email to >>>>> web2py+un...@**googlegroups.com. >>>>> For more options, visit >>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>>> >>>>> >>>>> <web2py.app.fun_man.w2p> >>>>> >>>>> >>>> >>> -- >> >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "web2py-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/web2py/aV1nNiDIwiY/unsubscribe?hl=en. >> To unsubscribe from this group and all its topics, send an email to >> web2py+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> >> > -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.