Closed xetorthio closed 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.
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.
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.
No va a ir lo de combo para dia, mes y año, habíamos quedado en un calendar.
ok. más adelante iteramos sobre eso y dejamos un combo. creo que será lo mejor para el usuario. pero por ahora está bien.
si quieren pongo un combo ahora mismo. Pero tienen esas cosas maravillosas de q elijas 31 de febrero y esas cosas.
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.
Cuidado con eso de maxmind. Yo lo probe y come memoria como una gorda come chocolate. Hagamos una pruebas antes de pushearlo a prod.
Subi los tests y model para Location.
de donde saco la ip del user para sacar su location y de ahi su timezone?
creo que es request.remoteAddress
eso desde el controller? no recuerdo un field request, pero pruebo.
request.remoteAddress me esta devolviendo 0.0.0.0. Dejo hardcodeada una ip y despues lo arreglamos.
Asi es si usas localhost. Deberia funcionar en staging/prod
cómo hacemos en dev? metemos un if Dev y hardcodeamos alguna?
Si, creo que esta bien.