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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)