Exemplo n.º 1
0
def add_product():
  if g.admin:
    if request.method == 'POST':
      # Make sure all the required fields were found. 
      product_fields = ['product_name', 'product_description', 'product_price', 'product_images', 'product_primary_colors', 'product_secondary_color_name', 'product_secondary_colors', 'product_sizes', 'product_category']
      if not all(map(lambda p: p in request.form, product_fields) ):
        return "There was an error processing your request. Not all of the required fields were found to be submitted. "
      if not request.form['product_name']: return "The product name is required"
      if not request.form['product_category']: return "The category is required"
      if request.form['product_description']: description = request.form['product_description']
      else:                                   description = None
      if 'product_secondary_color_optional' in request.form: secondary_color_optional = True
      else:                                                  secondary_color_optional = False
      product_data = {
        'name'                     : request.form['product_name']
      , 'description'              : description
      , 'price'                    : request.form['product_price']
      , 'images'                   : util.split_product_list(request.form['product_images'])
      , 'primary_colors'           : util.split_product_list(request.form['product_primary_colors'])
      , 'secondary_color_name'     : request.form['product_secondary_color_name']
      , 'secondary_colors'         : util.split_product_list(request.form['product_secondary_colors'])
      , 'secondary_color_optional' : secondary_color_optional
      , 'sizes'                    : util.split_product_list(request.form['product_sizes'])
      , 'category'                 : request.form['product_category']
      }
      products_model.insert(product_data)
      flash("Product Added Successfully")
      return redirect(url_for('admincp'))
  else: abort(401)
Exemplo n.º 2
0
def product_edit(product_slug):
  if not secrets_found: abort(404)
  if g.admin:
    product = products_model.get_one({"slug" : product_slug.lower() })
    if not product: abort(404)
    if request.method == 'GET':
      categories = categories_model.get()
      return render_template("product_edit.html", product=product, categories=categories)
    elif request.method == 'POST':
      # Make sure all the required fields were found. 
      product_fields = ['product_name', 'product_description', 'product_price', 'product_images', 'product_primary_colors', 'product_secondary_color_name', 'product_secondary_colors', 'product_sizes', 'product_category']
      if not all(map(lambda p: p in request.form, product_fields) ):
        return "There was an error processing your request. Not all of the required fields were found to be submitted. "
      if not request.form['product_name']: return "The product name is required"
      if not request.form['product_category']: return "The category is required"
      if request.form['product_description']: description = request.form['product_description']
      else:                                   description = None
      if 'product_secondary_color_optional' in request.form: secondary_color_optional = True
      else:                                                  secondary_color_optional = False
      product_data = { "$set" : {
        'name'                     : request.form['product_name']
      , 'description'              : description
      , 'price'                    : request.form['product_price']
      , 'images'                   : util.split_product_list(request.form['product_images'])
      , 'primary_colors'           : util.split_product_list(request.form['product_primary_colors'])
      , 'secondary_color_name'     : request.form['product_secondary_color_name']
      , 'secondary_colors'         : util.split_product_list(request.form['product_secondary_colors'])
      , 'secondary_color_optional' : secondary_color_optional
      , 'sizes'                    : util.split_product_list(request.form['product_sizes'])
      , 'category'                 : request.form['product_category']
      } } 
      products_model.update({"slug": product_slug.lower() }, product_data)
      flash("Product Edited Successfully")
      return redirect(url_for('product', product_slug = product['slug']))
  else: abort(401)