예제 #1
0
def create_new_trip():
    """Create a new Trip instance"""

    if "user_id" in session:
        trip_name = request.form.get("trip-name")
        accommodations = request.form.get("accommodations")
        creator_id = session.get("user_id")

        # Create new trip instance
        new_trip = Trip(trip_name=trip_name,
                        creator_id=creator_id,
                        trip_accommodations=accommodations)

        # If accommodations field was filled in, find the lat/long
        # and add the values to new_trip
        if accommodations:
            lat_long = call_geocoding_api(accommodations)
            if lat_long != "Invalid search terms":
                accomm_long = lat_long["lng"]
                accomm_lat = lat_long["lat"]

                new_trip.accom_lat = accomm_lat
                new_trip.accom_long = accomm_long

        db.session.add(new_trip)
        db.session.commit()

        # Add Trip_User instance for creator of the trip upon creation of the trip
        user_id = session.get("user_id")
        new_tu = Trip_User(trip_id=new_trip.trip_id, user_id=user_id)

        db.session.add(new_tu)
        db.session.commit()

        return redirect(f"/trip/{new_trip.trip_id}")

    else:
        flash("You need to be logged in to access that page")

        return redirect("/login")