Example #1
0
def cart_detail(request):
    cart = Cart(request)
    product = get_object_or_404(Product, id=1)
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True,
            })
    coupon_apply_form = CouponApllyForm()
    r = Recommender()
    cart_products = [item['product'] for item in cart]
    if cart:
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=4)
    else:
        product = get_object_or_404(Product, id=1)
        cart_products = [product]
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=4)
    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            })
    coupon_apply_form = CouponApplyForm()

    try:
        r = Recommender()
        cart_products = [item['product'] for item in cart]
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=4)
    except redis.exceptions.ConnectionError as e:
        logger.error(f"Attention {e}")
        recommended_products = None

    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #3
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            })
    coupon_apply_form = CouponApplyForm()

    r = Recommender()
    cart_products = [item['product'] for item in cart]
    print(cart_products)
    print(type(cart_products))
    #  prints "[<Product: Afternoon>]"
    #  prints "[<Product: Afternoon>, <Product: Apple & Elderflower>]"
    #  type = <class 'list'>
    recommended_products = r.suggest_products_for(cart_products, max_results=4)

    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #4
0
def cart_detail(request):
    """
    view for cart details
    :param request:
    :return:
    """
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            }
        )
    coupon_apply_form = CouponApplyForm()
    r = Recommender()
    # Getting the product from cart items in the cart.
    # Each item in the cart has a product
    cart_products = [item['product'] for item in cart]
    # Passing the products to the recommendation engine
    recommended_products = r.suggest_products_for(cart_products, max_results=4)

    return render(request,
                  'cart/detail.html',
                  {
                      'cart': cart,
                      'coupon_apply_form': coupon_apply_form,
                      'recommended_products': recommended_products
                  })
Example #5
0
def cart_detail(request):
    cart = Cart(request)
    categories = Category.objects.all()
    for item in cart:
        item["update_quantity_form"] = CartAddSingleProductForm(
            initial={
                "quantity": item["quantity"],
                "override": True
            })

    coupon_apply_form = CouponApplyForm()

    r = Recommender()
    if len(cart) != 0:
        cart_products = [item["product"] for item in cart]
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=4)
    else:
        recommended_products = 0

    return render(
        request,
        "cart/detail.html",
        {
            "categories": categories,
            "cart": cart,
            "coupon_apply_form": coupon_apply_form,
            "recommended_products": recommended_products,
        },
    )
Example #6
0
def cart_detail(request):
    """
    
    """

    cart = Cart(request)

    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'update': True
            })

    coupon_apply_form = CouponApplyForm()

    recmdr = Recommender()

    cart_products = [item['product'] for item in cart]
    recommended_products = recmdr.suggest_products_for(cart_products,
                                                       max_results=4)

    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #7
0
def cart_detail(request):
    cart = Cart(request)

    r = Recommender()
    cart_products = [item['product'] for item in cart]
    r.products_bought([item['product'] for item in cart])

    recommended_products = r.suggest_products_for(cart_products , max_results = 4)
    return render(request, 'cart/details.html', {'cart': cart , 'recommended_products': recommended_products})
Example #8
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CartAddProductsForm(initial={'quantity': item['quantity'],
                                                                    'update': True})
    coupon_apply_form = CouponApplyForm()
    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)
    return render(request, 'cart/detail.html', {'cart': cart, 'coupon_apply_form': coupon_apply_form, 'recommended_products': recommended_products})
Example #9
0
def cart_view(request):
    cart = Cart(request)
    products = [item['product'] for item in cart]
    if products:
        r = Recommender()
        recommended_products = r.suggest_products_for(products)
    else:
        recommended_products = None
    return render(request, 'cart/cart.html',
                  {'recommended_products': recommended_products})
Example #10
0
def product_detail(request, product_id, slug):
    product = get_object_or_404(Product, id=product_id, slug=slug, available=True)
    cart_product_form = CartAddProductForm()

    r = Recommender()
    recommended_products = r.suggest_products_for([product], 4)

    return render(request, 'shop/product/detail.html',
                  {'product': product,
                   'cart_product_form': cart_product_form,
                   'recommended_products': recommended_products})
Example #11
0
    def get_context_data(self, **kwargs):
        """
        Add product to cart.
        Suggest products for this product [[recommender.py#suggest_products_for]].
        """

        context = super().get_context_data(**kwargs)
        product = super().get_object()
        r = Recommender()
        context['cart_product_form'] = CartAddProductForm()
        context['recommended_products'] = r.suggest_products_for([product], 4)
        return context
Example #12
0
def product_detail(request, id, slug):
    product = get_object_or_404(Product, id=id, slug=slug, available=True)
    form = DetailProduct
    r = Recommender()
    recommended_products = r.suggest_products_for([product], 4)

    context = {
        'product': product,
        'form': form,
        'recommended_products': recommended_products
    }
    template = 'products_detail.html'
    return render(request, template, context)
Example #13
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={'quantity': item['quantity'],
                     'update': True})
    # will see about coupons
    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)
    return render(request,
                  'cart/detail.html',
                  {'cart': cart,
                   'recommended_products': recommended_products})
Example #14
0
def cart_detail(request):
    cart = Cart(request)
    # allow users change quantity on the cart detail page
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(initial={
                                            'quantity': item['quantity'],
                                            'override': True})

    coupon_apply_form = CouponApplyForm()

    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products,max_results=4)
    return render(request, 'cart/detail.html', {'cart': cart, 'coupon_apply_form': coupon_apply_form,
                                                'recommended_products': recommended_products
                                                })
Example #15
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item["update_quantity_form"] = CartAddProductForm(
            initial={
                "quantity": item["quantity"],
                "update": True
            })
    coupon_apply_form = CouponApplyForm()
    recommender = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = recommender.suggest_products_for(cart_products, 4)
    return render(
        request,
        "cart/detail.html",
        {
            "cart": cart,
            "coupon_apply_form": coupon_apply_form
        },
    )
Example #16
0
def cart_detail(request):
    cart = Cart(request)
    # this loop make a edit field form for each item in cart
    # it sets override True to use cart add method to update it
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            })
    coupon_apply_form = CouponApplyForm()

    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)
    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #17
0
    def get(self, request):
        template_name = 'cart/detail.html'
        cart = Cart(request)
        for item in cart:
            item['update_quantity_form'] = CartAddProductForm(
                initial={
                    'quantity': item['quantity'],
                    'update': True
                })

        r = Recommender()
        cart_products = [item['product'] for item in cart]
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=4)

        ctx = {
            'cart': cart,
            'recommended_product': recommended_products,
        }

        return render(request, template_name, ctx)
Example #18
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        # dodaj do dict każdego elementu podane pole
        # czyli teraz dict posiada pole formy, którą można wyświetlić w widoku
        # tutaj nie ma przesyłania formy!
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'update': True
            })
    coupon_apply_form = CouponApplyForm()
    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)
    # web_pdb.set_trace()
    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #19
0
def cart_detail(request: HttpRequest):
    cart = Cart(request)

    for item in cart:
        item: CartItemDetail
        item['update_quantity_form'] = CardAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True,
            })

    coupon_apply_form = CouponApplyForm()
    r = Recommender()
    recommended_products = r.suggest_products_for(item['product']
                                                  for item in cart)

    context = {
        'cart': cart,
        'coupon_apply_form': coupon_apply_form,
        'recommended_products': recommended_products,
    }
    return render(request, 'cart/detail.html', context)
Example #20
0
def cart_detail(request):
    """Обработчик для страницы списка товаров, добавленных в корзину"""
    cart = Cart(request)
    # Изменение количества товаров
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'update': True
            })
    coupon_apply_form = CouponApplyForm()

    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)

    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #21
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        # create an 'update_quantity_form' for all objects in d cart, then set their values to initial value
        item['update_quantity_form'] = CartUpdateProductForm(
            initial={
                'quantity': item['quantity'],
                'update': True
            })

    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)

    coupon_apply_form = CouponApplyForm()
    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'html_title': 'My Shopping Cart',
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #22
0
def cart_detail(request):
    cart = Cart(request)
    for item in cart:
        item["update_quantity_form"] = CartAddProductForm(
            initial={
                "quantity": item["quantity"],
                "override": True
            })
    coupon_apply_form = CouponApplyForm()

    r = Recommender()
    cart_products = [item["product"] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_results=4)

    return render(
        request,
        "cart/detail.html",
        {
            "cart": cart,
            "coupon_apply_form": coupon_apply_form,
            "recommended_products": recommended_products,
        },
    )
Example #23
0
def cart_detail(request):
    cart = Cart(request)
    # updating quantity of product in the cart
    for item in cart:
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            })
        coupon_apply_form = CouponApplyForm()
        r = Recommender()
        cart_products = [item['product'] for item in cart]
        print(cart_products)
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=3)
        if coupon_apply_form is None:
            return render(request, 'cart/detail.html', {'cart': cart})
    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
def cart_detail(request):
    '''
    method for showing details of the cart
    '''
    cart = Cart(request)
    for item in cart:
        item['update_quantity_form'] = CarAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            })
    coupon_apply_form = CouponApplyForm()

    # recommendation in the cart
    r = Recommender()
    cart_products = [item['product'] for item in cart]
    recommended_products = r.suggest_products_for(cart_products, max_result=4)
    return render(
        request, 'cart/details.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })
Example #25
0
def cart_detail(request):
    cart = Cart(request)
    # create an instance of CartAddProductForm for each item in the cart to allow
    # changing product quantities.
    for item in cart:
        # You initialize the form with the current item quantity and set the override field to True so that when you submit the form to the cart_
        # add view, the current quantity is replaced with the new one.
        item['update_quantity_form'] = CartAddProductForm(
            initial={
                'quantity': item['quantity'],
                'override': True
            })
        coupon_apply_form = CouponApplyForm()

        r = Recommender()
        cart_products = [item['product'] for item in cart]
        recommended_products = r.suggest_products_for(cart_products,
                                                      max_results=4)
    return render(
        request, 'cart/detail.html', {
            'cart': cart,
            'coupon_apply_form': coupon_apply_form,
            'recommended_products': recommended_products
        })