You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

41 lines
1.7 KiB

from django.shortcuts import render, redirect, get_object_or_404
from django.views.decorators.http import require_POST
from django.views.decorators.csrf import csrf_exempt
from django.contrib import auth
from products.models import Product, Offer
from .cart import Cart
from .forms import CartAddProductForm
# from discount.forms import DiscountApllyForm
@csrf_exempt
@require_POST
def CartAdd(request):
cart = Cart(request)
form = CartAddProductForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
offer = get_object_or_404(Offer, slug=cd['product_slug'])
cart.add(offer=offer, price_per_itom=cd['price_per_itom'], quantity=cd['quantity'],
update_quantity=cd['update'])
return redirect('cart:CartDetail')
def CartRemove(request, offer_slug):
cart = Cart(request)
# offer = get_object_or_404(Offer, slug=offer_slug)
cart.remove(offer_slug)
return redirect('cart:CartDetail')
def CartDetail(request, points=False):
user = auth.get_user(request)
cart = Cart(request)
for item in cart:
item['update_quantity_form'] = CartAddProductForm(
initial={
'quantity': item['quantity'],
'product_slug': item['offer'].slug,
'price_per_itom': item['price'],
'update': True
})
# discount_apply_form = DiscountApllyForm()
return render(request, 'cart/detail.html', {'username': user.username, 'points': points})
# 'discount_apply_form': discount_apply_form})