def location(): """ Updates the location for a user """ if request.method == "POST": # Check if all fields are filled if not request.form.get("country"): flash("Must provide a country.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("state"): flash("Must provide a state.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("city"): flash("Must provide a city.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("geoname_id"): flash("Must provide geoname_id.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("full_name"): flash("Must provide full_name.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("country_isoalpha2"): flash("Must provide country_isoalpha2.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("country_isoalpha3"): flash("Must provide country_isoalpha3.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") if not request.form.get("admin1_code"): flash("Must provide admin1_code.", "danger") return redirect("/profile/" + str(session["user_id"]) + "/edit") # Create location object location ={} location["id"] = session["user_id"] location["country"] = request.form.get("country") location["state"] = request.form.get("state") location["city"] = request.form.get("city") location["geoname_id"] = request.form.get("geoname_id") location["full_name"] = request.form.get("full_name") location["country_isoalpha2"] = request.form.get("country_isoalpha2") location["country_isoalpha3"] = request.form.get("country_isoalpha3") location["admin1_code"] = request.form.get("admin1_code") location["latitude"] = request.form.get("latitude") location["longitude"] = request.form.get("longitude") # Checks to see if there is a location entry for the current user if get_location(conn, session["user_id"]): update_location(conn, location) else: create_location(conn, location) # Update location in indexes virtual table update_indexes_location(conn, location) flash("Location updated!", "success") return redirect("/profile/" + str(session["user_id"]) + "/edit") else: return redirect("/profile/" + str(session["user_id"]) + "/edit")
def user_3(): # given_name = "Amee" # num_steps = 15000 # new_steps = 250 # kms = num_steps * 0.00076 # distance_to_santiago = int(807 - kms) # location = helpers.get_location(800) # # location = get_location(kms) # google_url = os.environ.get('GOOGLE_URL') info_dict = { "given_name": "Hannah", "num_steps": 104000, "new_steps": 4000, "location": helpers.get_location(807), "distance_to_santiago": 0, "google_url": os.environ.get('GOOGLE_URL') } return render_trip(info_dict)
def profile(userid): """ Render profile page """ # Get user profile user = get_user_profile(conn, userid) # Get connection between profile user and logged user connection = get_connection(conn, session["user_id"], int(userid)) # Get location location = get_location(conn, userid) # Get user occupations occupations = get_all_occupations(conn, userid) # Get instruments instruments = get_all_instruments(conn, userid) # Get pages pages = get_all_pages(conn, userid) return render_template("profile.html", user=user, connection=connection, location=location, occupations=occupations, instruments=instruments, pages=pages)
def profile_edit(userid): """ Handles profile update """ if request.method == "POST": # Check if name fields are not empty if not request.form.get("first"): flash("Must provide first name.", "danger") return redirect("/profile/" + userid + "/edit") if not request.form.get("last"): flash("Must provide last name.", "danger") return redirect("/profile/" + userid + "/edit") # Creates profile object and stores form data and session id profile = {} profile["id"] = userid # Get form data profile["first"] = request.form.get("first") profile["last"] = request.form.get("last") profile["birth"] = request.form.get("birth") profile["gender"] = request.form.get("gender") profile["bio"] = request.form.get("bio") if profile["bio"] == '': bio = None # Checks if the user provided a picture, saves new picture, deletes old picture and stores new name if "picture" in request.files: picture = request.files["picture"] picture_name = save_picture(app, picture) old_picture_name = conn.execute("SELECT picture FROM profiles WHERE id=:userid", {'userid': session['user_id']}).fetchone()[0] if old_picture_name != 'default.jpg': delete_picture(app, old_picture_name) else: picture_name = conn.execute("SELECT picture FROM profiles WHERE id=:userid", {'userid': session['user_id']}).fetchone()[0] profile["picture"] = picture_name # Update database with form data update_profile(conn, profile) # Update indexes virtual table update_indexes_user(conn, session["user_id"], profile["first"], profile["last"]) # Redirect user to profile page flash("Your profile has been updated.", "success") return redirect("/profile/" + userid + "/edit") else: if str(session["user_id"]) != userid: return redirect("/profile/" + userid + "/edit") # Get all user info for requested profile user = get_user_profile(conn, userid) # Location location = get_location(conn, userid) # User occupations occupations = get_all_occupations(conn, session["user_id"]) # Get instruments and proficiency levels instruments = get_all_instruments(conn, session["user_id"]) proficiency = get_proficiency(conn) # Get pages and platforms pages = get_all_pages(conn, session["user_id"]) platforms = get_platforms(conn) return render_template("profile_edit.html", user=user, location=location, occupations=occupations, instruments=instruments, proficiency=proficiency, pages=pages, platforms=platforms)
from pymongo import MongoClient, GEOSPHERE from helpers import db_url, db_database, get_location mongo = MongoClient(db_url) db = mongo[db_database] missing_location = db.schools.find({"location": None}, {"postcode": 1}) not_found = [] for school in missing_location: postcode = school["postcode"] try: location = get_location(postcode) db.schools.update({"_id": school["_id"]}, {"$set": {"location": location} }) except: not_found.append(postcode) if not_found: print("\nCouldn't find lat/long for {0} postcodes.".format(str(len(not_found)))) print(", ".join(not_found)) db.schools.ensure_index([("location", GEOSPHERE)]) mongo.close()