Exemplo n.º 1
0
def product_add():
    """ 商品添加 """
    form = ProductEditForm()
    if form.validate_on_submit():
        # 保存到数据库
        print(form.data)
        prod_obj = Product(
            name=form.data['name'],
            content=form.data['content'],
            desc=form.data['desc'],
            types=form.data['types'],
            price=form.data['price'],
            origin_price=form.data['origin_price'],
            img='xxx.jpg',
            channel=form.data['channel'],
            buy_link=form.data['buy_link'],
            status=form.data['status'],
            sku_count=form.data['sku_count'],
            remain_count=form.data['remain_count'],
            view_count=form.data['view_count'],
            score=form.data['score'],
            is_valid=form.data['is_valid'],
            reorder=form.data['reorder'],
        )
        db.session.add(prod_obj)
        db.session.commit()
        # 消息提示
        flash('新增商品成功', 'success')
        # 跳转到商品列表中去
        return redirect(url_for('mall.product_list', page=1))
    else:
        # 消息提示
        flash('请修改页面中的页面错误,然后提交', 'warning')
        print(form.errors)
    return render_template('product_add.html', form=form)
Exemplo n.º 2
0
def product_edit(uid):
    """ 商品编辑 """
    # 查询商品信息
    prod_obj = Product.query.filter_by(uid=uid, is_valid=True).first()
    print(prod_obj)
    if prod_obj is None:
        abort(404)
    form = ProductEditForm(obj=prod_obj)
    if form.validate_on_submit():
        prod_obj.name = form.name.data
        prod_obj.content = form.data['content']
        prod_obj.desc = form.data['desc']
        prod_obj.types = form.data['types']
        prod_obj.price = form.data['price']
        prod_obj.origin_price = form.data['origin_price']
        prod_obj.img = 'xxx.jpg'
        prod_obj.channel = form.data['channel']
        prod_obj.buy_link = form.data['buy_link']
        prod_obj.status = form.data['status']
        prod_obj.sku_count = form.data['sku_count']
        prod_obj.remain_count = form.data['remain_count']
        prod_obj.view_count = form.data['view_count']
        prod_obj.score = form.data['score']
        prod_obj.is_valid = form.data['is_valid']
        prod_obj.reorder = form.data['reorder']
        db.session.add(prod_obj)
        db.session.commit()
        flash('修改成功', 'success')
        return redirect(url_for('mall.product_list', page=1))
    else:
        print(form.errors)
    return render_template('product_edit.html', form=form, prod_obj=prod_obj)
Exemplo n.º 3
0
def product_add():
    form = ProductEditForm()
    if form.validate_on_submit():
        prod_obj = Product(
            name=form.name.data,
            content=form.content.data,
            desc=form.desc.data,
            types=form.types.data,
            price=form.price.data,
            origin_price=form.origin_price.data,
            img='xxx.jpg',
            channel=form.channel.data,
            buy_link=form.buy_link.data,
            status=form.status.data,
            sku_count=form.sku_count.data,
            remain_count=form.remain_count.data,
            view_count=form.view_count.data,
            score=form.score.data,
            is_valid=form.is_valid.data,
            reorder=form.reorder.data,
        )
        db.session.add(prod_obj)
        db.session.commit()
        flash('新增商品成功', 'success')
        return redirect(url_for('mall.product_list', page=1))
    else:
        print(form.errors)
        flash('请修改页面中的页面错误', 'warning')
    return render_template('product_add.html', form=form)
Exemplo n.º 4
0
def product_edit(uid):
    prod_obj = Product.query.filter_by(uid=uid, is_valid=True).first()
    if prod_obj is None:
        abort(404)
    form = ProductEditForm(obj=prod_obj)
    if form.validate_on_submit():
        prod_obj.name = form.name.data
        prod_obj.content = form.content.data
        prod_obj.desc = form.desc.data
        prod_obj.types = form.types.data
        prod_obj.price = form.price.data
        prod_obj.origin_price = form.origin_price.data
        prod_obj.img = 'xxx.jpg'
        prod_obj.channel = form.channel.data
        prod_obj.buy_link = form.buy_link.data
        prod_obj.status = form.status.data
        prod_obj.sku_count = form.sku_count.data
        prod_obj.remain_count = form.remain_count.data
        prod_obj.view_count = form.view_count.data
        prod_obj.score = form.score.data
        prod_obj.is_valid = form.is_valid.data
        prod_obj.reorder = form.reorder.data
        db.session.add(prod_obj)
        db.session.commit()
        flash('修改商品成功', 'success')
        return redirect(url_for('mall.product_list', page=1))
    else:
        print(form.errors)
        flash('请修改页面中的页面错误', 'warning')
    return render_template('product_edit.html', form=form, uid=uid)
Exemplo n.º 5
0
def product_add():
    '''商品添加'''
    form = ProductEditForm()
    # 判断表单是否验证通过
    if form.validate_on_submit():
        # 保存到数据库
        data = form.data
        for item, value in data.items():
            print(item, ":", value)
        product_obj = Product(
            # 商品名称
            name=data['name'],
            # 商品描述(富文本)
            content=data['content'],
            # 商品推荐语
            desc=data['desc'],
            # 类型
            types=data['types'],
            # 价格
            price=data['price'],
            # 原价
            origin_price=data['origin_price'],
            # 主图
            img='/xxx.jpg',
            # 渠道
            channel=data['channel'],
            # 链接
            buy_link=data['buy_link'],
            # 商品状态
            status=data['status'],
            # 库存
            sku_count=data['sku_count'],
            # 剩余库存
            remain_count=data['remain_count'],
            # 浏览
            view_count=data['view_count'],
            # 评分
            score=data['score'],

            # 逻辑删除
            is_valid=data['is_valid'],
            # 排序
            reorder=data['reorder'],
        )
        db.session.add(product_obj)
        db.session.commit()
        flash("新增商品成功", 'success')
        #成功跳转到商品列表里去
        return redirect(url_for('mall.product_list', page=1))

    else:
        # 消息提示
        flash("请修改页面中的错误,然后提交", 'warning')
        print(form.errors)

    return render_template('product_add.html', form=form)
Exemplo n.º 6
0
def product_edit(uid):
    '''商品编辑'''
    #查询商品
    prod_obj = Product.query.filter_by(uid=uid, is_valid=False).first()
    if prod_obj is None:
        abort(404)
    form = ProductEditForm(obj=prod_obj)
    # 修改商品内容
    if form.validate_on_submit():
        # 保存到数据库
        prod_obj.name = form.name.data
        prod_obj.content = form.data['content']
        db.session.add(prod_obj)
        db.session.commit()
        flash('修改成功', 'success')
        return redirect(url_for('mall.product_list', page=1))
    else:
        print(form.errors)
    return render_template('product_edit.html', form=form, prod_obj=prod_obj)
Exemplo n.º 7
0
def edit(product_id):
    """
    Route for product edit
    """
    # request Form data
    form = ProductEditForm(request.form)
    # Get categories collection from database
    categories = mongo.db.categories.find().sort("name", 1)
    # Get allergens collection from database
    allergens = mongo.db.allergens.find().sort("name", 1)
    # Get product from product_id
    product = mongo.db.products.find_one({"_id": (ObjectId(product_id))})
    product_name = form.name.data
    pchk = True
    if product_name.lower() != product["name"]:
        pchk = product_check(product_name)
    if request.method == "POST" and form.validate() and pchk:
        # Get product name from form
        # Get product manufacturer from form
        product_manufacturer = form.manufacturer.data
        # Get product category
        product_category = category_get_selection("edit")
        if product_category:
            # Get category id
            product_category_id = category_get_id(product_category)
            # Get selected allergens
            allergen_list = allergen_get_selected_checkboxes(allergens)
            # Check if any allergens are selected
            if allergen_list:
                proceed = True
            else:
                # Display flash message
                flash(("Please select allergens that the " +
                       "product is Free From. " +
                       "If you would like to add an Allergen, " +
                       "please contact the site Administrator"), "warning")
                proceed = False
        # Get allergen id's and add to list
        if proceed:
            allergen_id_list = allergen_get_id_list(allergen_list)
        # Get user name
        user_name = session["user"]
        # Get user id from user name
        user_id = mongo.db.users.find_one({"username": user_name})["_id"]
        # Placeholder for barcode, may be added in the future
        barcode = ""
        if proceed:
            # Set product update variable
            product_update = {
                "name": product_name,
                "manufacturer": product_manufacturer,
                "user_id": user_id,
                "category_id": product_category_id,
                "barcode": barcode,
                "free_from_allergens": allergen_id_list,
                "reviews": product["reviews"]
            }
            # Update product in database
            mongo.db.products.update({"_id": ObjectId(product_id)},
                                     product_update)
            # Display flash message
            flash(product_name + " succesfully updated", "success")
            return redirect(url_for('products.view', product_id=product_id))

    # Update product name in form
    form.name.data = product["name"]
    # Update product manufcaturer in form
    form.manufacturer.data = product["manufacturer"]
    # Get product category
    product_category = category_get_name(product["category_id"])
    # Get Selected allergens
    selected_allergens = product["free_from_allergens"]
    # Get user name
    user_name = session["user"]
    # Get user id from user name
    user_id = mongo.db.users.find_one({"username": user_name})["_id"]
    if product["user_id"] == user_id:
        user_product = True
    else:
        user_product = False
    print(product)
    return render_template("product_edit.html",
                           categories=categories.rewind(),
                           allergens=allergens.rewind(),
                           product_id=product_id,
                           product_category=product_category,
                           selected_allergens=selected_allergens,
                           user_product=user_product,
                           form=form)