예제 #1
0
def admin_edit_enrollments():
    query = f"SELECT enrollments.id, enrollments.course_result, classes.class_name, classes.date, classes.instructor, " \
            f"users.first_name, users.last_name FROM enrollments " \
            f"INNER JOIN classes ON enrollments.class_id=classes.id " \
            f"INNER JOIN users ON enrollments.user_id=users.id;"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, [
        "class_name", "first_name", "last_name", "date", "instructor",
        "course_result"
    ])
    headers = [
        "Class Name", "First Name", "Last Name", "Class Date", "Instructor",
        "Course Result", "Action(s)"
    ]
    button = ["edit", "delete"]
    title = "Admin Tools - Enrollments"
    page = "edit_enrollments"

    return render_template('tables.html',
                           data=data,
                           headers=headers,
                           button=button,
                           title=title,
                           page=page)
예제 #2
0
def admin_edit_accounts():
    query = "SELECT * FROM users;"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, [
        "first_name", "last_name", "username", "password", "email_address",
        "admin"
    ])

    headers = [
        "First Name", "Last Name", "Username", "Password", "Email", "Admin",
        "Action(s)"
    ]
    button = ["edit", "delete", "add"]
    title = "Admin Tools - Accounts"
    page = "edit_accounts"
    add = {
        "first_name": "text",
        "last_name": "text",
        "username": "******",
        "password": "******",
        "email": "text",
        "admin": "checkbox"
    }

    return render_template('tables.html',
                           data=data,
                           headers=headers,
                           button=button,
                           title=title,
                           page=page,
                           add=add)
예제 #3
0
def admin_edit_products():
    query = "SELECT items.id, items.product_name, items.price, items.stock_quantity, vendors.vendor_name " \
            "FROM items LEFT OUTER JOIN vendors ON items.vendor_id=vendors.id;"
    results = execute_query(query)
    response = results.fetchall()

    # TODO: Set vendor name to "Homemade" if NULL
    data = format_data(
        response, ["product_name", "vendor_name", "price", "stock_quantity"])

    headers = [
        "Item Name", "Vendor", "Cost", "Quantity Available", "Action(s)"
    ]
    button = ["edit", "delete", "add"]
    title = "Admin Tools - Products"
    page = "edit_products"
    add = {
        "item_name": "text",
        "vendor": "text",
        "price": "number",
        "quantity": "number"
    }

    return render_template('tables.html',
                           data=data,
                           headers=headers,
                           button=button,
                           title=title,
                           page=page,
                           add=add)
예제 #4
0
def admin_edit_classes():
    query = "SELECT id, class_name, date, instructor, available_seats, price FROM classes;"
    results = execute_query(query)
    response = results.fetchall()

    data = format_data(
        response,
        ["class_name", "date", "instructor", "available_seats", "price"])

    headers = [
        "Class Name", "Class Date", "Instructor", "Available Seats", "Price",
        "Action(s)"
    ]
    button = ["edit", "delete", "add"]
    title = "Admin Tools - Classes"
    page = "edit_classes"
    add = {
        "class_name": "text",
        "date": "date",
        "instructor": "text",
        "available_seats": "number",
        "price": "number"
    }

    return render_template('tables.html',
                           data=data,
                           headers=headers,
                           button=button,
                           title=title,
                           page=page,
                           add=add)
예제 #5
0
def admin_edit_orders():
    query = "SELECT orders.id, orders.date, orders.fulfilled, orders.total_cost, users.first_name, users.last_name " \
            "FROM orders INNER JOIN users ON orders.user_id=users.id;"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(
        response,
        ["id", "first_name", "last_name", "date", "total_cost", "fulfilled"])

    headers = [
        "Order Number", "First Name", "Last Name", "Order Date", "Total Cost",
        "Fulfilled", "Action(s)"
    ]
    button = ["view", "edit", "delete"]
    title = "Admin Tools - Orders"
    page = "edit_orders"

    return render_template('tables.html',
                           data=data,
                           headers=headers,
                           button=button,
                           title=title,
                           page=page)
예제 #6
0
def orders():
    username = session["username"]
    query = f"SELECT * FROM orders WHERE user_id=(SELECT id from users WHERE username='******');"

    results = execute_query(query)
    response = results.fetchall()

    # TODO: Fix the format_data to replace boolean with checkbox somehow?
    data = format_data(response, ["id", "date", "total_cost", "fulfilled"])

    return render_template('order_history.html', data=data)
예제 #7
0
def address_info():
    username = session["username"]
    query = f"SELECT * FROM addresses WHERE user_id=(SELECT id from users WHERE username='******');"
    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, [
        "street_address", "secondary_street_address", "city", "state",
        "zip_code"
    ])

    return render_template('address_info.html', data=data)
예제 #8
0
def enrolled_classes():
    username = session["username"]
    query = f"SELECT enrollments.id, enrollments.course_result, classes.class_name, classes.date, classes.instructor " \
            f"FROM enrollments INNER JOIN classes ON enrollments.class_id=classes.id " \
            f"WHERE enrollments.user_id=(SELECT id from users WHERE username='******');"
    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response,
                       ["class_name", "date", "instructor", "course_result"])

    return render_template('enrolled_classes.html', data=data)
예제 #9
0
def payment_info():
    username = session["username"]
    query = f"SELECT * FROM payment_information WHERE user_id=(SELECT id from users WHERE username='******');"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(
        response,
        ["name", "card_number", "security_number", "expiration_date"])

    return render_template('payment_info.html', data=data)
예제 #10
0
def ind_items():
    order_id = request.form.get("view_item")

    query = f"SELECT order_items.id, order_items.quantity, items.product_name, items.price FROM order_items " \
            f"LEFT OUTER JOIN items ON order_items.item_id=items.id " \
            f"WHERE order_items.order_id={int(order_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, ["product_name", "price", "quantity"])

    return render_template('view_order_items.html', data=data)
예제 #11
0
def load_products():
    # grabbing the value from whatever the button name is for filter

    filter_value = request.form.get("filter")
    filter_text = request.form.get("filter_text")

    # Perform an if statement similar to the one in admin_edit_products where it checks if value is None. If it is none
    # then the page wasn't called by filter button and we return the select query that isn't filtering anything

    if filter_value is not None:

        # If the button value is not None then we know that a call was made to filter so we need to grab the filter value
        # from the form and perform a query using the LIKE mysql verb

        query = f"SELECT items.id, items.product_name, items.price, items.stock_quantity, vendors.vendor_name" \
                f" FROM items LEFT OUTER JOIN vendors ON items.vendor_id=vendors.id WHERE items.product_name LIKE " \
                f"'%{filter_text}%' OR vendors.vendor_name LIKE '%{filter_text}%';"

        results = execute_query(query)
        response = results.fetchall()

        data = format_data(
            response,
            ["product_name", "vendor_name", "price", "stock_quantity"])

        return render_template('products.html', data=data)

    # Then in either case we can format data and render products.html

    query = "SELECT items.id, items.product_name, items.price, items.stock_quantity, vendors.vendor_name " \
            "FROM items LEFT OUTER JOIN vendors ON items.vendor_id=vendors.id;"
    results = execute_query(query)
    response = results.fetchall()

    # TODO: Set vendor name to "Homemade" if NULL
    data = format_data(
        response, ["product_name", "vendor_name", "price", "stock_quantity"])

    return render_template('products.html', data=data)
예제 #12
0
def load_classes():
    # grabbing the value from whatever the button name is for filter

    filter_value = request.form.get("filter")
    filter_text = request.form.get("filter_text")

    # Perform an if statement similar to the one in admin_edit_products where it checks if value is None. If it is none
    # then the page wasn't called by filter button and we return the select query that isn't filtering anything

    if filter_value is not None:

        # If the button value is not None then we know that a call was made to filter so we need to grab the filter value
        # from the form and perform a query using the LIKE mysql verb

        query = f"SELECT * FROM classes WHERE class_name LIKE '%{filter_text}%' OR " \
                f"date LIKE '%{filter_text}%' OR instructor LIKE '%{filter_text}%';"

        results = execute_query(query)
        response = results.fetchall()

        data = format_data(
            response,
            ["class_name", "date", "instructor", "available_seats", "price"])

        return render_template('classes.html', data=data)

    # Then in either case we can format data and render products.html

    query = "SELECT id, class_name, date, instructor, available_seats, price FROM classes;"
    results = execute_query(query)
    response = results.fetchall()

    data = format_data(
        response,
        ["class_name", "date", "instructor", "available_seats", "price"])

    return render_template('classes.html', data=data)
예제 #13
0
def edit_order_items_page():
    order_id = request.form.get("edit_item")

    query = f"SELECT id, quantity FROM order_items WHERE id={int(order_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, ["quantity"])
    headers = ["Quantity", "Action(s)"]
    page = "edit_order_items"
    field_order = {"number"}

    return render_template('edit_row.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #14
0
def edit_enrollment_page():
    enroll_id = request.form.get("edit_item")

    query = f"SELECT id, course_result FROM enrollments WHERE id={int(enroll_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, ["course_result"])
    headers = ["Course Result", "Action(s)"]
    page = "edit_enrollments"
    field_order = {"text"}

    return render_template('edit_row.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #15
0
def edit_orders_page():
    order_id = request.form.get("edit_item")

    query = f"SELECT id, date, fulfilled, total_cost FROM orders WHERE id={int(order_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, ["date", "total_cost", "fulfilled"])
    headers = ["Date", "Total Cost", "Fulfilled", "Action(s)"]
    page = "edit_orders"
    field_order = {"date", "number", "checkbox"}

    return render_template('edit_row.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #16
0
def shop_cart():

    cart = {}

    for key, value in session["cart"].items():
        query = f"SELECT items.id, items.product_name, items.price, vendors.vendor_name " \
                f"FROM items LEFT OUTER JOIN vendors ON items.vendor_id=vendors.id WHERE items.id={int(key)};"
        results = execute_query(query)
        response = results.fetchall()

        data = format_data(response, ["product_name", "vendor_name", "price"])

        data[key].update({"quantity": str(value)})
        print(data)
        cart.update(data)

    print(cart)

    return render_template('shopping_cart.html', data=cart)
예제 #17
0
def edit_products_page():
    product_id = request.form.get("edit_item")

    query = f"SELECT items.id, items.product_name, items.price, items.stock_quantity, vendors.vendor_name " \
            f"FROM items LEFT OUTER JOIN vendors ON items.vendor_id=vendors.id WHERE items.id={int(product_id)};"
    results = execute_query(query)
    response = results.fetchall()
    print(response)

    data = format_data(
        response, ["product_name", "vendor_name", "price", "stock_quantity"])
    headers = ["Product Name", "Vendor Name", "Price", "Quantity", "Action(s)"]
    page = "edit_products"
    field_order = {"text", "text", "number", "number"}

    return render_template('edit_row.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #18
0
def edit_payment_information():
    payment_id = request.form.get("edit_payment")

    query = f"SELECT id, user_id, name, card_number, security_number, expiration_date FROM payment_information WHERE id={int(payment_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(
        response,
        ["name", "card_number", "security_number", "expiration_date"])
    headers = ["Name", "Card Number", "Security Number", "Expiration Date"]
    page = "payment_info"
    field_order = {"text", "text", "text", "date"}

    return render_template('edit_payment_info.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #19
0
def edit_class_page():
    class_id = request.form.get("edit_item")

    query = f"SELECT id, class_name, date, instructor, available_seats, price FROM classes WHERE id={int(class_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(
        response,
        ["class_name", "date", "instructor", "available_seats", "price"])
    headers = [
        "Class Name", "Class Date", "Instructor", "Available Seats", "Price",
        "Action(s)"
    ]
    page = "edit_classes"
    field_order = {"text", "date", "text", "number", "number"}

    return render_template('edit_row.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #20
0
def view_order_item():
    order_id = request.form.get("view_item")

    query = f"SELECT order_items.id, order_items.quantity, items.product_name, items.price FROM order_items " \
            f"LEFT OUTER JOIN items ON order_items.item_id=items.id " \
            f"WHERE order_items.order_id={int(order_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, ["product_name", "price", "quantity"])

    headers = ["Product Name", "Price", "Quantity", "Action(s)"]
    button = ["edit", "delete"]
    title = f"Admin Tools - Order Items - Order Number {order_id}"
    page = "edit_order_items"

    return render_template('tables.html',
                           data=data,
                           headers=headers,
                           button=button,
                           title=title,
                           page=page)
예제 #21
0
def edit_account_page():
    user_id = request.form.get("edit_item")

    query = f"SELECT id, first_name, last_name, username, password, email_address, admin FROM users WHERE id={int(user_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, [
        "first_name", "last_name", "username", "password", "email_address",
        "admin"
    ])
    headers = [
        "First Name", "Last Name", "Username", "Password", "Email", "Admin",
        "Action(s)"
    ]
    page = "edit_accounts"
    field_order = {"text", "text", "text", "text", "text", "checkbox"}

    return render_template('edit_row.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)
예제 #22
0
def edit_address_information():
    address_id = request.form.get("edit_address")

    query = f"SELECT id, user_id, street_address, secondary_street_address, city, state, zip_code " \
            f"FROM addresses WHERE id={int(address_id)};"

    results = execute_query(query)
    response = results.fetchall()

    data = format_data(response, [
        "street_address", "secondary_street_address", "city", "state",
        "zip_code"
    ])
    headers = [
        "Street Address", "Street Address 2", "City", "State", "Zip Code"
    ]
    page = "address_info"
    field_order = {"text", "text", "text", "text", "text"}

    return render_template('edit_address_info.html',
                           data=data,
                           headers=headers,
                           page=page,
                           field_order=field_order)