Ejemplo n.º 1
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))
    form = AddressForm()
    my_coordinates = []
    places = (37.4221, -122.0844)
    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home', form=form)
        else:

            # Get The Address
            address = form.address.data
            # Query the places Around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)
            # Show the Results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    return render_template('home.html',
                           form=form,
                           my_coordinates=my_coordinates,
                           places=places)
Ejemplo n.º 2
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()
    buses = []
    my_coordinates = (38.905276, -76.981588)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data
            #query for buses around it
            b = Bus()
            my_coordinates = b.address_to_latlng(address)

            buses, closest = b.query(address)
            #return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   buses=buses,
                                   closest=closest)

    elif request.method == 'GET':
        bad = {'name': '______', 'own': '______', 'dist': '______'}
        return render_template('home.html',
                               form=form,
                               my_coordinates=my_coordinates,
                               buses=buses,
                               closest=bad)
Ejemplo n.º 3
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (40.7127750, -74.0059730)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            #get address
            address = form.address.data

            #search places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            #return results

            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template('home.html',
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 4
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()
    places = []
    my_coordinates = (37.4221, -122.0844)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data
            #address = add

            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 5
0
def home():
	if 'email' not in session:
		return redirect(url_for('login'))

	form = AddressForm()

	places = []
	my_coordinates = (37.4221, -122.0844)

	if request.method == 'POST':
		if not form.validate():
			return render_template('home.html', form=form)

		# Handle the Form here.
		# Get the adress.
		address = form.address.data

		# Query for places around it.
		p = Place()
		my_coordinates = p.address_to_latlng(address)
		places = p.query(address)

		# Return those results.
		return render_template('home.html', form=form, my_coordinates=my_coordinates, places=places)
	elif request.method == 'GET':
		return render_template('home.html', form=form, my_coordinates=my_coordinates, places=places)
Ejemplo n.º 6
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    # Address Form
    form = AddressForm()

    places = []
    my_coordinates = (47.5729, -117.6822)

    # Checking form submission
    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # TODO: get the address
            address = form.address.data

            # TODO: query for places around it
            p = Places()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # TODO: return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template('home.html',
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 7
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (42.650435, -73.758516)

    if request.method == 'POST' and form.validate():
        # get the address
        address = form.address.data

        # query for places around it
        p = Place()
        my_coordinates = p.address_to_latlng(address)
        places = p.query(address)

        # return the results
        return render_template('home.html', form=form,
                                            my_coordinates=my_coordinates,
                                            places=places)
    return render_template('home.html', form=form,
                                        my_coordinates=my_coordinates,
                                        places=places)
Ejemplo n.º 8
0
def home():
    if 'email' not in session:
        return redirect(url_for("login"))

    form = AddressForm()
    places = []
    my_coordinates = (17.4435, 78.3772)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            address = form.address.data

            p = Place()
            places = p.query(address)

            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 9
0
def home():
	if 'email' not in session:
		return redirect(url_for('login'))
	
	form = AddressForm()
	places = []
	my_coordinates = (37.4221, -122.0844)
	
	if request.method == "POST":
		if form.validate() == False:
			return render_template("home.html", form=form)
		else:
			# get the address
			address = form.address.data

			# query for addresses nearby
			p = Place()

			my_coordinates = p.address_to_latlng(address)
			places = p.query(address)


			# return those results
			return render_template('home.html', form=form, my_coordinates=my_coordinates, places=places)
			

	elif request.method == "GET":
		return render_template("home.html", form=form, my_coordinates=my_coordinates, places=places)
Ejemplo n.º 10
0
def home():
	if 'email' not in session:
		return redirect(url_for('login'))

	form = AddressForm()

	places = []
	my_coordinates = (50.45146, 30.52187) #37.4221     -122.0844

	if request.method == 'POST':
		if form.validate() == False:
			return render_template("home.html", form=form)
		else:
			address = form.address.data

			p = Place()
			my_coordinates =p.address_to_latlng(address)
			places = p.query(address)

			return render_template("home.html", 
									form=form,
									my_coordinates=my_coordinates,
									places=places)

	elif request.method == 'GET':
		return render_template("home.html", 
								form=form,
								my_coordinates=my_coordinates,
								places=places)

	return render_template("home.html")
Ejemplo n.º 11
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (45.975589, 15.060825)

    if request.method == 'POST':
        if not form.validate():
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data
            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)
            # return those results
            return render_template('home.html', form=form, my_coordinates=my_coordinates, places=places)

    elif request.method == 'GET':
        return render_template('home.html', form=form, my_coordinates=my_coordinates, places=places)

    return render_template('home.html')
Ejemplo n.º 12
0
def home():
    #enable this to have user login and permission
    # if 'email' not in session:
    #    return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (43.6629, -79.3957)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data

            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 13
0
def home():
	if 'email' not in session:
		return redirect(url_for("login"))

	form=AddressForm()

	places = []
	my_coordinates = (30.620949, -96.350764)

	if request.method=="POST":
		if form.validate() == False:
			return render_template("home.html", form=form)
		else:
			# get the address
			address=form.address.data
			print("Hello")

			# query for places around it
			p=Place()
			my_coordinates = p.address_to_latlng(address)
			print(my_coordinates)
			places=p.query(address)

			# return those results
			return render_template("home.html", form=form, my_coordinates=my_coordinates, places=places)

	elif request.method=="GET":
		return render_template("home.html", form=form, my_coordinates=my_coordinates, places=places)
Ejemplo n.º 14
0
def home(id=None):
    if 'email' not in session:  # used to avoid login page if user already login
        return redirect(url_for('login'))
    # q = User.query.get(id)
    user = User.query.filter_by(email=session['email']).first()
    form = AddressForm()
    places = []
    my_coord = (37.4332, -122.0844)
    if request.method == 'POST':
        if form.validate() == False:
            return render_template("home.html", **dict(user=user, form=form))
        else:
            #get the add
            address = form.address.data
            #query for add
            p = Place()
            my_coord = p.address_to_latlang(address)
            places = p.query(address)

            # return those results
            return render_template(
                'home.html',
                **dict(user=user, form=form, my_coord=my_coord, places=places))
    elif request.method == 'GET':
        return render_template(
            "home.html",
            **dict(user=user, form=form, my_coord=my_coord, places=places))
    else:
        return "else"
Ejemplo n.º 15
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()
    places = []
    my_coordinates = (37.4221, -122.0844)

    if request.method == "POST":
        if form.validate() == False:
            return render_template("home.html", form=form)
        else:
            #handle good case
            # Get the address
            address = form.address.data

            # Search for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # Return the results
            return render_template("home.html",
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == "GET":
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 16
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (66, -99)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)
        else:
            address = form.address.data
            print(address)

            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.get_places(*my_coordinates)

            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)
    elif request.method == 'GET':
        return render_template('home.html',
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
def home():

    form = AddressForm()

    places = []
    my_coordinates = (34.023076, -118.2870456)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data

            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 18
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()
    places = []
    my_coordinates = (37.4221, -122.0844)

    if request.method == 'POST':
        if form.validate() == False:
            return render_template("home.html",
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)
        else:
            address = form.address.data
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)
            return render_template("home.html",
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    if request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)

    return render_template("home.html")
Ejemplo n.º 19
0
def home():
  if 'email' not in session:
    return redirect(url_for('login'))

  form = AddressForm()

  places = []
  my_coordinates = (5.3109351,-1.9924259)

  if request.method == 'POST':
    if form.validate() == False:
      return render_template('home.html', form=form)
    else:
      # get the address
      address = form.address.data

      # query for places around it
      p = Place()
      my_coordinates = p.address_to_latlng(address)
      places = p.query(address)

      # return those results
      return render_template('home.html', form=form, my_coordinates=my_coordinates, places=places)

  elif request.method == 'GET':
    return render_template("home.html", form=form, my_coordinates=my_coordinates, places=places)
Ejemplo n.º 20
0
def maps():
    #if 'email' not in session:
    #	return redirect(url_for('login'))

    form = AddressForm()
    places = []
    my_coordinates = {}

    if request.method == 'POST':
        if not form.validate():
            return render_template('maps.html', form=form)
        else:
            address = form.address.data

            p = GPlace()
            # geocoder.google(address) isn't doing a great job of getting lat/lng's, often misses
            # Default is WLU
            lat, lng = p.address_to_latlng(address)
            my_coordinates = {"lat": lat, "lng": lng}
            places = p.query(lat, lng)
            print(places)

            return render_template('maps.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("maps.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 21
0
def home():
    if "email" not in session:
        return redirect(url_for("login"))

    form = AddressForm()

    places = []
    my_coordinates = (40.7308619, -73.9871558)

    if request.method == "POST":
        if form.validate() == False:
            return render_template("home.html", form=form)
        else:
            # get the address
            address = form.address.data

            # query for places around it
            my_point = Place()
            my_coordinates = my_point.address_to_latlng(address)
            places = my_point.query(address)

            # return those results
            return render_template("home.html",
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == "GET":
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 22
0
def home():
    if 'email' not in session:  #checks to see if logged in or not
        return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (41.7508, 88.1535)

    if request.method == 'POST':
        if form.validate() == False:
            my_coordinates = (41.7508, 88.1535)
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates)
        else:
            # get the address
            address = form.address.data
            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 23
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()

    places = []
    my_coordinates = (33.7489, -84.3789)  # Based on the city of Atlanta

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data

            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return those results
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template('home.html',
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 24
0
def home():
    if "email" not in session:      #AUTHENTICATION IS USED HERE. This process comes under authentication
        return redirect(url_for("login"))   #No longer can access "home" if user is not logged in

    form = AddressForm()

    places = []
    my_coordinates = [37, -122]

    if request.method == "POST":
        if form.validate() == False:
            return render_template("home.html", form=form)
        else:
            # get the address
            address = form.address.data

            # query for places around it
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return those results
            return render_template("home.html", form=form, my_coordinates=my_coordinates, places=places)


    elif request.method == "GET":
        return render_template("home.html", form=form, my_coordinates=my_coordinates, places=places)
Ejemplo n.º 25
0
def home():
    if "email" not in session:
        return redirect(url_for("login"))

    form = AddressForm()
    places = []
    my_coordinates = [37.4221, -122.0844]

    if request.method == "POST":
        if not form.validate():
            return render_template("home.html", form=form)
        else:
            # get address
            address = form.address.data
            # query for places
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)
            # return results
            return render_template("home.html",
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)
    elif request.method == "GET":
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 26
0
def nearby(tid):
    """Nearby uses flask_wtform and wikipedia apis.

    Get the address, query for places around it
    (currently wikipedia, may become locations of tickets),
    return results.
    """
    tid = tid
    ticket = Ticket.query.get(tid)
    pickup_address = ticket.pickup_address
    pickup_ll = geocoder.google(pickup_address)
    p_lat, p_lng = pickup_ll.lat, pickup_ll.lng
    form = AddressForm()
    places = []
    my_coordinates = (p_lat, p_lng)
    lat_lng = (p_lat, p_lng)

    if request.method == 'POST':
        if form.validate() is False:
            return render_template('nearby.html', form=form, tid=tid,
                                   ticket=ticket)
        else:
            address = form.address.data
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.main(address)

            return render_template('nearby.html', form=form, places=places,
                                   my_coordinates=my_coordinates, tid=tid,
                                   lat_lng=lat_lng, ticket=ticket)

    elif request.method == 'GET':
        return render_template("nearby.html", form=form, places=places,
                               my_coordinates=my_coordinates, tid=tid,
                               lat_lng=lat_lng, ticket=ticket)
Ejemplo n.º 27
0
def home():
    form = AddressForm()
    places, lat_lon = [], (12.836649, 77.655809)
    if request.method == 'POST':
        if not form.validate():
            return render_template('home.html', form=form)
        else:
            address = form.address.data
            p = Place()
            fetched_lat_lon = p.address_to_latlng(address)

            if any(lat_lon):
                places = p.query(address)
                return render_template('home.html',
                                       form=form,
                                       my_coordinates=fetched_lat_lon,
                                       places=places)
            else:
                return render_template('home.html', form=form)

    elif request.method == 'GET':
        return render_template('home.html',
                               form=form,
                               my_coordinates=lat_lon,
                               places=places)
Ejemplo n.º 28
0
def home():
    form = AddressForm()

    places = []
    my_coordinates = (37.4221, -122.0844)

    if 'email' not in session:
        return redirect(url_for('login'))

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            #get the address
            address = form.address.data

            #want to use geodata api - make a model (models.py)
            #query places around address
            p = Place()
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)

    elif request.method == 'GET':
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)
Ejemplo n.º 29
0
def checkout():
    addressForm = AddressForm(csrf_enabled=False)
    cart = get_cart()

    #Address form submitted, save to session and redirect to payment page
    if addressForm.is_submitted() and cart:
        firstname = addressForm.firstname.data
        surname = addressForm.surname.data
        company = addressForm.company.data
        address1 = addressForm.address1.data
        address2 = addressForm.address2.data
        suburb = addressForm.suburb.data
        state = addressForm.state.data
        country = addressForm.country.data
        email = addressForm.email.data
        phone = addressForm.phone.data
        postcode = addressForm.postcode.data

        session['address'] = {
            'name': firstname,
            'surname': surname,
            'company': company,
            'address1': address1,
            'address2': address2,
            'suburb': suburb,
            'state': state,
            'postcode': postcode,
            'country': country,
            'phone': phone,
            'email': email
        }

        if addressForm.validate() == False:
            return render_template('cart.html',
                                   banner=BANNER,
                                   contact=get_contact(),
                                   lines=get_lines(),
                                   address=addressForm,
                                   total=get_total(),
                                   cart=cart,
                                   shipping=get_shipping(),
                                   addressdata=get_address())
        else:

            return redirect(url_for('pay'))

    return render_template('cart.html',
                           banner=BANNER,
                           contact=get_contact(),
                           lines=get_lines(),
                           address=addressForm,
                           total=get_total(),
                           cart=cart,
                           shipping=get_shipping(),
                           addressdata=get_address())
Ejemplo n.º 30
0
def home():
    if 'email' not in session:
        return redirect(url_for('login'))

    form = AddressForm()

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            pass
    return render_template('home.html', form=form)
Ejemplo n.º 31
0
def home():
    if 'email' not in session:  # Allows access to 'home' page only if session object has 'email' key (i.e. a valid user is logged in)
        return redirect(url_for('login'))

    form = AddressForm()
    if request.method == 'POST':
        if form.validate() == False:
            return render_template("home.html", form=form)
        else:
            # handle the form submission
            pass
    elif request.method == 'GET':
        return render_template("home.html", form=form)
Ejemplo n.º 32
0
def home():

    form = AddressForm()

    if request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            pass

    elif request.method == 'GET':
         if 'email' not in session :
             return redirect(url_for('signin'))
         return render_template('home.html', form= form)
Ejemplo n.º 33
0
def home():
    # if the user is not logged in, send them to log in. this "protects" the home page
    if "email" not in session:
        return redirect(url_for("login"))

    # in this function, form refers to an instance of address form that we imported from our forms.py
    form = AddressForm()
    # so we can access these two things later.
    places = []

    #default coordinates to start with on the map
    #first_load = 1
    my_coordinates = (39.281496, -76.6119114)
    # if the url is POSTing something
    if request.method == "POST":
        # if the form doesn' validate, try again
        if form.validate() == False:
            return render_template("home.html",
                                   form=form,
                                   session=session,
                                   first_load=1)
        else:
            # if the form validates, get address from form
            address = form.address.data
            # query nearby locations
            # p is an instance of the Place class that we import from the models
            p = Place()
            # coordinates reset to
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # if (my_coordinates == (39.281496, -76.6119114)):
            #     first_load = 0
            #return results
            return render_template("home.html",
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places,
                                   session=session,
                                   first_load=0)

    elif request.method == "GET":
        return render_template("home.html",
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places,
                               session=session,
                               first_load=1)
Ejemplo n.º 34
0
def home():
	if 'email' not in session:
		return redirect(url_for('login'))
	form = AddressForm()
	places = []
	my_coords = geocoder.google('Mountain View, CA').latlng
	if request.method == 'POST':
		if not form.validate():
			return render_template('home.html', form=form, my_coords=my_coords)
		else:
			address = form.address.data
			p = Place()
			my_coords = p.address_to_latlng(address)
			places = p.query(address)
			return render_template('home.html', form=form, my_coords=my_coords, places=places)
	elif request.method == 'GET':
		return render_template('home.html', form=form, my_coords=my_coords,places=places)
Ejemplo n.º 35
0
def home():
    form = AddressForm()
    p = Place()

    if request.method == 'GET':
        places = []
        gl = session.get('_location', None)
        gl = get_user_location() if gl is None else Geolocation(*gl)
        if gl is None:
            form.address.data = 'London, UK'
        else:
            form.address.data = '{}, {}, {} {}'.format(gl.city, gl.region_name,
                                                       gl.country_name,
                                                       gl.zip_code)

        my_coordinates = p.address_to_latlng(form.address.data)
        if not all(my_coordinates):
            # failed to decode address to lat, lng
            form.address.errors += (
                'Invalid address',
            )  # form.address.errors is a immutable tuple
        else:
            places = p.query(form.address.data)

        return render_template('home.html',
                               form=form,
                               my_coordinates=my_coordinates,
                               places=places)

    elif request.method == 'POST':
        if form.validate() == False:
            return render_template('home.html', form=form)
        else:
            # get the address
            address = form.address.data

            # query for places around the address
            my_coordinates = p.address_to_latlng(address)
            places = p.query(address)

            # return the results as a list
            return render_template('home.html',
                                   form=form,
                                   my_coordinates=my_coordinates,
                                   places=places)