#3 Added basic create product page

This commit is contained in:
Luke Else 2024-01-19 12:37:51 +00:00
parent b2e32d720c
commit b821050869
6 changed files with 41 additions and 5 deletions

1
app.py
View File

@ -15,7 +15,6 @@ def main():
if secret_key == None: if secret_key == None:
# NO Secret Key set! # NO Secret Key set!
print("No app secret set, please set one before deploying in production") print("No app secret set, please set one before deploying in production")
print("This is a test")
app.secret_key = "DEFAULTKEY" app.secret_key = "DEFAULTKEY"
else: else:
app.secret_key = secret_key app.secret_key = secret_key

View File

@ -24,7 +24,6 @@ def get_user() -> dict[User|None]:
if user_id != None: if user_id != None:
db = UserController() db = UserController()
user = db.read_id(user_id) user = db.read_id(user_id)
print(user)
return dict(user=user) return dict(user=user)

View File

@ -1,8 +1,9 @@
from flask import Blueprint from flask import Blueprint
from flask import render_template, session, flash, request from flask import render_template, session, flash, request, redirect
from controllers.database.product import ProductController from controllers.database.product import ProductController
from controllers.database.category import CategoryController from controllers.database.category import CategoryController
from controllers.database.user import UserController
blueprint = Blueprint("products", __name__, url_prefix="/products") blueprint = Blueprint("products", __name__, url_prefix="/products")
@ -50,3 +51,21 @@ def category(category: str):
def id(id: int): def id(id: int):
return "ID: " + str(id) return "ID: " + str(id)
# Launches the page to add a new product to the site
@blueprint.route('/add')
def add_product():
user_id = session.get('user_id')
# User must be logged in to view this page
if user_id == None:
flash("Please Login to view this page")
return redirect('/login')
db = UserController()
user = db.read_id(user_id)
if user == None or user.role != "Seller":
flash("You must be logged in as a Seller to view this page")
return redirect('/')
return render_template('index.html', content='new_product.html')

View File

@ -86,5 +86,6 @@ def signup():
# Function responsible for handling logouts from the site # Function responsible for handling logouts from the site
@blueprint.route('/logout') @blueprint.route('/logout')
def logout(): def logout():
session.pop('user_id') # Clear the current user from the session if they are logged in
session.pop('user_id', None)
return redirect("/") return redirect("/")

View File

@ -0,0 +1,18 @@
<div id="login-form-wrap">
<h2>Sign Up</h2>
<form class="login-form" method="POST">
<input type="text" id="name" name="name" placeholder="Product Name" required>
<input type="textarea" id="description" name="description" placeholder="Product Description" required>
<input type="file" id="image" name="image" required>
<select name="category" id="category">
{% for category in categories %}
<option value="{{category.name}}">{{category.name}}</option>
{% endfor %}
</select>
<input type="submit" id="Sign Up" value="Sign Up">
</form>
<div id="create-account-wrap">
<p>Already have an account? <a href="login">Login</a><p>
</div>
</div>