Exemple #1
0
 def test_simple_product(self):
     parent_tag = Tag(name='Alimentation', parent=None)
     parent_tag.save()
     son_tag = Tag(name='Potatoes', parent=parent_tag)
     son_tag.save()
     User = get_user_model()
     user = User.objects.create_user(
         username="******",
         email="*****@*****.**",
         password='******',
         tin='12345X',
         fiscal_address='St. Nothing',
         phone='123456789',
         lat=1.41,
         lon=1.51,
         description='Some weird description',
         country='ES',
     )
     product = Product(
         creator=user,
         tag=son_tag,
         name='Patata Manhattan',
         description='45kg bag of potatoes',
     )
     product.save()
     self.assertEquals(user, product.creator)
     self.assertEquals(son_tag, product.tag)
     self.assertEquals(parent_tag, product.tag.parent)
     self.assertEquals('Patata Manhattan', product.name)
     self.assertEquals('45kg bag of potatoes', product.description)
Exemple #2
0
def products_count_json():
    is_available = param('available', bool)
    if is_available is not None and is_available:
        return jsonify_success(
            Product.query(Product.is_available == True).count())
    if is_available is not None and not is_available:
        return jsonify_success(
            Product.query(Product.is_available != True).count())
    return jsonify_success(Product.query().count())
Exemple #3
0
def get_to_sync():
    id_1c = param('id_1c')
    if id_1c is not None:
        products = Product.query(Product.to_sync == True).fetch(
            projection=[Product.id_1c])
        return jsonify_success([key.id_1c for key in products])

    products = Product.query(Product.to_sync == True).fetch(keys_only=True)
    return jsonify_success([key.id() for key in products])
Exemple #4
0
def product_new():
    if request.method == "POST":
        flag, model = load_data()
        if not flag:
            return model
        id_1c = model.get("id_1c")
        if not id_1c:
            return jsonify({"success": False, "msg": "id_1c field not found."})
        is_exist = Product.query(Product.id_1c == id_1c).count()
        if is_exist:
            return jsonify({"success": False, "msg": "Product with id_1c: %s is exist" % id_1c})
        product = Product()
        if model_populate(model, product):
            product.put()
    return jsonify({"success": True})
Exemple #5
0
def index():
    available_product = Product.query(Product.is_available == True,
                                      Product.id_1c != '').get()
    available_category = Category.query().get()
    return render_template('api/v2/index.html',
                           available_product=available_product,
                           available_category=available_category)
Exemple #6
0
def get_product(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({"success": False, "msg": "Product with id:%s not found." % key_id})

    if request.method == "DELETE":

        @check_write_permission
        def delete_product():
            product.key.delete()
            return jsonify({"success": True, "msg": "Product id:%s deleted" % key_id})

        return delete_product()

    if request.method == "PUT":

        @check_write_permission
        def put_product():
            flag, model = load_data()
            if not flag:
                return model
            if model_populate(model, product) or param("force_save"):
                product.put()
                return jsonify({"success": True, "msg": "Product has been updated."})
            else:
                return jsonify({"success": False, "msg": "Product has not been updated."})

        return put_product()
    return jsonify_model_db(product)
Exemple #7
0
    def handle(self, *args, **options):

        self.clean()

        categories = loadFromJSON('categories')
        for category in categories:
            new_category = Category(**category)
            new_category.save()

        products = loadFromJSON('products')

        for product in products:
            product['category'] = Category.objects.get(
                name=product["category"])
            new_product = Product(**product)
            new_product.save()
Exemple #8
0
def product_upload_image(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({"success": False, "msg": "Product id:%s not found" % key_id})

    upload_files = get_uploads(request, "image")
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size and ProductImage.is_image_type(blob_info.content_type):
            img = ProductImage.create(
                blob_info.key(),
                size=blob_info.size,
                filename=os.path.basename(blob_info.filename.replace("\\", "/")),
                content_type=blob_info.content_type,
            )
            if not len(product.images_list):
                img.is_master = True
            if img.get_cached_url():
                product.images_list.append(img)
                product.put()
        else:
            file_size = blob_info.size
            content_type = blob_info.content_type
            blob_info.delete()
            return jsonify(
                {"success": False, "msg": "Unknown error. File size: %s. File type: %s" % (file_size, content_type)}
            )
    else:
        return jsonify({"success": False, "msg": "Upload image not found."})
    return jsonify({"success": True, "msg": "Upload image complete."})
Exemple #9
0
def edit(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect(url_for('admin.config_update'))
    if request.method == 'POST' and 'delete_product' in request.form:
        category = None
        if product.category:
            category = Category.exist(product.category)
        product.key.delete()
        if category:
            return redirect(url_for('pages.category', key_id=category.key.id()))
        else:
            return redirect('pages.catalogue')
    form = ProductForm(obj=product)
    if form.validate_on_submit():
        form.populate_obj(product)
        product.put()
        if 'edit_images' in request.form:
            return redirect(url_for('admin.product.edit_images', key_id=key_id))
        return redirect(url_for('product.get_product', key_id=key_id))
    return render_template(
        'product/admin/edit.html',
        product=product,
        form=form
    )
Exemple #10
0
def edit(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect(url_for('admin.config_update'))
    if request.method == 'POST' and 'delete_product' in request.form:
        category = None
        if product.category:
            category = Category.exist(product.category)
        product.key.delete()
        if category:
            return redirect(url_for('pages.category',
                                    key_id=category.key.id()))
        else:
            return redirect('pages.catalogue')
    form = ProductForm(obj=product)
    if form.validate_on_submit():
        form.populate_obj(product)
        product.put()
        if 'edit_images' in request.form:
            return redirect(url_for('admin.product.edit_images',
                                    key_id=key_id))
        return redirect(url_for('product.get_product', key_id=key_id))
    return render_template('product/admin/edit.html',
                           product=product,
                           form=form)
def add(request):
	product = Product()
	product.name = request.POST.get('name')
	product.manufacturer = request.POST.get('manufacturer')
	product.price = request.POST.get('price')
	product.description = request.POST.get('description')
	product.created_at = timezone.now()
	product.save()
	return redirect('/')
Exemple #12
0
def last_incoming(page):
    products = Product.query().order(-Product.created)
    products = get_paginator(products, page)
    return flask.render_template(
        'pages/last_incoming.html',
        title=u'Последние поступления',
        products=products
    )
Exemple #13
0
def products_json():
    is_available = param('available', bool)
    if is_available is not None:
        if is_available:
            products_q = Product.query(Product.is_available == True)
        else:
            products_q = Product.query(Product.is_available != True)
    else:
        products_q = Product.query()

    is_1c = param('id_1c')
    if is_1c is not None:
        return jsonify_success([
            key.id_1c for key in products_q.fetch(projection=[Product.id_1c])
        ])
    return jsonify_success(
        [key.id() for key in products_q.fetch(keys_only=True)])
Exemple #14
0
def product_stat():
    product_count = Product.query().count()
    if product_count:
        product_count = pytils.numeral.get_plural(
            product_count,
            (u"позиции", u"позиций", u"позиций")
        )
    return product_count
Exemple #15
0
def new_product(request):
    if request.is_ajax():
        data = request.POST['data']
        data = json.loads(data)
        data.pop("id", None)
        data['status'] = True
        try:
            product = Product(**data)
            product.validate_unique()
            product.save()
            context = {
                'results': product.as_json(),
                'totalProperty': 0,
                'success': True
            }
        except ValidationError as e:
            non_field_errors = e.messages
            context = {
                'msg': non_field_errors,
                'results': [],
                'totalProperty': 0,
                'success': False
            }

        context = json.dumps(context)
        return HttpResponse(context, content_type='application/json')
    return Http404
Exemple #16
0
 def get_object(self):
     if self.request.method == 'PUT':
         resource = Product.objects.filter(id=self.kwargs.get('pk')).first()
         if resource:
             return resource
         else:
             return Product(id=self.kwargs.get('pk'))
     else:
         return super(PutProductAPIView, self).get_object()
Exemple #17
0
def catalogue(page):
    products = Product.query() \
        .order(-Product.rating) \
        .order(-Product.leftovers_on_way) \
        .order(-Product.leftovers)
    products = get_paginator(products, page)
    return flask.render_template('pages/catalogue.html',
                                 title=u'Каталог товаров',
                                 products=products)
Exemple #18
0
def product_new():
    if request.method == 'POST':
        flag, model = load_data()
        if not flag:
            return model
        id_1c = model.get('id_1c')
        if not id_1c:
            return jsonify({'success': False, 'msg': 'id_1c field not found.'})
        is_exist = Product.query(Product.id_1c == id_1c).count()
        if is_exist:
            return jsonify({
                'success': False,
                'msg': 'Product with id_1c: %s is exist' % id_1c
            })
        product = Product()
        if model_populate(model, product):
            product.put()
    return jsonify({'success': True})
Exemple #19
0
def delete_image(key_id, img_uid):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect(url_for('admin.product.edit', key_id=key_id))
    for i, img in enumerate(product.images_list):
        if img.uid == img_uid:
            img.delete_blob()
            del product.images_list[i]
            product.put()
            break
    return redirect(url_for('admin.product.edit_images', key_id=key_id))
Exemple #20
0
def catalogue(page):
    products = Product.query() \
        .order(-Product.rating) \
        .order(-Product.leftovers_on_way) \
        .order(-Product.leftovers)
    products = get_paginator(products, page)
    return flask.render_template(
        'pages/catalogue.html',
        title=u'Каталог товаров',
        products=products
    )
Exemple #21
0
def edit_images(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect('pages.catalogue')
    form = AddImageForm()
    add_img_url = blobstore.create_upload_url(
        url_for('admin.product.add_image', key_id=key_id))
    return render_template('product/admin/images_edit.html',
                           product=product,
                           form=form,
                           add_img_url=add_img_url)
Exemple #22
0
def delete_image(key_id, img_uid):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect(url_for('admin.product.edit', key_id=key_id))
    for i, img in enumerate(product.images_list):
        if img.uid == img_uid:
            img.delete_blob()
            del product.images_list[i]
            product.put()
            break
    return redirect(url_for('admin.product.edit_images', key_id=key_id))
Exemple #23
0
def products_dates_json():
    date1 = param("from_date")
    date2 = param('to_date')
    if date1 is None:
        ApiException('Invalid request: parameter "from_date" not found.')
    date1 = datetime.strptime(date1, '%Y-%m-%d')
    if date2 is None:
        date2 = datetime.now()
    else:
        date2 = datetime.strptime(date2, '%Y-%m-%d')
    ApiException(date2)
    is_new = param('only_new')
    if is_new is None:
        products_q = Product.query(
            Product.modified >= date1,
            Product.modified <= date2).fetch(keys_only=True)
    else:
        products_q = Product.query(
            Product.created >= date1,
            Product.created <= date2).fetch(keys_only=True)
    return jsonify_success([key.id() for key in products_q])
Exemple #24
0
def edit_images(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect('pages.catalogue')
    form = AddImageForm()
    add_img_url = blobstore.create_upload_url(url_for('admin.product.add_image', key_id=key_id))
    return render_template(
        'product/admin/images_edit.html',
        product=product,
        form=form,
        add_img_url=add_img_url
    )
Exemple #25
0
def update_product(key_id, mem_key):
    res, obj = get_mem_obj(mem_key)
    if not res:
        return obj
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({
            'success': False,
            'msg': 'Product id:%s not found' % key_id
        })
    model_populate(obj, product)
    product.put_async()
    return jsonify({'success': True, 'msg': 'Complete update of product'})
Exemple #26
0
def product_json():
    key_id = param('id')
    id_1c = param('id_1c')
    if not key_id and not id_1c:
        raise ApiException(
            'Invalid request: "id" or "id_1c" params not found.')
    if key_id is not None and id_1c is not None:
        raise ApiException('Invalid request: "id" and "id_1c" together.')

    product = None
    if key_id:
        product = Product.retrieve_by_id(key_id)
    if id_1c:
        product = Product.query(Product.id_1c == id_1c).get()
    if not product:
        if key_id:
            raise ApiException('Product with "%s" == %s not found' %
                               ('id', key_id),
                               status=404)
        raise ApiException('Product with "%s" == %s not found' %
                           ('id_1c', id_1c),
                           status=404)
    return jsonify_model_db(product)
Exemple #27
0
def sitemap_xml():
    products = memcache.get('sitemap_xml')
    if not products:
        products = Product.query().fetch(keys_only=True)
        memcache.add('sitemap_xml', products, SITEMAP_XML_TIMEOUT)
    categories = memcache.get('sitemap_xml_categories')
    if not categories:
        categories = Category.query().fetch(keys_only=True)
        memcache.add('sitemap_xml_categories', categories, SITEMAP_XML_TIMEOUT)
    response = flask.make_response(
        flask.render_template('pages/sitemap.xml',
                              products=products,
                              categories=categories))
    response.headers['Content-Type'] = 'text/xml; charset=utf-8'
    return response
Exemple #28
0
def update_product(key_id, mem_key):
    res, obj = get_mem_obj(mem_key)
    if not res:
        return obj
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({
            'success': False,
            'msg': 'Product id:%s not found' % key_id
        })
    model_populate(obj, product)
    product.put_async()
    return jsonify({
        'success': True,
        'msg': 'Complete update of product'
    })
Exemple #29
0
def get_product(key_id):
    product = Product.retrieve_by_id(key_id)
    back_url = get_next_url()
    if not product:
        return redirect(url_for('pages.index'))
    category = CategoryProduct.query(CategoryProduct.product_key == product.key).get()
    if category:
        category = category.section_key.get()
    return render_template(
        'product/get.html',
        html_class='product',
        title=product.strip_name,
        meta_keywords=product.meta_keywords or product.strip_name,
        product=product,
        category=category,
        back_url=back_url
    )
Exemple #30
0
def sitemap_xml():
    products = memcache.get('sitemap_xml')
    if not products:
        products = Product.query().fetch(keys_only=True)
        memcache.add('sitemap_xml', products, SITEMAP_XML_TIMEOUT)
    categories = memcache.get('sitemap_xml_categories')
    if not categories:
        categories = Category.query().fetch(keys_only=True)
        memcache.add('sitemap_xml_categories', categories, SITEMAP_XML_TIMEOUT)
    response = flask.make_response(
        flask.render_template(
            'pages/sitemap.xml',
            products=products,
            categories=categories)
    )
    response.headers['Content-Type'] = 'text/xml; charset=utf-8'
    return response
Exemple #31
0
def get_product(key_id):
    product = Product.retrieve_by_id(key_id)
    back_url = get_next_url()
    if not product:
        return redirect(url_for('pages.index'))
    category = CategoryProduct.query(
        CategoryProduct.product_key == product.key).get()
    if category:
        category = category.section_key.get()
    return render_template('product/get.html',
                           html_class='product',
                           title=product.strip_name,
                           meta_keywords=product.meta_keywords
                           or product.strip_name,
                           product=product,
                           category=category,
                           back_url=back_url)
Exemple #32
0
def cart_view():
    if request.method == 'POST' and 'order_delete' in request.form:
        clear_cart()
        return redirect(url_for('order.cart_view'))
    cart = session.get('cart', {})
    price = cart.get('price', 0)
    products_count = cart.get('products_count', 0)
    un_products_count = cart.get('un_products_count', 0)
    cart_products = cart.get('products', {})
    products = []
    for product_key in cart_products.keys():
        cart_product = cart_products.get(product_key, {})
        product = Product.retrieve_by_id(product_key)
        if product:
            product.order = cart_product.get('count', 0)
            product.order_price = cart_product.get('price', 0)
        products.append(product)
    if request.method == 'POST' and 'order_accept':
        order = Order(customer=current_user.user_db.key)
        price = 0
        for product in products:
            order_product = OrderProduct(
                name=product.name,
                img_url='%s=s100' % product.images[0] if product.images else '',
                product_key=product.key,
                count=product.order,
                price=product.order_price,
            )
            price += product.order_price
            order.products.append(order_product)
        order.price = price
        order.put()
        clear_cart()
        return render_template(
            'order/order_success.html',
            title=u'Предзаказ оформлен',
            order=order
        )
    return render_template(
        'order/cart.html',
        title=u'Оформление предзаказа',
        price=price,
        products_count=products_count,
        un_products_count=un_products_count,
        products=products
    )
Exemple #33
0
def get_product(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({
            'success': False,
            'msg': 'Product with id:%s not found.' % key_id
        })

    if request.method == 'DELETE':

        @check_write_permission
        def delete_product():
            product.key.delete()
            return jsonify({
                'success': True,
                'msg': 'Product id:%s deleted' % key_id
            })

        return delete_product()

    if request.method == 'PUT':

        @check_write_permission
        def put_product():
            flag, model = load_data()
            if not flag:
                return model
            if model_populate(model, product) or param('force_save'):
                product.put()
                return jsonify({
                    'success': True,
                    'msg': 'Product has been updated.'
                })
            else:
                return jsonify({
                    'success': False,
                    'msg': 'Product has not been updated.'
                })

        return put_product()
    return jsonify_model_db(product)
Exemple #34
0
def add_image(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect('pages.catalogue')

    upload_files = get_uploads(request, 'image')
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size and ProductImage.is_image_type(blob_info.content_type):
            img = ProductImage.create(
                blob_info.key(),
                size=blob_info.size,
                filename=os.path.basename(blob_info.filename.replace('\\','/')),
                content_type=blob_info.content_type)
            if not len(product.images_list):
                img.is_master = True
            if img.get_cached_url():
                product.images_list.append(img)
                product.put()
        else:
            blob_info.delete()
    return redirect(url_for('admin.product.edit_images', key_id=key_id))
Exemple #35
0
def product_upload_image(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return jsonify({
            'success': False,
            'msg': 'Product id:%s not found' % key_id
        })

    upload_files = get_uploads(request, 'image')
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size and \
                ProductImage.is_image_type(blob_info.content_type):
            img = ProductImage.create(blob_info.key(),
                                      size=blob_info.size,
                                      filename=os.path.basename(
                                          blob_info.filename.replace(
                                              '\\', '/')),
                                      content_type=blob_info.content_type)
            if not len(product.images_list):
                img.is_master = True
            if img.get_cached_url():
                product.images_list.append(img)
                product.put()
        else:
            file_size = blob_info.size
            content_type = blob_info.content_type
            blob_info.delete()
            return jsonify({
                'success':
                False,
                'msg':
                "Unknown error. File size: %s. File type: %s" %
                (file_size, content_type)
            })
    else:
        return jsonify({'success': False, 'msg': 'Upload image not found.'})
    return jsonify({'success': True, 'msg': 'Upload image complete.'})
Exemple #36
0
def add_image(key_id):
    product = Product.retrieve_by_id(key_id)
    if not product:
        return redirect('pages.catalogue')

    upload_files = get_uploads(request, 'image')
    if len(upload_files):
        blob_info = upload_files[0]
        if blob_info.size and ProductImage.is_image_type(
                blob_info.content_type):
            img = ProductImage.create(blob_info.key(),
                                      size=blob_info.size,
                                      filename=os.path.basename(
                                          blob_info.filename.replace(
                                              '\\', '/')),
                                      content_type=blob_info.content_type)
            if not len(product.images_list):
                img.is_master = True
            if img.get_cached_url():
                product.images_list.append(img)
                product.put()
        else:
            blob_info.delete()
    return redirect(url_for('admin.product.edit_images', key_id=key_id))
Exemple #37
0
def product_stat():
    product_count = Product.query().count()
    if product_count:
        product_count = pytils.numeral.get_plural(
            product_count, (u"позиции", u"позиций", u"позиций"))
    return product_count
Exemple #38
0
def products():
    products_obj = Product.query()
    return jsonify_model_dbs(products_obj)
Exemple #39
0
def last_incoming(page):
    products = Product.query().order(-Product.created)
    products = get_paginator(products, page)
    return flask.render_template('pages/last_incoming.html',
                                 title=u'Последние поступления',
                                 products=products)
Exemple #40
0
def products():
    products_obj = Product.query()
    return jsonify_model_dbs(products_obj)
def create(request):
	insert = Product(name=request.POST['name'], price=request.POST['price'], created_at=timezone.now(), manufacturer=Manufacturer.objects.get(name=request.POST['manu_name']), description=request.POST['description'])
	print insert
	insert.save()
	return redirect('/')
Exemple #42
0
 def update(self, request, *args, **kwargs):
     cart = Cart(request)
     product = cart.quantity - Product.stock
     Product.decrement(product=product)
     return Response(cart.cart, status=status.HTTP_200_OK)
Exemple #43
0
def get_order_box(key_id):
    store_links = StoreLink.query()
    if current_user.id <= 0:
        return render_template('order/login_require_box.html', store_links=store_links)
    if not current_user.is_order_box:
        return render_template('order/customer_require_box.html', store_links=store_links)
    product = Product.retrieve_by_id(key_id)
    if not product.is_available:
        return render_template('order/no_available_box.html', store_links=store_links)

    cart = session.get('cart', {})
    products = cart.get('products', {})

    order_product = products.get(key_id, {})
    order_product_count = order_product.get('count', 0)
    order_product_price = order_product.get('price', 0)

    if request.method == 'POST' and 'order_clear' in request.form:
        if key_id in products:
            del products[key_id]
            cart['products'] = products
            cart['price'] = cart.get('price', order_product_price) - order_product_price
            session['count'] = cart.get('count', order_product_count) - order_product_count
            session['cart'] = cart
        return redirect(url_for('order.get_order_box', key_id=key_id))

    order_product = products.get(key_id, {})
    order_product_count = order_product.get('count', 0)
    order_product_price = order_product.get('price', 0)

    if order_product_count:
        form = OrderForm(count=order_product_count)
        form.count.description=\
        u'В предзакаезе %s шт. данного товара на сумму %s рублей. Введите новое количество заказываемого товара.' \
        % (order_product_count, order_product_price)
        change = True
    else:
        form = OrderForm()
        change = False
    count=0
    if form.validate_on_submit():
        count = form.count.data
        if product:
            price = product.price_trade * count
            cart['price'] = cart.get('price', order_product_price) - order_product_price + price
            cart['products_count'] = cart.get('products_count', order_product_count) - order_product_count + count

            order_product['count'] = order_product_count = count
            order_product['price'] = order_product_price = order_product['count'] * product.price_trade

            products[key_id] = order_product
            cart['products']=products
            cart['un_products_count'] = len(products)
            session['cart'] = cart
            if count:
                change = True
                form.count.description=\
                u'В предзакаезе %s шт. данного товара на сумму %s рублей. Введите новое количество заказываемого товара.' \
                % (order_product_count, order_product_price)
    return render_template(
        'order/order_box.html',
        form=form,
        url=url_for('order.get_order_box', key_id=key_id),
        count=count,
        change=change,
        order_product_count=order_product_count,
        order_product_price=order_product_price,
        store_links=store_links
    )
Exemple #44
0
def get_searchable_products():
    products_q = Product.query()
    return products_q.fetch(
        projection=[Product.name, Product.barcode, Product.catalogue_id]
    )
Exemple #45
0
def get_searchable_products():
    products_q = Product.query()
    return products_q.fetch(
        projection=[Product.name, Product.barcode, Product.catalogue_id])
def add(request):
	if request.method == 'POST':
		manufacturer = Manufacturer.objects.get(id=request.POST['manufacturer'])
		product = Product(name=request.POST['product_name'], price=request.POST['price'], description=request.POST['description'], created_at=timezone.now(), manufacturer=manufacturer)
		product.save()
		return HttpResponseRedirect('/products/')
def create(request):
	manufacturer = Manufacturer.objects.get(id = request.POST['manufacturer'])
	new_product = Product(manufacturer = manufacturer, product_name = request.POST['product_name'], price = request.POST['price'], description = request.POST['description'])
	new_product.save()
	return redirect('index')