コード例 #1
0
def update_product(product_slug):
    """Saves changes to an existing product."""
    product = Product.by_slug(product_slug)
    form = ProductForm(request.form, product)

    if not form.validate():
        return render_template(
            'admin/edit-product.html', form=form, product=product)

    product = Product.from_form(form, product=product)

    flash(message='Product updated', category='success')

    url = url_for('frontend.product', category_slug=product.category.slug,
                  product_slug=product.slug)
    return redirect(url)
コード例 #2
0
def edit_product(product_slug):
    """Presents the form to edit products."""
    product = Product.by_slug(product_slug)
    form = ProductForm(request.form, product)

    return render_template(
        'admin/edit-product.html', form=form, product=product)
コード例 #3
0
def delete_product(product_slug):
    """Deletes a product."""
    product = Product.by_slug(product_slug)
    if request.method == 'POST':
        db.session.delete(product)
        db.session.commit()
        flash('Deleted “%s”' % product.name)
        return redirect('/')
    return render_template('admin/delete.html', product=product)
コード例 #4
0
def store_product():
    """Persists a new product entry in the database."""
    form = ProductForm(request.form)

    if not form.validate():
        return render_template('admin/edit-product.html', form=form)

    prod = Product.from_form(form)

    flash(message='Product created', category='success')

    url = url_for('frontend.product',
                  category_slug=prod.category.slug,
                  product_slug=prod.slug)
    return redirect(url)
コード例 #5
0
def product(category_slug, product_slug):
    """Shows a single product."""
    prod = Product.by_slug_and_cat(category_slug, product_slug)
    return render_template('frontend/product.html', product=prod)