示例#1
0
def review(id):
    userId = session.get('ID', None)
    if (session.get('ID', None) is not None):
        conn = get_db()
        cur = conn.cursor()

        commandGetTrip = "SELECT * FROM Trips WHERE id = {}".format(id)
        cur.execute(commandGetTrip)
        currentTrip = cur.fetchone()

        if (request.method == 'POST'):
            rating = request.form['rating']
            message = request.form['message']

            commandInsertComments = "INSERT INTO Comments VALUES (NULL, '{}', '{}', '{}', '{}')".format(
                message, rating, userId, currentTrip[7])
            cur.execute(commandInsertComments)
            conn.commit()

            cur.close()
            conn.close()
            flash("Your review was submit")
            return redirect('../users')

        else:
            cur.close()
            conn.close()
            return render_template('review.html', trip=currentTrip)
    else:
        return redirect('../home')
示例#2
0
def choosecar(id, driverId):
    conn = get_db()
    cur = conn.cursor()

    license = request.form['license']
    brand = request.form['brand']
    model = request.form['model']
    capacity = request.form['capacity']
    year = request.form['year']
    color = request.form['color']
    commandCheckIfCarExist = "SELECT license FROM cars WHERE license = '{}'".format(
        license)
    cars = cur.execute(commandCheckIfCarExist)

    if (cars > 0):
        flash("This car already exist")
        cur.close()
        conn.close()
        return redirect("../../choosecar/{}".format(id))
    commandSetCar = "INSERT INTO cars VALUES ('{}', {}, '{}', '{}', '{}', '{}', '{}');".format(
        license, driverId, brand, model, capacity, year, color)
    cur.execute(commandSetCar)
    conn.commit()

    commandSetTrip = "UPDATE trips T SET T.license = '{}', T.seats_available = '{}' WHERE T.id = '{}'".format(
        license, capacity, id)
    cur.execute(commandSetTrip)
    conn.commit()

    cur.close()
    conn.close()
    return redirect("../../pickupinfo/{}".format(id))
示例#3
0
def login_auth():
    conn = get_db()
    cur = conn.cursor()

    auth = False
    email = request.form['email']
    password = request.form['password']

    print(email)

    userLoginValidation = "SELECT * FROM users U WHERE U.email = '{}' AND U.password = MD5('{}')".format(
        email, password)
    responseLoginValidation = cur.execute(userLoginValidation)
    if responseLoginValidation == 0:
        flash("Enter a valid account")
    else:
        commandId = "SELECT u.id FROM users u WHERE u.email = '{}'".format(
            email)
        cur.execute(commandId)
        id = cur.fetchone()
        session['ID'] = id[0]
        auth = True
    cur.close()
    conn.close()

    if (auth == True):
        return redirect('home')
    else:
        return render_template('login.html')
示例#4
0
def users():
    if (session.get('ID', None) is not None):
        user_id = session.get('ID', None)
        if user_id == None:
            flash("The user is not valid")
            return render_template("users.html")
        else:
            conn = get_db()
            cur = conn.cursor()
            command = "SELECT * FROM users WHERE id = {}".format(user_id)
            cur.execute(command)
            user = cur.fetchone()

            commandTripAsDriver = "SELECT * FROM trips WHERE id_driver = {}".format(
                user_id)
            cur.execute(commandTripAsDriver)
            tripAsDriver = cur.fetchall()

            commandTripAsPassenger = "SELECT * FROM trips WHERE id_passengers LIKE '%/{}%'".format(
                user_id)
            cur.execute(commandTripAsPassenger)
            tripAsPassenger = cur.fetchall()

            return render_template('users.html',
                                   user=user,
                                   tripAsDriver=tripAsDriver,
                                   tripAsPassenger=tripAsPassenger)
    else:
        return redirect('home', user=user)
示例#5
0
def payment(id):
    if(session.get('ID', None) is not None):
        conn = get_db()
        cur = conn.cursor()
        commandTrip = "SELECT * FROM Trips WHERE id = {}".format(id)

        cur.execute(commandTrip)
        currentTrip = cur.fetchone()

        commandDriverReviews = "SELECT * FROM comments WHERE id_driver = {}".format(currentTrip[7])

        cur.execute(commandDriverReviews)
        reviews = cur.fetchall()

        commandDriverName = "SELECT first_name, last_name FROM users WHERE id = {}".format(currentTrip[7])

        cur.execute(commandDriverName)
        driver = cur.fetchone()

        commandCar = "SELECT * FROM Cars WHERE license = '{}'".format(currentTrip[10])

        cur.execute(commandCar)
        car = cur.fetchone()

        cur.close()
        conn.close()
        return render_template('paymentTrip.html', currentTrip=currentTrip, reviews=reviews, driver=driver, car=car)
    else:
        return redirect('../home')
示例#6
0
def chooseExistingCar(id, driverId, license):
    conn = get_db()
    cur = conn.cursor()

    commandGetCapacity = "SELECT capacity FROM cars WHERE license = '{}'".format(
        license)
    cur.execute(commandGetCapacity)
    capacity = cur.fetchone()[0]

    commandSetTrip = "UPDATE trips T SET T.license = '{}', T.seats_available = '{}' WHERE T.id = '{}'".format(
        license, capacity, id)
    cur.execute(commandSetTrip)
    conn.commit()

    cur.close()
    conn.close()
    return redirect("../../../pickupinfo/{}".format(id))
示例#7
0
def fillAccount(id):
    if (session.get('ID', None) is not None):
        userId = session.get('ID', None)
        conn = get_db()
        cur = conn.cursor()

        commandUserMoney = "SELECT balance FROM users WHERE id = {}".format(id)
        cur.execute(commandUserMoney)
        amount = cur.fetchone()
        if (request.method == 'GET'):
            cur.close()
            conn.close()
            return render_template('fillAccount.html', amount=amount[0], id=id)
        else:
            moneyDeposit = request.form['amount']
            if (moneyDeposit == ""):
                moneyDeposit = 0
            elif (float(moneyDeposit) < 0.0):
                flash("You can't add negative amount.")
                cur.close()
                conn.close()
                return render_template('fillAccount.html',
                                       amount=amount[0],
                                       id=id)

            amountTotal = float(amount[0]) + float(moneyDeposit)
            commandUpdateMoney = "UPDATE users U SET U.balance = '{}' WHERE U.id = '{}'".format(
                amountTotal, id)
            cur.execute(commandUpdateMoney)
            conn.commit()

            commandWriteTransaction = "INSERT INTO Transactions VALUES (NULL, '{}', '{}', '{}', '{}')".format(
                userId, userId, moneyDeposit, date.today())
            cur.execute(commandWriteTransaction)
            conn.commit()

            cur.close()
            conn.close()
            return render_template('fillAccount.html',
                                   amount=amountTotal,
                                   id=id)
    else:
        return redirect('home')
示例#8
0
def register_auth():
    conn = get_db()
    cur = conn.cursor()

    email = request.form['email']
    password = request.form['password']
    firstName = request.form['fname']
    lastName = request.form['lname']
    gender = request.form['gender']
    birthday = request.form['birthday']
    country = request.form['country']
    phone = request.form['phone']
    balance = 0.0

    validation = "SELECT U.email FROM users U WHERE U.email = '{}'".format(
        email)
    responseValidation = cur.execute(validation)

    if (validateEmpty(request.form)):
        return render_template('register.html')
    elif (responseValidation > 0):
        flash("This email is already use")
        cur.close()
        conn.close()
        return render_template('register.html')

    else:
        command = "INSERT INTO Users VALUES (NULL, '{}', MD5('{}'), '{}', '{}', '{}', '{}', '{}', '{}', {});".format(
            email, password, firstName, lastName, gender, birthday, country,
            phone, balance)
        cur.execute(command)
        conn.commit()
        commandId = "SELECT u.id FROM users u WHERE u.email = '{}'".format(
            email)
        cur.execute(commandId)
        id = cur.fetchone()
        session['ID'] = id[0]
        cur.close()
        conn.close()
        return redirect('home')
示例#9
0
def createtrip():
    conn = get_db()
    cur = conn.cursor()

    departure = request.form['departure']
    destination = request.form['destination']
    date = request.form['date']
    distance = request.form['distance']

    if (distance == ""):
        distance = 0

    print(distance)
    stopover = request.form['stopover']
    price = request.form['price']

    if (price == ""):
        price = 0

    if request.form['stopover'] == "yes":
        stopover = 1
    elif request.form['stopover'] == "no":
        stopover = 0
    elif request.form['stopover'] == "other":
        stopover = 2

    if (validateEmpty(request.form)):
        return render_template('createtrip.html')
    else:
        command = "INSERT INTO trips VALUES (NULL, '{}', '{}', '{}', '{}', NULL, '{}', '{}', NULL, '{}', NULL)".format(
            date, departure, destination, distance, stopover, session['ID'],
            price)
        cur.execute(command)
        tripId = conn.insert_id()
        conn.commit()

    cur.close()
    conn.close()
    return redirect("choosecar/{}".format(tripId))
示例#10
0
def searchlift():
    if (session.get('ID', None) is not None):
        conn = get_db()
        cur = conn.cursor()

        if (request.method == 'POST'):
            if request.form['departure'] != "":
                departure = request.form['departure']
                departureQuery = " T.departure LIKE '%{}%' AND".format(
                    departure)
            else:
                departureQuery = ""

            if request.form['destination'] != "":
                destination = request.form['destination']
                destinationQuery = " T.destination LIKE '%{}%' AND".format(
                    destination)
            else:
                destinationQuery = ""

            if request.form['date'] != "":
                date = request.form['date']
                dateQuery = " T.date LIKE %'{}'% AND".format(date)
            else:
                dateQuery = ""

            if request.form['seats'] != "":
                numberOfPassengers = request.form['seats']
                numberOfPassengersQuery = " T.seats_available >= '{}' AND".format(
                    numberOfPassengers)
            else:
                numberOfPassengers = 1
                numberOfPassengersQuery = " T.seats_available >= 1 AND"

            if request.form['maxPrice'] != "":
                maxPrice = request.form['maxPrice']
                maxPriceQuery = " T.Price <= '{}'".format(maxPrice)
            else:
                maxPriceQuery = " T.Price > 0"

            command = "SELECT * FROM trips T WHERE" + departureQuery + destinationQuery + dateQuery + numberOfPassengersQuery + maxPriceQuery + " AND date > NOW() ORDER BY date"
            cur.execute(command)
            trajets = cur.fetchall()

        else:
            command = "SELECT * FROM trips WHERE seats_available != 0 AND date > NOW() ORDER BY date"
            cur.execute(command)
            trajets = cur.fetchall()

        imagePath = []
        for i, trip in enumerate(trajets):
            CommandeGetPicture = "SELECT i.picture FROM destination_pictures i WHERE i.destination = '{}'".format(
                trip[3])
            nb = cur.execute(CommandeGetPicture)
            if (nb == 0):
                imagePath.append('../../static/images/welift.jpg')
            else:
                imagePath.append(cur.fetchone()[0])
        cur.close()
        conn.close()
        return render_template("searchlift.html",
                               trajets=trajets,
                               imagePath=imagePath)

    else:
        return redirect('../home')