Ejemplo n.º 1
0
def show(product_id):

    schema = ProductSchema()
    product = Product.get(id=product_id)
    if not product:
        abort(400)
    return schema.dumps(product)
Ejemplo n.º 2
0
def edit(id):
    title = 'Editar Produto'
    product = Product()
    ret = product.get(id)
    if not product.id:
        flash(ret, 'info')
        return redirect(url_for('product.index'))
    
    image = b64encode(product.imagem).decode("utf-8")
    if request.form:
        form = ProductForm()
        product.descricao = form.descricao.data
        product.valor = form.valor.data
        if form.imagem_edicao.data.filename != '':
            image_edit = request.files.get('imagem_edicao')
            product.imagem = image_edit.read()
        else:
            image_edit = product.imagem
    else:
        form = ProductForm()
        form.descricao.data = product.descricao
        form.valor.data = product.valor

    form.imagem.validators = []
    if form.validate_on_submit():
        ret = product.update()
        flash(ret, 'info')
        return redirect(url_for('product.edit', id=product.id))
    return render_template('product_form.html', form=form, title=title, mode='edit', image=image, productId=product.id), 200
Ejemplo n.º 3
0
def delete(product_id):

    product = Product.get(id=product_id)

    if not product:
        abort(404)

    product.delete()
    db.commit()

    return '', 204
Ejemplo n.º 4
0
def delete(id):
    product = Product()
    ret = product.get(id)
    if not product.id:
        flash(ret, 'info')
        return redirect(url_for('product.index'))

    order = OrderProduct()
    has = order.hasByProduct(id)
    if has:
        flash('O produto não pode ser deletado pois ele já está relacionado à algum pedido.', 'info')
        return redirect(url_for('product.index'))

    if request.method == 'POST':
        ret = product.delete()
        flash(ret, 'info')
        return redirect(url_for('product.index'))
    title = 'Deseja realmente deletar o produto ' + str(product.id) + '?'
    return render_template('product_delete.html', productId=id, title=title), 200
Ejemplo n.º 5
0
def update(product_id):

    schema = ProductSchema()

    product = Product.get(id=product_id)

    if not product:
        abort(400)

    try:
        data = schema.load(request.get_json())
        product.set(**data)
        db.commit()
    except ValidationError as err:
        return jsonify({
            'message': 'Validation failed',
            'errors': err.messages
        }), 422

    return schema.dumps(product)