Пример #1
0
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())
Пример #2
0
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)
Пример #3
0
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())
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
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)
Пример #7
0
def accionesPosibles():
    if request.method == 'GET':
        user = user_loader(current_user.get_id())
        return user.accept(Renderer())("home.html")