def addProduct(): """Add product to database""" categories = access.getCategories() if request.method == "POST": product_image = request.files["product_image"] filename = "" if product_image and allowed_file(product_image.filename): filename = secure_filename(product_image.filename) product_image.save(os.path.join(app.config["UPLOAD_FOLDER"], filename)) product = models.ProductItem( product_name=request.form["product_name"], price=request.form["price"], product_image=filename, product_description=request.form["product_description"], category_id=request.form["category_id"], user_id=login_session["email"], created=datetime.now(), updated=datetime.now(), ) flash("Product Added %s" % product.product_name) access.session.add(product) access.session.commit() return redirect(url_for("categories")) else: return render_template("addProduct.html", categories=categories)
def json_products(): categories = access.getCategories() for category in categories: category.Items = access.getProductCategory(category.category_id) for product in category.Items: product.category_name = access.getCategory(product.category_id) return jsonify(Category=[i.serialize for i in categories])
def category_json(name): productItems = [] categories = access.getCategories() categories = access.getCategoryByName(name) for category in categories: category.Items = access.getProductCategory(category.category_id) for product in category.Items: product.category_name = access.getCategory(product.category_id) return jsonify(Category=[i.serialize for i in categories])
def recent_feed(): feed = AtomFeed("Recent Products", feed_url=request.url, url=request.url_root) categories = access.getCategories() productItems = access.getProductCount(15) for product in productItems: product.category_name = access.getCategory(product.category_id) feed.add( product.product_name, unicode(product.product_description), content_type="html", author=product.user_id, url=make_external(url_for("getProduct", name=product.product_name)), # noqa updated=product.updated or product.created, published=product.created, ) return feed.get_response()
def products(): """Returns the last 5 products for each category""" """Should have two panels - LHS lists categories, and initial RHS view lists most recent products across all categories plus price and category category and/or product are clickable, to return either the category page or the product page. Users can edit, create, or delete only the items that they created """ productItems = [] categories = access.getCategories() for category in categories: category.count = access.countItemsByCategory(category.category_name) productItems += access.getProductCountCategory(category.category_id, 5) for product in productItems: product.category_name = access.getCategory(product.category_id) if product.product_image: product.product_url = "uploads/" + product.product_image return render_template("products.html", categories=categories, products=productItems)
def editProduct(name): categories = access.getCategories() product = access.getProductByName(name) if product.product_image: product.product_url = "/uploads/", product.product_image product.category = access.getCategory(product.category_id) if request.method == "POST": product_image = request.files["product_image"] if product_image and allowed_file(product_image.filename): filename = secure_filename(product_image.filename) product_image.save(os.path.join(app.config["UPLOAD_FOLDER"], filename)) product.product_image = filename product.product_name = request.form["product_name"] product.price = request.form["price"] product.product_description = request.form["product_description"] product.category_id = request.form["category_id"] product.updated = datetime.now() flash("Product Edited %s" % product.product_name) access.session.commit() return redirect(request.referrer) else: return render_template("editProduct.html", product=product, categories=categories)