Esempio n. 1
0
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")
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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()