def vista(): barDireccion = request.args.get('barDireccion') posicionDelUsuario = Ubicacion(request.args.get('usuarioDireccion')) form = VistaDeBarForm(request.form) perfilDeBar = conjuntoDePerfiles.obtenerPerfilDeBar(barDireccion) user = user_loader(current_user.get_id()) # Lo que viene a continuac markers = [] # Marker del usuario marker_posicion_usuario = {} marker_posicion_usuario['lat'] = posicionDelUsuario.latlong()[0] marker_posicion_usuario['lng'] = posicionDelUsuario.latlong()[1] marker_posicion_usuario[ 'icon'] = 'http://maps.google.com/mapfiles/ms/icons/green-dot.png' marker_posicion_usuario['infobox'] = 'Tu Ubicacion' markers.append(marker_posicion_usuario) # Marker del bar marker_posicion_bar = {} marker_posicion_bar['lat'] = perfilDeBar.bar().ubicacion().latlong()[0] marker_posicion_bar['lng'] = perfilDeBar.bar().ubicacion().latlong()[1] marker_posicion_bar['infobox'] = perfilDeBar.bar().nombre() markers.append(marker_posicion_bar) # Polyline latlng_usuario = dict(zip(('lat', 'lng'), posicionDelUsuario.latlong())) latlng_bar = dict( zip(('lat', 'lng'), perfilDeBar.bar().ubicacion().latlong())) legs = gmaps.directions(latlng_usuario, latlng_bar, mode='walking', units='metric')[0]['legs'] polyline = { 'stroke_color': "#FF0000", 'stroke_opacity': 0.8, 'stroke_weight': 4, 'path': [] } # Construimos el path del polyline for i in range(len(legs)): steps = legs[i]['steps'] for j in range(len(steps)): encodedPoints = steps[j]['polyline']['points'] for lat, lng in pline.decode(encodedPoints): polyline['path'].append({'lat': lat, 'lng': lng}) return user.accept(Renderer())( 'vista_de_bar.html', form=form, perfilDeBar=perfilDeBar, posicionDelUsuario=posicionDelUsuario, markers=markers, polyline=polyline, usuarioDireccion=posicionDelUsuario.direccion())
def registrar(invalidCredentials=False): form = RegistrarForm(request.form) if request.method == 'POST' and form.validate(): username = form.username.data try: usuarios[username] = form.password.data usuarios.autenticar(username, form.password.data) login_user(usuarios[username]) return usuarios[username].accept(Renderer())( "registrar_resultado.html", positivo=True) except: traceback.print_exc() return redirect(url_for("registrar") + "/True") user = user_loader(current_user.get_id()) return user.accept(Renderer())("registrar.html", form=form, invalidCredentials=invalidCredentials)
def editar(): direccion = request.args.get('barDireccion') form = EditarForm(request.form) if request.method == 'POST' and form.validate(): conjuntoDePerfiles.modificarNombreBar(direccion, str(form.nombre_dado.data)) return render_template('editar_resultado.html', positivo=True) user = user_loader(current_user.get_id()) esDuenio = conjuntoDePerfiles.obtenerBar(direccion).esDuenio(user) return user.accept(Renderer())( 'editar_bar.html', esDuenio=esDuenio, form=form, direccion=direccion, nombre=conjuntoDePerfiles.obtenerBar(direccion).nombre())
def eliminar(): direccion = request.args.get('barDireccion') nombre = request.args.get('nombre') if request.method == 'POST': try: bar = conjuntoDePerfiles.obtenerBar(direccion) conjuntoDePerfiles.borrarBar(bar) return render_template('eliminar_resultado.html', positivo=True) except: traceback.print_exc() return render_template('eliminar_resultado.html', positivo=False) user = user_loader(current_user.get_id()) esDuenio = conjuntoDePerfiles.obtenerBar(direccion).esDuenio(user) return user.accept(Renderer())('eliminar_bar.html', esDuenio=esDuenio, direccion=direccion, nombre=nombre)
def agregar(): form = AgregarForm(request.form) if request.method == 'POST' and form.validate(): try: nombre_del_bar = str(form.nombre_dado.data) direccion_del_bar = Ubicacion(form.direccion_dada.data) conjuntoDePerfiles.agregarBares( Bar(nombre_del_bar, direccion_del_bar)) return render_template('agregar_resultado.html', positivo=True) except KeyError: traceback.print_exc() return render_template('agregar_resultado.html', positivo=False, yaExiste=True) except: traceback.print_exc() return render_template('agregar_resultado.html', positivo=False) user = user_loader(current_user.get_id()) return user.accept(Renderer())("agregar.html", form=form)
def buscar(error=False): form = BuscarForm(request.form) if request.method == 'POST' and form.validate(): print('direccion_actual.data = ', form.direccion_actual.data) try: user = user_loader(current_user.get_id()) visualizador = VisualizadorDeResultados(form, user) baresEncontrados, posicionDelUsuario, markers, polylines, misBares = visualizador.visualizar( ) return user.accept(Renderer())( 'resultados_busqueda.html', bares=baresEncontrados, dirusuario=posicionDelUsuario, markers=markers, polylines=polylines, misBares=misBares, ) except: traceback.print_exc() return redirect(url_for("buscar") + "/True") return render_template('buscar.html', form=form, error=error)
def accionesPosibles(): if request.method == 'GET': user = user_loader(current_user.get_id()) return user.accept(Renderer())("home.html")