WMGZON/controllers/web/product.py

53 lines
1.6 KiB
Python
Raw Normal View History

from flask import Blueprint
from flask import render_template, session, flash, request
from controllers.database.product import ProductController
from controllers.database.category import CategoryController
blueprint = Blueprint("products", __name__, url_prefix="/products")
# Global context to enable the categories to be accessed
# from any view
@blueprint.context_processor
def category_list():
database = CategoryController()
categories = database.read_all()
return dict(categories=categories)
# Loads the front product page
@blueprint.route('/')
def index():
database = ProductController()
products = database.read_all()
# No Products visible
if products == None:
flash("No Products available")
return render_template('index.html', content="content.html", user = session.get('user'), products = products)
# Loads a given product category page
@blueprint.route('/<string:category>')
def category(category: str):
database = ProductController()
# Check to see if there is a custome search term
search_term = request.args.get("search", type=str)
if search_term != None:
print(f"Search Term {search_term}")
products = database.read_all(category, search_term)
else:
products = database.read_all(category)
# No Products visible
if products == None:
flash("No Products available in " + category)
return render_template('index.html', content="content.html", user = session.get('user'), products = products, category = category)
# Loads a given product based on ID
@blueprint.route('/<int:id>')
def id(id: int):
return "ID: " + str(id)