def show(product_id): schema = ProductSchema() product = Product.get(id=product_id) if not product: abort(400) return schema.dumps(product)
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
def delete(product_id): product = Product.get(id=product_id) if not product: abort(404) product.delete() db.commit() return '', 204
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
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)