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
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})
|
|
|