xetorthio / freezenote.com

4 stars 0 forks source link

Selección de fecha #3

Closed xetorthio closed 13 years ago

xetorthio commented 13 years ago
xetorthio commented 13 years ago

usá la ubicación default del usuario. desde el browser haciendo un new Date() y pidiendo el TimeZone es una forma. otra es usar la IP y sacar de ahí latitud y logitud con algún servicio. no creo que sea super exacto, pero puede servir.

xetorthio commented 13 years ago

Creo que lo mejor es usar la IP. http://www.maxmind.com/app/geolitecity Acá podés bajarte una DB y una api en java para acceder a la info. Le das la IP del usuario y te retorna esto:

Your IP Address 186.22.156.151 Countries Argentina Region 07 (Distrito Federal) US Area Code
US Metro Code
Global Cities Buenos Aires US Zipcode*
Latitude/Longitude -34.5875/-58.6725 ISP Telecentro S.A. Organization Telecentro S.A. Netspeed Dialup Domain Name telecentro-reversos.com.ar

Esta es gratuita. Tiene un poco menos exactitud que la versión paga. Pero por ahora sale como trompada.

xetorthio commented 13 years ago

ok. ya lo hice por vos :P, lo pusheé al master. básicamente tenés que hacer esto:

Location cityLocation = GeoIP.locateCity("186.22.156.151");
assertEquals(-34, cityLocation.latitude, 0);
assertEquals(-64, cityLocation.longitude, 0);

Retorna muchos más datos, pero por ser gratuita tiene baja precisión entonces habría que chequear si nos sirve.

ivowiblo commented 13 years ago

No va a ir lo de combo para dia, mes y año, habíamos quedado en un calendar.

xetorthio commented 13 years ago

ok. más adelante iteramos sobre eso y dejamos un combo. creo que será lo mejor para el usuario. pero por ahora está bien.

ivowiblo commented 13 years ago

si quieren pongo un combo ahora mismo. Pero tienen esas cosas maravillosas de q elijas 31 de febrero y esas cosas.

xetorthio commented 13 years ago

si, mejor combos. igual validamos la fecha. no pasa nada. pero creo que para el usuario y para alguien con celu es mucho mejor combos.

dirkmc commented 13 years ago

Cuidado con eso de maxmind. Yo lo probe y come memoria como una gorda come chocolate. Hagamos una pruebas antes de pushearlo a prod.

ivowiblo commented 13 years ago

Subi los tests y model para Location.

ivowiblo commented 13 years ago

de donde saco la ip del user para sacar su location y de ahi su timezone?

xetorthio commented 13 years ago

creo que es request.remoteAddress

ivowiblo commented 13 years ago

eso desde el controller? no recuerdo un field request, pero pruebo.

ivowiblo commented 13 years ago

request.remoteAddress me esta devolviendo 0.0.0.0. Dejo hardcodeada una ip y despues lo arreglamos.

dirkmc commented 13 years ago

Asi es si usas localhost. Deberia funcionar en staging/prod

ivowiblo commented 13 years ago

cómo hacemos en dev? metemos un if Dev y hardcodeamos alguna?

dirkmc commented 13 years ago

Si, creo que esta bien.