def cliProductos(): if 'username' in session: formulario = ProductForm() if formulario.validate_on_submit(): producto = formulario.producto.data.upper() if len(producto) < 3: flash( 'Debe ingresar al menos 3 caracteres para realizar la búsqueda.' ) return render_template('cliProductos.html', form=formulario) else: listaProductos = buscarProductos(registrosventas, producto) if len(listaProductos) == 0: flash('No existen productos con la descripción ingresada.') elif len(listaProductos) == 1: listaClientes = listadoCliProductos( registrosventas, producto) return render_template( 'cliProductos.html', form=formulario, listaClientes=listaClientes, producto=formulario.producto.data.upper()) else: flash( 'Se encontró mas de un producto, por favor seleccione el que desea consultar.' ) return render_template('cliProductos.html', form=formulario, productos=listaProductos) return render_template('cliProductos.html', form=formulario) else: flash('Para poder acceder debe estar logueado.') return redirect(url_for('ingresar'))
def edit_product(id): product = Product.find_product(id) form = ProductForm() if form.validate_on_submit(): new_product = Product( id=product.id, title=form.title.data, content=form.content.data, price=form.price.data ) product.edit_product(new_product) flash(f'{form.title.data} has been updated!', 'success') return redirect(url_for('view_product', id=product.id)) elif request.method == "GET": form.title.data = product.title form.content.data = product.content form.price.data = product.price return render_template( "product/edit_product.html", title="Edit Product", form=form, legend="Edit product" )
def admin_products(): if not g.user: return redirect('/') else: products = Product.query.all() form = ProductForm() #add product to db if form.validate_on_submit(): product = Product.form_to_model(form) #converting images into bytes like object #prepare images to be stored product.prepare_to_store() db.session.add(product) db.session.commit() flash('Product added to database', 'success') return redirect(f'/{get_route()}/view-products') else: for product in products: if product.available: product.availabile = 'Available' else: product.availabile = 'Sold' for product in products: product.prepare_to_show() organized_products = Helper.organize_products(products) return render_template('view-products.html', form=form, rows=organized_products, route=get_route())
def admin(): form = LoginForm() prod = ProductForm() if prod.validate_on_submit(): new = Product(name=prod.name.data, stock=prod.stock.data, image=prod.image.data, price=prod.price.data) db.session.add(new) db.session.commit() flash('Product Added!') return redirect(url_for('store')) return render_template('admin.html', prod=prod, form=form)
def new_product(): form = ProductForm() if session['whois'] == '2': if form.validate_on_submit(): material = dict(MATERIAL_CHOICES)[form.material.data] if form.photo.data: picture_file = save_picture(form.photo.data) mycursor.execute( 'SELECT * FROM product WHERE store_id = %s AND product_name = %s', ( session['id'], form.name.data, )) exist_product = mycursor.fetchone() if exist_product: flash("There already exists this product in your store!", 'warning') return redirect(url_for('new_product')) else: if form.photo.data: now = datetime.datetime.utcnow() mycursor.execute( 'INSERT INTO product(store_id, product_name, material_type, price, color, changing_date, photo) VALUES (%s, %s, %s, %s, %s, %s, %s)', ( session['id'], form.name.data, material, form.price.data, form.color.data, now.strftime('%Y-%m-%d %H:%M:%S'), picture_file, )) mydb.commit() else: now = datetime.datetime.utcnow() mycursor.execute( 'INSERT INTO product(store_id, product_name, material_type, price, color, changing_date) VALUES (%s, %s, %s, %s, %s, %s)', ( session['id'], form.name.data, material, form.price.data, form.color.data, now.strftime('%Y-%m-%d %H:%M:%S'), )) mydb.commit() flash("New product added!", 'success') return redirect(url_for('home')) return render_template('new_product.html', title='New Product', form=form, legend='Add Product') else: flash("Firstly, you need to create a virtual store!", 'warning') return redirect(url_for('home'))
def editProduct(prod_id): prodForm = ProductForm() prod = Product.query.get(prod_id) if prodForm.validate_on_submit(): prod.name = prodForm.name.data prod.category = prodForm.category.data prod.note = prodForm.note.data prod.size = prodForm.size.data prod.unit = prodForm.unit.data db.session.commit() return redirect(url_for('shopapp.shop_main'))
def editProduct(prod_id): prodForm = ProductForm() prod = Product.query.get(prod_id) if prodForm.validate_on_submit(): prod.name=prodForm.name.data prod.category = prodForm.category.data prod.note=prodForm.note.data prod.size = prodForm.size.data prod.unit=prodForm.unit.data db.session.commit() return redirect(url_for('shopapp.shop_main'))
def edit_product(id): """Return page showing all the products has to offer""" check_admin() add_product = False product = Product.query.get_or_404(id) form = ProductForm(obj=product) if form.validate_on_submit(): filename = secure_filename(form.upload.data.filename) src = UPLOADPATH + filename form.upload.data.save(src) filemd5 = hashlib.md5() with open(UPLOADPATH + filename, 'rb') as f: for chunk in iter(lambda: f.read(4096), b""): filemd5.update(chunk) if form.available.data: in_stock = True else: in_stock = False dst = P_IMAGEPATH + filemd5.hexdigest() + '.' + filename.split('.')[1] if Product.query.filter_by(imgurl=filemd5.hexdigest() + '.' + filename.split('.')[1]).first() == None: product = Product.query.filter_by(id=id).first() product.common_name = form.common_name.data product.price = form.price.data orgfilename = P_IMAGEPATH + product.imgurl product.imgurl = filemd5.hexdigest() + '.' + filename.split('.')[1] product.color = form.color.data product.size = form.size.data product.available = in_stock product.catalog_id = Catalog.query.filter_by( catalog_name=str(form.catalog_id.data)).first().id db.session.commit() flash('Update product successfull.') copyfile(src, dst) os.remove(src) os.remove(orgfilename) else: os.remove(src) flash('Upload image file was in used.') #os.remove(os.getcwd() + '\\static\\product\\images\\'+orgfilename) # redirect to the departments page return redirect(url_for('admin.products', page=1)) # pre setting value form.catalog_id.data = product.product_type catalogs = Catalog.get_all() return render_template('admin/product.html', action="Edit", add_product=add_product, form=form, product=product, catalogs=catalogs, title="Edit Product")
def new_product(): form = ProductForm() if form.validate_on_submit(): products_collection.insert_one({'title': form.title.data, 'author': form.author.data, 'editor': form.editor.data, 'year_published': form.year_published.data, 'price': form.price.data , 'quantity': form.quantity.data, 'summary': form.summary.data}) flash('Product created!', 'success') app.logger.info('Product Created Sucessfully') return redirect(url_for('home')) else: app.logger.info('PRODUCT NOT CREATED, ERROR') return render_template('create_product.html', title='New Product', form=form, legend="Update Product")
def newProduct(): prodForm = ProductForm() name = prodForm.name.data if prodForm.validate_on_submit(): if Product.query.filter_by(name=name).first(): flash('Product with this name already exists!', 'alert-danger') else: prod = Product(name=name, category = prodForm.category.data, note=prodForm.note.data, size = prodForm.size.data, unit=prodForm.unit.data) db.session.add(prod) db.session.commit() return redirect(redirect_url()) return redirect(url_for('shopapp.shop_main'))
def add_product(): """Return page showing all the products has to offer""" check_admin() add_product = True form = ProductForm() if form.validate_on_submit(): filename = secure_filename(form.upload.data.filename) src = UPLOADPATH + filename form.upload.data.save(src) filemd5 = hashlib.md5() with open(UPLOADPATH + filename, 'rb') as f: for chunk in iter(lambda: f.read(4096), b""): filemd5.update(chunk) if form.available.data: in_stock = True else: in_stock = False dst = P_IMAGEPATH + filemd5.hexdigest() + '.' + filename.split('.')[1] if Product.query.filter_by(imgurl=filemd5.hexdigest() + '.' + filename.split('.')[1]).first() == None: copyfile(src, dst) os.remove(src) product = Product( common_name=form.common_name.data, price=form.price.data, imgurl=filemd5.hexdigest() + '.' + filename.split('.')[1], color=form.color.data, size=form.size.data, available=in_stock, catalog_id=Catalog.query.filter_by( catalog_name=str(form.catalog_id.data)).first().id) db.session.add(product) db.session.commit() flash('Add product successfull.') else: os.remove(src) flash('Upload image file was in used.') # redirect to the departments page return redirect(url_for('admin.products', page=1)) # form.common_name.data = product.common_name # form.price.data = product.price catalogs = Catalog.get_all() products = Product.get_all() return render_template('admin/product.html', action="Add", add_product=add_product, form=form, products=products, title="Edit Product", catalogs=catalogs)
def update_product(product_title): product = products_collection.find_one({"title": product_title}) form = ProductForm() if form.validate_on_submit(): products_collection.update( products_collection.find_one({"title": product_title}), {'title': form.title.data, 'author': form.author.data, 'editor': form.editor.data, 'year_published': form.year_published.data, 'price': form.price.data , 'quantity': form.quantity.data, 'summary': form.summary.data}) flash('Product updated!', 'success') app.logger.info('Product Updated Sucessfully') return redirect(url_for('home')) else: app.logger.info('PRODUCT NOT UPDATED, ERROR') return render_template('create_product.html', title='Update', form=form, legend="Update Product")
def add_new_product(): form = ProductForm() if form.validate_on_submit(): new_product = Product(title=form.title.data, description=form.description.data, price=form.price.data, img_url=form.img_url.data) db.session.add(new_product) db.session.commit() return redirect(url_for('index')) return render_template('new-product.html', current_user=current_user, form=form)
def add_product(): form = ProductForm() db_sess = db_session.create_session() res = db_sess.query(Category.Id, Category.Name).all() form.category.choices = [category[1] for category in res] if form.validate_on_submit(): data.add_product(form.name.data, form.description.data, form.price.data, form.count.data, form.image, form, res) return redirect("/add_product") return render_template('add_product.html', title='Добавление товара', form=form)
def addproduct(): form = ProductForm() if form.validate_on_submit() or request.method == 'POST': product = Product(productName=form.productName.data) try: db.session.add(product) db.session.commit() flash('Product has been added.', 'success') return redirect(url_for("products")) except: flash('Database Error.', 'danger') return redirect(url_for("products")) return render_template('addproduct.html', title="Products", form=form, legend='Add New product')
def products_list(): form = ProductForm() items = warehouse.show_stock() if request.method == 'POST': if form.validate_on_submit(): form.data.pop('csrf_token') warehouse.add_item(form.data) return redirect(url_for("products_list")) else: error = form.errors for field, problem in error.items(): flash(f"{field}: {problem[0]}", 'danger') return render_template("product_list.html", headings=headings, items=items, form=form)
def updateproduct(productId): product = Product.query.get_or_404(productId) form = ProductForm() if form.validate_on_submit() or request.method == 'POST': product.productName = form.productName.data try: db.session.commit() flash('Product Name has been updated.', 'success') return redirect(url_for("products")) except: flash('Database Error.', 'danger') return redirect(url_for("products")) form.productName.data = product.productName return render_template('addproduct.html', form=form, legend='Update Product')
def newProduct(): prodForm = ProductForm() name = prodForm.name.data if prodForm.validate_on_submit(): if Product.query.filter_by(name=name).first(): flash('Product with this name already exists!', 'alert-danger') else: prod = Product(name=name, category=prodForm.category.data, note=prodForm.note.data, size=prodForm.size.data, unit=prodForm.unit.data) db.session.add(prod) db.session.commit() return redirect(redirect_url()) return redirect(url_for('shopapp.shop_main'))
def product_list(): form = ProductForm() error = "" if request.method == "POST": if form.validate_on_submit(): # jeśli klucz istnieje ilość i cena się nadpiszą ITEMS[form.data['name']] = Product(form.data['name'], form.data['unit'], form.data['unit_price'], form.data['quantity']) else: error = form.errors return redirect(url_for("product_list")) return render_template("product_list.html", items=ITEMS, form=form, error=error)
def update_product(product_id): form = ProductForm() mycursor.execute( 'SELECT * FROM product WHERE product_id = {}'.format(product_id)) product = mycursor.fetchone() mycursor.execute('SELECT * FROM store WHERE id = {}'.format( product['store_id'])) store = mycursor.fetchone() if store['id'] != session['id']: abort(403) if form.validate_on_submit(): new_name = form.name.data new_material = dict(MATERIAL_CHOICES)[form.material.data] new_color = form.color.data new_price = form.price.data if form.photo.data: new_photo = save_picture(form.photo.data) mycursor.execute( 'UPDATE product SET photo = %s WHERE product_id = %s', ( new_photo, product_id, )) now = datetime.datetime.utcnow() mycursor.execute( 'UPDATE product SET product_name = %s, material_type = %s, color = %s, price = %s, changing_date = %s WHERE product_id = %s', ( new_name, new_material, new_color, new_price, now.strftime('%Y-%m-%d %H:%M:%S'), product_id, )) mydb.commit() flash("Product Updated!", 'success') return redirect(url_for('single_product', product_id=product_id)) if request.method == 'GET': form.name.data = product['product_name'] form.material.data = product['material_type'] form.color.data = product['color'] form.price.data = product['price'] return render_template('new_product.html', title='Update Product', form=form, legend='Update Product')
def home(): form = ProductForm() if form.validate_on_submit(): if so.add_product(form.name.data, form.count.data, form.min_price.data, form.max_price.data, form.min_rating.data, form.nrates.data): flash('Produkt dodany pomyślnie!', 'success') else: flash('Nie możesz dodać więcej niż 5 produktów', 'danger') return redirect(url_for('home')) form.count.data = DEFAULT_COUNT form.min_price.data = DEFAULT_MIN_PRICE form.max_price.data = DEFAULT_MAX_PRICE form.min_rating.data = DEFAULT_RATING form.nrates.data = DEFAULT_MIN_NRATES return render_template('home.html', form=form, products=so.in_products)
def create_product(): form = ProductForm() if form.validate_on_submit(): product = Product( id=None, title=form.title.data, content=form.content.data, price=form.price.data ) product.add_product(User.get_id_by_email(session['email'])) flash(f'{form.title.data} has been created!', 'success') return redirect(url_for('index')) return render_template( "product/edit_product.html", title="Create Product", form=form, legend="Add new product" )
def formBusquedaProducto(): form = ProductForm() saleData = funciones.salesData() if form.validate_on_submit(): data = form.product.data product = data.title() productList = funciones.consultedDataProduct(product, saleData) return render_template('consultas/clientes-por-producto-form.html', form=form, searchProd=product, lista=productList) if len(productList) == 0: productList = None else: return redirect(url_for('tableClientPerProduct', product=product)) return render_template('consultas/clientes-por-producto-form.html', form=form)