Ejemplo n.º 1
0
def remove_total_cart(request):
	if request.is_ajax():
		if request.method == 'POST':
			cart = Cart(request.session)
			producto = Product.objects.get(id=request.POST.get('id'))
			cart.remove(producto)
			return HttpResponse('Eliminado')
Ejemplo n.º 2
0
def pago(request):
	if request.method == "POST":
		cart = Cart(request.session)
		if not cart.is_empty:
			#
			#	Guardo el pedido
			# ===========================
			
			# creo un pedido con los datos del cliente y el restaurante
			restaurante =cart.items[0].product.restaurante
			cliente = Cliente.objects.get(user=request.user) #falta el cliente
			pedido = Pedido (restaurante=restaurante, cliente=cliente)
			pedido.save()
			
			#aado platos al pedido
			for item in cart.items:
				plato = item.product
				Detalle_pedido(plato=plato, pedido=pedido, cantidad=item.quantity).save()
						
			

			if request.POST.get('pago') == "Paypal":
				return paypal_create(request)
			elif request.POST.get('pago') == "Efectivo":
				cart.clear() #Se vacia el carrito
				return HttpResponseRedirect(reverse('pago_exitoso'))
Ejemplo n.º 3
0
    def setUp(self):
        engine = import_module(settings.SESSION_ENGINE)
        self.session = engine.SessionStore()
        self.session.save()
        self.client.cookies[
            settings.SESSION_COOKIE_NAME] = self.session.session_key

        self.factory = RequestFactory()

        self.cart = Cart(self.session)

        self.deer = Product.objects.create(
            name='deer',
            price=10.0,
            custom_id=1,
        )
        self.moose = Product.objects.create(
            name='moose',
            price=20.0,
            custom_id=2,
        )
        self.ticket = Ticket.objects.create(
            name='Clint Mansell',
            price=25.0,
            custom_id=6,
        )
Ejemplo n.º 4
0
def add(request):
    cart = Cart(request.session)
    selitem_id = request.GET.get('id')
    selitem_qty = request.GET.get('quantity')
    selitem = Item.objects.get(id=selitem_id)
    cart.add(selitem, selitem_qty, price=selitem.price)
    return redirect(reverse('store') + "#No{}Card".format(selitem.product.id))
Ejemplo n.º 5
0
def add(request, product_id):
    cart = Cart(request.session)
    product = Product.objects.get(pk=product_id)
    cart.add(product, price=product.price)
    products = Product.objects.order_by('-updated_at')
    context = {'products': products}
    return render(request, 'shop/index.html', context)
Ejemplo n.º 6
0
def minus_quantity(request):
    cart = Cart(request.session)
    product = Submenu.objects.get(id=request.GET.get('dish_id'))
    quantity = request.GET.get('quantity')
    quantity = int(quantity)
    cart.set_quantity(product, quantity - 1)
    return HttpResponse("Quantity decreased")
Ejemplo n.º 7
0
    def get(self, request, *args, **kwargs):
        # get status from querystring
        status = request.GET['status']
        cart = Cart(request.session)
        virtual_deals = []

        # check for virtual deals and create download links for each
        for item in cart.items:
            if item.product.type == 2:
                generated_ticket_url = request.build_absolute_uri(
                    reverse(
                        'download_ticket',
                        kwargs={'deal_id': item.product.id},
                    ))
                generated_ticket_url += "?qty=" + str(item.quantity)
                virtual_deals.append({
                    'deal': item,
                    'href': generated_ticket_url
                })

        # clear cart
        cart.clear()

        context = {
            'status': status,
            'virtual_deals': virtual_deals,
        }
        return render(request, self.template_name, context)
Ejemplo n.º 8
0
def pago(request):
    if request.method == "POST":
        cart = Cart(request.session)
        if not cart.is_empty:
            #
            #	Guardo el pedido
            # ===========================

            # creo un pedido con los datos del cliente y el restaurante
            restaurante = cart.items[0].product.restaurante
            cliente = Cliente.objects.get(user=request.user)  #falta el cliente
            pedido = Pedido(restaurante=restaurante, cliente=cliente)
            pedido.save()

            #aado platos al pedido
            for item in cart.items:
                plato = item.product
                Detalle_pedido(plato=plato,
                               pedido=pedido,
                               cantidad=item.quantity).save()

            if request.POST.get('pago') == "Paypal":
                return paypal_create(request)
            elif request.POST.get('pago') == "Efectivo":
                cart.clear()  #Se vacia el carrito
                return HttpResponseRedirect(reverse('pago_exitoso'))
Ejemplo n.º 9
0
def remove_cart(request):
    if request.method == 'POST':
        if request.is_ajax():
            cart = Cart(request.session)
            goods = Goods.objects.get(pk=request.POST.get('good'))
            cart.remove(goods)
            return JsonResponse({'message': "Removed"})
Ejemplo n.º 10
0
def empty_cart(request):
	cart = Cart(request.session)
	cart.clear()
	html = new_cart_html(request,1)
	cart_contents_qty = cart_contents_empty(request)
	payload = update_cart_status_and_prepare_payload(request, html, cart_contents_qty)
	return HttpResponse(json.dumps(payload), content_type="application/json")
Ejemplo n.º 11
0
def order_create(request):
    cart = Cart(request.session)
    if request.method == 'POST':
        form = OrderCreateForm(request.POST)
        if form.is_valid():
            order = form.save(commit=False)
            order.placed_by_user = request.user
            order.save()
            for item in cart.items:
                OrderItem.objects.create(order=order,
                                         product=item.product,
                                         price=item.price,
                                         quantity=item.quantity)
                old_quantity = soap_client.service.findByIsbn(
                    item.product.isbn).quantity
                new_quantity = old_quantity - item.quantity
                soap_client.service.updateQuantity(item.product.isbn,
                                                   new_quantity)
            cart.clear()
            context = {'order': order}
            return render(request, 'orders/created.html', context)
    else:
        form = OrderCreateForm()
        return render(request, 'orders/create.html', {
            'cart': cart,
            'form': form
        })
Ejemplo n.º 12
0
def charge(request):
    cart = Cart(request.session)
    if cart.unique_count > 0:
        if request.method == "POST":
            form = SalePaymentForm(request.POST or None)
            if form.is_valid(): # charges the card
                template = get_template('tinbox/order-response-email.html')
                context = Context({'cart': cart, 'total': cart.total, 'shipping_cost': form.cleaned_data.get("shipping"), 'name' : form.cleaned_data.get("name") })
                content = template.render(context)
                cart.clear()
                form_email = form.cleaned_data.get("email")
                form_name = form.cleaned_data.get("name")
                subject = 'Tinbox Solutions - Order Successfully Processed'
                from_email = settings.EMAIL_HOST_USER
                to_email = [form_email]
                msg = EmailMultiAlternatives(subject, "", from_email, to=to_email)
                msg.attach_alternative(content, "text/html")
                msg.send()
                return HttpResponseRedirect('/shopping/thank-you')
            else:
                t = form.determineShippingFormField(1, cart.total)
                return render_to_response("tinbox/charge.html", RequestContext( request, {'form': form, 'turnaround_cost' : t.turnaround_cost, 'turnaround' : t.turnaround} ) )
        else:
            form = SalePaymentForm()
            t = form.determineShippingFormField(1, cart.total)
        return render_to_response("tinbox/charge.html", RequestContext( request, {'form': form, 'turnaround_cost' : t.turnaround_cost, 'turnaround' : t.turnaround} ) )

    else:
        return render(request, 'tinbox/show-cart.html', {"empty": True})
Ejemplo n.º 13
0
def add_cart(request):
	if request.is_ajax():
		if request.method == 'POST':
			cart = Cart(request.session)
			producto = Product.objects.get(id=request.POST.get('id'))
			cart.add(producto,price=producto.price)
			return HttpResponse('Agregado')
Ejemplo n.º 14
0
def waiter():
    while True:
        from fridge.models import ShoppingCart, UserLimit, Product
        from carton.cart import Cart
        from django.contrib.sessions.backends.db import SessionStore

        with open('session_key.csv', 'r') as f:
            data = csv.reader(f)
            for line in data:
                k = line
            k = k[0]

        s = SessionStore(session_key=k)

        cart = Cart(s)

        product = Product.objects.get(name='Avocado')
        print(product)
        with open('object_counting_report.csv', 'r') as reading:
            read = csv.reader(reading)
            for line in read:
                for l in line:
                    name = []
                    number = []
                    for item in l:
                        if item.isalpha():
                            name.append(item)
                        elif item.isdigit():
                            number.append(int(item))
                        else:
                            pass
                    name = (''.join(c for c in name))
                    number = (number[0])
                    prodset = UserLimit.objects.all()
                    # session = requests.Session()

                    for num in prodset:
                        if number < num.set_limit:
                            qty = num.set_limit - number + 1
                            print(
                                'dddddddddddddddddddddddddddddddddddddddddddd')
                            print(num.set_limit)

                            try:
                                # tobeupdated = ShoppingCart.objects.get(product=item.product)
                                product = Product.objects.get(name='Avocado')

                                # cart.add( product )
                                cart.add(product, price=product.selling_price)
                                s.save()
                                print('paint')
                                print(cart.items)
                                print('adding')

                            except:
                                # cart = ShoppingCart(product=item.product, quantity=qty)
                                print('excepted')
                                # pass
        break
Ejemplo n.º 15
0
def checkout_page(request):
    errors = []
    cart = Cart(request.session)
    freight_only = any(
        [item.product.product.freight_only for item in cart.items])
    cost_total = cart.total
    if cart.is_empty:
        return redirect(reverse('store'))
    else:
        if request.POST:
            cart_list = [v for k, v in cart.cart_serializable.items()]
            cal_price = reduce(
                lambda x, y: x + y,
                [i['quantity'] * int(i['price']) for i in cart_list])
            delivery = request.POST.get('delivery')
            try:
                shopper = PersonalInfo.objects.get(
                    id=request.user.personalinfo.id)
                if cart.total == cal_price and delivery is not None:
                    order = PurchaseOrder.objects.create(
                        number=0,
                        buyer=shopper,
                        order_time=datetime.now(),
                        freight=0 if cart.total > 1500 else
                        60 if delivery.isdigit() else 90,
                        ship_method='FML' if delivery.isdigit() else 'KTJ',
                        address=delivery,
                        total=cart.total,
                        buyer_notes=request.POST.get('shopper_notes'),
                        order_notes=cart_list)
                    order.number = float(
                        datetime.now().strftime('%y%m%d%H%M%S')) + float(
                            order.id)
                    order.total = order.total + order.freight

                    # 更改為預購模式!
                    for d in cart_list:
                        item = get_object_or_404(Item, id=d['product_pk'])
                        order.sold_goods.add(item)
                        item.pre_order += d['quantity']
                        # print ('id={} / 存貨={} / 售貨={} / 總售貨={}'.format(
                        #     item.id, item.stock,
                        #     item.sold, item.total_sold
                        # ))
                        item.save()
                    order.save()
                    cart.clear()
                    return HttpResponseRedirect(reverse('checkout:orderinfo'))
                else:
                    errors.append('資料有誤 或 尚未填寫,請重新整理再次一次')
            except Exception as e:
                print('%s (%s)' % (e, type(e)))
    context = {
        'title': '結帳清單',
        'errors': errors,
        'cost_total': cost_total,
        'freight_only': freight_only,
    }
    return render(request, 'checkout/checkout-page.html', context)
Ejemplo n.º 16
0
 def setUp(self):
     self.client = Client()
     self.ticket = set_dependent_classes()
     self.client.login(username="******", password="******")
     session = self.client.session
     cart = Cart(session)
     cart.add(self.ticket['item'], price=self.ticket['item'].price)
     session.save()
Ejemplo n.º 17
0
def add(request):
    cart = Cart(request.session)
    product = Product.objects.get(pk=request.POST.get('product_id'))
    quantity = request.POST.get('quantity', 1)
    discount = request.POST.get('discount', 0)
    price = product.price - float(discount)
    cart.add(product, price, quantity)
    return HttpResponse()
Ejemplo n.º 18
0
def add(request):
    cart = Cart(request.session)
    event = Event.objects.get(id=request.GET.get('id'))
    cart.add(event, price=event.price)

    messages.success(request, "Event added to basket")

    return render(request, 'ticket/cart/basket.html')
Ejemplo n.º 19
0
def remove_single(request):
    cart = Cart(request.session)
    initial_count = cart.count
    product = products[int(request.POST.get('product_id'))]
    cart.remove_single(product)
    after_rmv_count = cart.count
    assert initial_count == after_rmv_count + 1
    return HttpResponse()
Ejemplo n.º 20
0
def add_to_cart(request, restaurant_id, food_item_id):
    cart = Cart(request.session)
    food_item = FoodItem.objects.get(id=food_item_id)
    food_item.times_ordered += 1
    food_item.save()
    cart.add(food_item, price=food_item.price)
    messages.success(request, '{0} added to Cart'.format(food_item.name))
    return redirect('customer:restaurant_view', restaurant_id=restaurant_id)
Ejemplo n.º 21
0
def checkout(request):
    cart = Cart(request.session)
    messages.success(
        request,
        'You have paid AED {0} for {1} item(s)'.format(cart.total, cart.count))
    messages.success(request, 'Thank you for shopping with us')
    cart.clear()
    return redirect('customer:index')
Ejemplo n.º 22
0
def remove(request):
    cart = Cart(request.session)
    event = Event.objects.get(id=request.GET.get('id'))
    cart.remove_single(event)

    messages.success(request, "Event removed from basket")

    return render(request, 'ticket/cart/basket.html')
Ejemplo n.º 23
0
def remove(request):
	"""
	删除一个商品
	"""
	cart = Cart(request.session)
	product = Product.objects.get(id=request.GET['id'])
	cart.remove(product)
	return HttpResponseRedirect('/cart/')
Ejemplo n.º 24
0
def update(request):
	if request.is_ajax():
		if request.method == 'POST':
			cart = Cart(request.session)
			producto = Product.objects.get(id=request.POST.get('id'))
			new_cantidad = request.POST.get('valor')
			cart.set_quantity(producto,quantity=new_cantidad)
			return HttpResponse('Actualizado')
Ejemplo n.º 25
0
def remove(request):
    cart = Cart(request.session)
    event = Event.objects.get(id=request.GET.get('id'))
    cart.remove_single(event)

    messages.success(request, "Event removed from basket")

    return render(request, 'ticket/cart/basket.html')
Ejemplo n.º 26
0
def add_cart(request):
    if request.method == 'POST':
        if request.is_ajax():
            cart = Cart(request.session)
            goods = Goods.objects.get(id=request.POST.get('good'))
            cart.add(goods, price=goods.price)
            return JsonResponse({'message': "Added {}".format(goods.name)})
    return JsonResponse({'message': "Please Access with AJAX/POST"})
Ejemplo n.º 27
0
def add(request):
    cart = Cart(request.session)
    event = Event.objects.get(id=request.GET.get('id'))
    cart.add(event, price=event.price)

    messages.success(request, "Event added to basket")

    return render(request, 'ticket/cart/basket.html')
Ejemplo n.º 28
0
def carrito_count(request):
	from carton.cart import Cart
	cart = Cart(request.session)
	if request.user.is_authenticated():
		cartw = request.user.wishlist.all()
	else:
		cartw = Cart(session=request.session, session_key='CART-wish')
	return { "cart":cart, "cartw":cartw }
Ejemplo n.º 29
0
def cart_remove(request):
    if request.is_ajax() and request.POST and 'part' in request.POST:
        cart = Cart(request.session)
        product = models.Part.objects.get(slug=request.POST.get('part'))
        cart.remove(product)
        return HttpResponse(content=product.name + " successfully removed from cart")
    else:
        return HttpResponse(status=400, content="Error removing from cart")
Ejemplo n.º 30
0
def cart_add(request):
    if request.is_ajax() and request.POST and 'part' in request.POST:
        cart = Cart(request.session)
        product = models.Part.objects.get(slug=request.POST.get('part'))
        cart.add(product, price=product.price)
        return HttpResponse(content=product.name + " successfully added to cart")
    else:
        return HttpResponse(status=400, content="Error adding to cart")
Ejemplo n.º 31
0
def remove_single(request):
    cart = Cart(request.session)
    initial_count = cart.count
    product = products[int(request.POST.get('product_id'))]
    cart.remove_single(product)
    after_rmv_count = cart.count
    assert initial_count == after_rmv_count + 1
    return HttpResponse()
Ejemplo n.º 32
0
 def get(self, request, *args, **kwargs):
     cart = Cart(request.session)
     try:
         cart_item = OrderItemCart.objects.get(pk=kwargs['cart_item_id'], cart__session_key=request.session.session_key)
     except OrderItemCart.DoesNotExist:
         return HttpResponseRedirect(reverse('show-cart'))
     cart.remove(cart_item)
     cart_item.delete()
     return HttpResponseRedirect(reverse('show-cart'))
Ejemplo n.º 33
0
def carrinho_adicionar(request):
    if request.method == 'POST':
        carrinho = Cart(request.session)
        produto = Produto.objects.get(pk=request.POST.get('id'))
        carrinho.add(produto, price=produto.preco, quantity=request.POST.get('quantidade'))
        data = json.dumps({'itens': str(len(carrinho.items)), 'total': str(carrinho.total)})
        return HttpResponse(data, content_type='application/json')
    else:
        return HttpResponse('404')
Ejemplo n.º 34
0
def decrementar_quantidade(request):
    produto_id = request.POST['produto']
    quantidade = request.POST['quantidade']
    carrinho = Cart(request.session)
    produto = Produto.objects.get(pk=produto_id)
    carrinho.set_quantity(produto, quantity=quantidade)
    template = loader.get_template('loja/carrinho.html')
    context = RequestContext(request)
    return HttpResponse(template.render(context))
Ejemplo n.º 35
0
def update_cart(request):
    cart = Cart(request.session)
    for product in cart.products:
        print product.name
        qty = int(request.POST.get("product_" + str(product.id)))
        if qty > 0 and qty < 100:
            cart.remove(product)
            cart.add(product, price=product.price, quantity=qty)
    return redirect("pos:cart")
Ejemplo n.º 36
0
def update_cart(request):
    if request.method == 'POST':
        if request.is_ajax():
            cart = Cart(request.session)
            quantity = request.POST.get('quantity')
            goods = Goods.objects.get(id=request.POST.get('good'))
            cart.set_quantity(goods, quantity)
            return JsonResponse(
                {'message': 'update {} for {}'.format(goods.name, quantity)})
Ejemplo n.º 37
0
def show(request):
    cart = Cart(request.session)
    if request.method == 'POST':
        quantitylist = request.POST.getlist('quantity[]')
        for idx, item in enumerate(cart.products):
            item = Item.objects.get(id=item.id)
            cart.set_quantity(item, quantitylist[idx])
        return redirect(reverse('checkout:page'))
    return render(request, 'shopping/show-cart.html')
Ejemplo n.º 38
0
def remove(request, item_id):
    '''
    Controller function for removing an item from the cart.
    '''
    cart = Cart(request.session)
    product = Product.objects.get(id=item_id)
    # cart.remove(product, price=product.selling_price)
    cart.remove(product)
    return render(request, 'cart.html', locals())
def remove(request):
    cart = Cart(request.session)  # Get cart session
    # Get product, raise error if doesn't exist
    try:
        product = Product.objects.get(id=request.GET.get('id'))
    except Product.DoesNotExist:
        raise Http404("Product does not exist")
    cart.remove(product)  # Remove item from cart
    return redirect('shopping-cart-show')  # Refresh page so item is no longer shown
Ejemplo n.º 40
0
def add_single(request):
	cart = Cart(request.session)
	plato = Plato.objects.get(id=request.GET.get('product_id'))

	if cart.products:
		if plato.restaurante.id != cart.products[0].restaurante.id:
			cart.clear()		
	cart.add(plato, price=plato.precio)
	return platilla_cesta(request);
Ejemplo n.º 41
0
def show(request):
	cart = Cart(request.session)	
	if request.method == 'POST':
		print 'mpike mesa sto post'
		isbn = request.POST.get("book_isbn",'')
		quant = request.POST.get("book_new_quant",'')
		product = Book.objects.get(isbn=isbn)
		cart.set_quantity(product, quantity=quant)
	return render(request, 'shopping/show-cart.html')
Ejemplo n.º 42
0
def carrinho_remover(request):
    if request.method == 'POST':
        carrinho = Cart(request.session)
        produto = Produto.objects.get(pk=request.POST.get('id'))
        carrinho.remove(produto)
        template = loader.get_template('loja/carrinho.html')
        context = RequestContext(request)
        return HttpResponse(template.render(context))
    else:
        return HttpResponse('404')
Ejemplo n.º 43
0
def add(request):
    cart = Cart(request.session)
    product = Product.objects.get(id=request.POST.get('id'))
    cart.add(product, price=product.price, quantity=request.POST.get('qty'))
    recent_product = dict(name=product.productName, image=product.image.url, price=product.price, total=cart.total,
                          items=cart.count)
    return HttpResponse(
        json.dumps(recent_product, use_decimal=True),
        content_type="application/json"
    )
Ejemplo n.º 44
0
def add_product(request, product_id):
    cart = Cart(request.session)
    product = Product.objects.get(pk=product_id)
    cart.add(product, price=product.price_ukr())

    result = {'products_in_cart': len(cart.items),
              'cart_total_sum': int(cart.total)}

    json_response = json.dumps(result)
    return HttpResponse(json_response, content_type="application/json")
Ejemplo n.º 45
0
def remove_single(request, product_id):
    cart = Cart(request.session)
    if Item2.objects.filter(product_id=product_id):
        product = Item2.objects.get(product_id=product_id)
    elif Item3.objects.filter(product_id=product_id):
        product = Item3.objects.get(product_id=product_id)
    else:
        product = Item4.objects.get(product_id=product_id)
    cart.remove_single(product)
    return HttpResponseRedirect('/tohfa/show')
Ejemplo n.º 46
0
def remove(request):
	cart = Cart(request.session)
	product_id = request.GET.get('id')
	product = Product.objects.get(id=product_id)
	is_unique = is_product_qty_unique(request, product_id)
	cart.remove_single(product)
	html = new_cart_html(request,0)
	cart_contents_qty = cart_contents_payload_unique(request, is_unique, product_id)
	payload = update_cart_status_and_prepare_payload(request, html, cart_contents_qty, True)
	return HttpResponse(json.dumps(payload), content_type="application/json")
Ejemplo n.º 47
0
def add(request, product_id):
    cart = Cart(request.session)
    if Item2.objects.filter(product_id=product_id):
        product = Item2.objects.get(product_id=product_id)
    elif Item3.objects.filter(product_id=product_id):
        product = Item3.objects.get(product_id=product_id)
    else:
        product = Item4.objects.get(product_id=product_id)
    
    cart.add(product, price=product.price)
    return HttpResponseRedirect('/tohfa/show')
Ejemplo n.º 48
0
def checkout_page(request):
    errors = []
    cart = Cart(request.session)
    freight_only = any([item.product.product.freight_only for item in cart.items])
    cost_total = cart.total
    if cart.is_empty:
        return redirect(reverse('store'))
    else:
        if request.POST:
            cart_list = [v for k, v in cart.cart_serializable.items()]
            cal_price = reduce(lambda x, y: x + y, [i['quantity'] * int(i['price']) for i in cart_list])
            delivery = request.POST.get('delivery')
            try:
                shopper = PersonalInfo.objects.get(id=request.user.personalinfo.id)
                if cart.total == cal_price and delivery is not None:
                    order = PurchaseOrder.objects.create(
                        number=0,
                        buyer=shopper,
                        order_time=datetime.now(),
                        freight=0 if cart.total > 1500 else
                        60 if delivery.isdigit() else 90,
                        ship_method='FML' if delivery.isdigit() else 'KTJ',
                        address=delivery,
                        total=cart.total,
                        buyer_notes=request.POST.get('shopper_notes'),
                        order_notes=cart_list
                    )
                    order.number = float(datetime.now().strftime('%y%m%d%H%M%S')) + float(order.id)
                    order.total = order.total + order.freight

                    # 更改為預購模式!
                    for d in cart_list:
                        item = get_object_or_404(Item, id=d['product_pk'])
                        order.sold_goods.add(item)
                        item.pre_order += d['quantity']
                        # print ('id={} / 存貨={} / 售貨={} / 總售貨={}'.format(
                        #     item.id, item.stock,
                        #     item.sold, item.total_sold
                        # ))
                        item.save()
                    order.save()
                    cart.clear()
                    return HttpResponseRedirect(reverse('checkout:orderinfo'))
                else:
                    errors.append('資料有誤 或 尚未填寫,請重新整理再次一次')
            except Exception as e:
                print ('%s (%s)' % (e, type(e)))
    context = {
        'title': '結帳清單',
        'errors': errors,
        'cost_total': cost_total,
        'freight_only': freight_only,
    }
    return render(request, 'checkout/checkout-page.html', context)
Ejemplo n.º 49
0
def add(request):
	"""
	向购物车内增加商品
	"""
	print request.GET
	print request.POST

	cart = Cart(request.session)
	product = Product.objects.get(id=request.GET['id'])
	quantity = request.POST['quantity']
	cart.add(product, price=product.price, quantity=quantity)
	return HttpResponseRedirect('/cart/')
Ejemplo n.º 50
0
def clear_cart(request):
    if request.is_ajax():
        cart = Cart(request.session)
        cart.clear()
        return render_to_response('mcat_order/cart.html',
                                   context_instance=RequestContext(request),
                                   content_type="application/xhtml+xml"
                                   )
    else:
        if settings.DEBUG:
            print("Not ajax request")
        raise Http404
Ejemplo n.º 51
0
def remove_from_cart(request, slug):
    if request.is_ajax():
        cart = Cart(request.session)
        product = get_object_or_404(Product, slug=slug)
        cart.remove_single(product)
        return render_to_response('mcat_order/cart.html',
                                   context_instance=RequestContext(request),
                                   content_type="application/xhtml+xml"
                                   )
    else:
        if settings.DEBUG:
            print("Not ajax request")
        raise Http404
Ejemplo n.º 52
0
 def dispatch(self, request, *args, **kwargs):
     self.customer = get_object_or_404(Customer, user=self.request.user)
     #~ create the order
     cart = Cart(request.session)
     if cart.count == 0:
         messages.warning(self.request, _(u'The cart is empty: order cancelled'))
         return super(PostOrderView, self).dispatch(request, *args, **kwargs)
     order = Order.objects.create(customer=self.customer, total=cart.total)
     for item in cart.items:
         #~ get the product
         OrderedProduct.objects.create(product=item.product, order=order, quantity=item.quantity, price_per_unit=item.product.price)
     
     cart.clear()
     return super(PostOrderView, self).dispatch(request, *args, **kwargs)
Ejemplo n.º 53
0
    def post(self, request):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        cart = Cart(request.session)
        product = get_object_or_404(Product, id=serializer.data['product_id'])
        cart.remove(product)

        response_data = {
            'detail': 'Product was removed from cart.'
        }
        response_status = status.HTTP_200_OK

        return Response(response_data, status=response_status)
Ejemplo n.º 54
0
    def post(self, request):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        cart = Cart(request.session)
        product = get_object_or_404(Product, id=serializer.data['product_id'])
        cart.set_quantity(product, quantity=serializer.data['product_quantity'])

        response_data = {
            'detail': 'Product was updated.'
        }
        response_status = status.HTTP_201_CREATED

        return Response(response_data, status=response_status)
Ejemplo n.º 55
0
def add(request):
	cart = Cart(request.session)
	product = Product.objects.get(id=request.GET.get('id'))
	try:
		product_stock = ProductStock.objects.get(product=product)
	except ObjectDoesNotExist:
		product_stock = None
	####ir buscar preco correcto
	cart.add(product, price=2)

	html = new_cart_html(request,0)
	cart_contents_qty = cart_contents_payload(request)
	payload = update_cart_status_and_prepare_payload(request, html, cart_contents_qty, True)

	return HttpResponse(json.dumps(payload), content_type="application/json")
Ejemplo n.º 56
0
    def setUp(self):
        engine = import_module(settings.SESSION_ENGINE)
        self.session = engine.SessionStore()
        self.session.save()
        self.client.cookies[settings.SESSION_COOKIE_NAME] = self.session.session_key

        self.factory = RequestFactory()

        self.cart = Cart(self.session)

        self.deer = Product.objects.create(
            name='deer',
            price=10.0,
            custom_id=1,
        )
        self.moose = Product.objects.create(
            name='moose',
            price=20.0,
            custom_id=2,
        )
        self.ticket = Ticket.objects.create(
            name='Clint Mansell',
            price=25.0,
            custom_id=6,
        )