def edit_product(id): product = Product.query.get_or_404(id) form = ProductForm(request.form) form.catid.choices = [(s.id, s.subcategories) for s in db.session.query(SubCategories).all()] form.pdbid.choices = [(p.id, p.productbrand) for p in db.session.query(ProductBrand).all()] if form.validate_on_submit(): product.product = form.product.data product.volumn = form.volumn.data product.price = form.price.data product.pricedown = form.pricedown.data product.details = form.details.data product.origin = form.origin.data product.productimage = form.url.data product.categories_id = form.catid.data product.productbrand_id = form.pdbid.data db.session.commit() flash(_('Your changes have been saved.')) return redirect(url_for('main.index')) elif request.method == 'GET': form.product.data = product.product form.volumn.data = product.volumn form.price.data = product.price form.pricedown.data = product.pricedown form.details.data = product.details form.origin.data = product.origin form.url.data = product.productimage form.catid.data = product.categories_id form.pdbid.data = product.productbrand_id return render_template('product/edit_product.html', title=_('Edit Product Brand'), form=form, product=product)
def create_product(): form = ProductForm() form.catid.choices = [(c.id, c.subcategories) for c in db.session.query(SubCategories).all()] form.pdbid.choices = [(p.id, p.productbrand) for p in db.session.query(ProductBrand).all()] if form.validate_on_submit(): product = Product(product=form.product.data, volumn=form.volumn.data, price=form.price.data, pricedown=form.pricedown.data, details=form.details.data, origin=form.origin.data, productimage=form.url.data, categories_id=form.catid.data, productbrand_id=form.pdbid.data) db.session.add(product) db.session.commit() flash(_('New Product added')) return redirect(url_for('product.create_product')) products = Product.query.order_by(Product.id) return render_template('product/create_product.html', title=_('Create Product'), form=form, products=products)
def product_perform_update(id=None): model = _get_product_or_abort(id) form = ProductForm(request.form, model) if validate_and_populate_form_model(form, model): db.session().commit() return _render_product_form(form)
def product_browser(): form = ProductForm(request.form) products = Product.query.order_by( Product.id.desc()).paginate(max_per_page=5) return render_template("product/product-browser.html", form=form, products=products)
def show_product(id): form = ProductForm() form.catid.choices = [(c.id, c.subcategories) for c in db.session.query(SubCategories).all()] form.pdbid.choices = [(p.id, p.productbrand) for p in db.session.query(ProductBrand).all()] if form.validate_on_submit(): add_product = Product(product=form.product.data, volumn=form.volumn.data, price=form.price.data, details=form.details.data, origin=form.origin.data, productimage=form.url.data, categories_id=form.catid.data, productbrand_id=form.pdbid.data, pricedown=form.pricedown.data) db.session.add(add_product) db.session.commit() flash(_('New Product added')) return redirect(url_for('main.index')) page = request.args.get('page', 1, type=int) showproduct = SubCategories.query.get_or_404(id) breadcrumb = SubCategories.query.filter_by(id=showproduct.id) products = Product.query.filter_by(categories_id=showproduct.id).paginate( page, current_app.config['PRODUCT_PER_PAGE'], False) categoriess = Categories.query.order_by(Categories.categories) subcats = SubCategories.query.order_by(SubCategories.subcategories) promotions = Promotion.query.order_by(Promotion.id) next_url = url_for('product.show_product', id=showproduct.id, page=products.next_num) \ if products.has_next else None prev_url = url_for('product.show_product', id=showproduct.id, page=products.prev_num) \ if products.has_prev else None return render_template('product/show_product.html', title=_('Categories'), form=form, products=products.items, categoriess=categoriess, subcats=subcats, breadcrumb=breadcrumb, promotions=promotions, page=page, next_url=next_url, prev_url=prev_url)
def add(): form = ProductForm() for field in form.item_quantity: field.item_id.choices = [ (i.id, i.name) for i in Inventory.query.filter_by( company_id=current_user.id).order_by('name') ] if form.validate_on_submit(): product = Product(name=form.name.data, company_id=current_user.id, stock=form.stock.data) for item in form.item_quantity.data: qpi = QuantityPerItem(inventory_id=item['item_id'], quantity=item['quantity']) db.session.add(qpi) product.items.append(qpi) db.session.add(product) db.session.commit() return redirect(url_for('pro.home')) return render_template('proAdd.html', form=form)
def product_perform_add(): model = Product() form = ProductForm(request.form, model) if validate_and_populate_form_model(form, model): db.session().add(model) db.session().commit() return redirect(url_for("product_browser")) return _render_product_form(form)
def edit(id): form = ProductForm() product = Product.query.get(id) for field in form.item_quantity: field.item_id.choices = [ (i.id, i.name) for i in Inventory.query.filter_by( company_id=current_user.id).order_by('name') ] if form.validate_on_submit(): return form.data form.name.data, form.stock.data = product.name, product.stock x = lambda id: (id, Inventory.query.get(id).name) #form.item_quantity.item_id.data = [i.inventory_id for i in product.items] #form.item_quantity.append_entry = [{'item_id': i.inventory_id, 'quantity': i.quantity} for i in product.items] ''' data = [] for item in product.items: #data = [({'item_id': [item.inventory_id], 'quantity': [item.quantity]})] group = namedtuple('Group', ['item_id', 'quantity']) g = group(item.inventory_id, item.quantity) data += g print(data) #form.item_quantity(data = [{'item_id': item.inventory_id, 'quantity': item.quantity}]) print(type(form.item_quantity)) print(form.item_quantity.entries[0].item_id.data) form.item_quantity(data=data) ''' for item in product.items: iq = ItemQuantityForm() print(type(iq)) iq.item_id.data = item.inventory_id print(type(iq.item_id)) iq.quantity.data = item.quantity print(type(iq.quantity)) iq.item_id.choices = [(i.id, i.name) for i in Inventory.query.filter_by( company_id=current_user.id).order_by('name')] form.item_quantity.append_entry(iq) return render_template('proedit.html', form=form)
def _create_product_form(id): model = _get_product_or_abort(id) form = ProductForm(request.form, model) return form
def index(): form1 = BannerForm() form2 = PromotionForm() form3 = FeatureForm() productform = ProductForm() productform.catid.choices = [ (c.id, c.subcategories) for c in db.session.query(SubCategories).all() ] productform.pdbid.choices = [(p.id, p.productbrand) for p in db.session.query(ProductBrand).all()] if productform.validate_on_submit(): product = Product(product=productform.product.data, volumn=productform.volumn.data, price=productform.price.data, details=productform.details.data, origin=productform.origin.data, productimage=productform.url.data, categories_id=productform.catid.data, productbrand_id=productform.pdbid.data, pricedown=productform.pricedown.data) db.session.add(product) db.session.commit() flash(_('New Product added')) return redirect(url_for('main.index')) elif form3.validate_on_submit(): feature = Feature(title=form3.title.data, description=form3.description.data, url=form3.url.data) db.session.add(feature) db.session.commit() flash(_('New Promotion added')) return redirect(url_for('main.index')) elif form2.validate_on_submit(): promotion = Promotion(name=form2.name.data, url=form2.url.data) db.session.add(promotion) db.session.commit() flash(_('New Promotion added')) return redirect(url_for('main.index')) elif form1.validate_on_submit(): banneritem = Banner(banner=form1.banner.data) db.session.add(banneritem) db.session.commit() flash(_('New Banner added')) return redirect(url_for('main.index')) banners = Banner.query.order_by(Banner.id) categoriess = Categories.query.order_by(Categories.categories) subcats = SubCategories.query.order_by(SubCategories.subcategories) promotions = Promotion.query.order_by(Promotion.id) features = Feature.query.all() page = request.args.get('page', 1, type=int) pdbrands = ProductBrand.query.order_by(func.random()).paginate( page, current_app.config['PRODUCTBRAND_PER_PAGE'], False) newproducts = Product.query.order_by(Product.id.desc()).paginate( page, current_app.config['NEWPRODUCT_PER_PAGE'], False) reviews = Review.query.all() return render_template('index.html', title=_('Home'), form1=form1, form2=form2, form3=form3, banners=banners, categoriess=categoriess, subcats=subcats, newproducts=newproducts.items, promotions=promotions, features=features, pdbrands=pdbrands.items, page=page, productform=productform, reviews=reviews)