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)
Example #3
0
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)
Example #4
0
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)
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
def _create_product_form(id):
    model = _get_product_or_abort(id)
    form = ProductForm(request.form, model)
    return form
Example #10
0
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)