Esempio n. 1
0
File: views.py Progetto: SlGrey/Grey
def change_item_qty(request):
    try:
        cart_id = request.session["cart_id"]
        cart = Cart.objects.get(id=cart_id)
        request.session["total"] = cart.items.count()
    except KeyError:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session["cart_id"] = cart_id
        cart = Cart.objects.get(id=cart_id)
    qty = request.GET.get("qty")
    item_id = request.GET.get("item_id")
    cart.change_qty(qty, item_id)
    cart_item = CartItem.objects.get(id=int(item_id))
    return JsonResponse({"cart_total": cart.items.count(),
                         "item_total": cart_item.item_total,
                         "cart_total_price": cart.cart_total,
                         })
Esempio n. 2
0
def product_view(request, product_slug):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    product = Product.objects.get(slug=product_slug)
    categories = Category.objects.all()
    context = {
        'product': product,
        'categories': categories,
        'cart': cart,
    }
    return render(request, 'product.html', context)
Esempio n. 3
0
def order_create_view(request):
	try:
		cart_id = request.session['cart_id']
		cart = Cart.objects.get(id=cart_id)
		request.session['total'] = cart.items.count()
	except:
		cart = Cart()
		cart.save()
		cart_id = cart.id
		request.session['cart_id'] = cart_id
		cart = Cart.objects.get(id=cart_id)
	form = OrderForm(request.POST or None)
	categories = Category.objects.all()
	context = {
		'form': form, 
		'cart': cart,
		'categories':categories
	}
	return render(request, 'order.html', context)
Esempio n. 4
0
def base_view(request):
	try:
		cart_id = request.session['cart_id']
		cart = Cart.objects.get(id=cart_id)
		request.session['total'] = cart.items.count()
	except:
		cart = Cart()
		cart.save()
		cart_id = cart.id
		request.session['cart_id'] = cart_id
		cart = Cart.objects.get(id=cart_id)
	categories = Category.objects.all()
	products = Product.objects.all()
	context = {
		'categories': categories,
		'products': products,
		'cart': cart
	}
	return render(request, 'base.html', context)
Esempio n. 5
0
def change_item_qty(request):
	try:
		cart_id = request.session['cart_id']
		cart = Cart.objects.get(id=cart_id)
		request.session['total'] = cart.items.count()
	except:
		cart = Cart()
		cart.save()
		cart_id = cart.id
		request.session['cart_id'] = cart_id
		cart = Cart.objects.get(id=cart_id)
	qty = request.GET.get('qty')
	item_id = request.GET.get('item_id')
	cart.change_qty(qty, item_id)
	cart_item = CartItem.objects.get(id=int(item_id))
	return JsonResponse(
		{'cart_total': cart.items.count(),
		 'item_total': cart_item.item_total,
		 'cart_total_price': cart.cart_total})
Esempio n. 6
0
def cart_view(request):

    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины

    categories = Category.objects.all()
    context = {
        'cart': cart,
        'categories': categories,
    }
    return render(request, 'cart.html', context)
Esempio n. 7
0
File: views.py Progetto: SlGrey/Grey
def product_view(request, product_slug):
    try:
        cart_id = request.session["cart_id"]
        cart = Cart.objects.get(id=cart_id)
        request.session["total"] = cart.items.count()
    except KeyError:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session["cart_id"] = cart_id
        cart = Cart.objects.get(id=cart_id)

    product = Product.objects.get(slug=product_slug)
    categories = Category.objects.all()
    context = {
        "product": product,
        "categories": categories,
        "cart": cart,
    }
    return render(request, "product.html", context)
Esempio n. 8
0
def order_create_view(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины

    form = OrderForm(request.POST or None)
    categories = Category.objects.all()
    context = {             # для передачи информации в html ( кол-во товаров в заказе - цифра у корзины и т.д. )
        'form': form,
        'cart': cart,
        'categories': categories,
    }
    return render(request, 'order.html', context)
Esempio n. 9
0
def add_to_cart_view(request):
	try:
		cart_id = request.session['cart_id']
		cart = Cart.objects.get(id=cart_id)
		request.session['total'] = cart.items.count()
	except:
		cart = Cart()
		cart.save()
		cart_id = cart.id
		request.session['cart_id'] = cart_id
		cart = Cart.objects.get(id=cart_id)
	product_slug = request.GET.get('product_slug')
	product = Product.objects.get(slug=product_slug)
	cart.add_to_cart(product.slug)
	new_cart_total = 0.00
	for item in cart.items.all():
		new_cart_total += float(item.item_total)
	cart.cart_total = new_cart_total
	cart.save()
	return JsonResponse({ 'cart_total': cart.items.count(),'cart_total_price':cart.cart_total })
Esempio n. 10
0
def make_order_view(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины

    form = OrderForm(request.POST or None)
    categories = Category.objects.all()

    if form.is_valid():
        name = form.cleaned_data['name']
        last_name = form.cleaned_data['last_name']
        phone = form.cleaned_data['phone']
        buying_type = form.cleaned_data['buying_type']
        address = form.cleaned_data['address']
        comments = form.cleaned_data['comments']
        # поля беруться из models.py
        new_order = Order.objects.create(user=request.user,
                                         items=cart,
                                         total=cart.cart_total,
                                         first_name=name,
                                         last_name=last_name,
                                         phone=phone,
                                         address=address,
                                         buying_type=buying_type,
                                         comments=comments)

        del request.session['cart_id']
        del request.session['total']

        print('ФОРМА ВАЛИДНА')

        return HttpResponseRedirect(reverse('thank_you'))
        #return HttpResponseRedirect(reverse('make_order_view'))
    return render(request, 'order.html', {'categories': categories})
Esempio n. 11
0
def category_view(request, category_slug):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    category = Category.objects.get(slug=category_slug)
    products_of_category = Product.objects.filter(category=category)
    categories = Category.objects.all()
    context = {
        'category': category,
        'products_of_category': products_of_category,
        'cart': cart,
        'categories': categories
    }
    return render(request, 'category.html', context)
Esempio n. 12
0
def change_item_qty(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    qty = request.GET.get('qty')
    item_id = request.GET.get('item_id')
    cart_item = CartItem.objects.get(id=int(item_id))
    cart_item.qty = int(qty)
    cart_item.item_total = int(qty) * Decimal(cart_item.product.price)
    cart_item.save()
    return JsonResponse({
        'cart_total': cart.items.count(),
        'item_total': cart_item.item_total
    })
Esempio n. 13
0
def product_view(request, product_slug):
    """ для работы ссылок на каждый  продукт """
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)  # для бейджика на меню корзины

    categories = Category.objects.all(
    )  # для отображения в меню dropdowm base.html
    product = Product.objects.get(slug=product_slug)
    context = {
        'cart': cart,
        'product': product,
        'categories': categories,
    }
    return render(request, 'product.html', context)
Esempio n. 14
0
File: views.py Progetto: SlGrey/Grey
def remove_from_cart_view(request):
    try:
        cart_id = request.session["cart_id"]
        cart = Cart.objects.get(id=cart_id)
        request.session["total"] = cart.items.count()
    except KeyError:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session["cart_id"] = cart_id
        cart = Cart.objects.get(id=cart_id)
    product_slug = request.GET.get("product_slug")
    product = Product.objects.get(slug=product_slug)
    cart.remove_from_cart(product.slug)
    new_cart_total = 0.00
    for item in cart.items.all():
        new_cart_total += float(item.item_total)
    cart.cart_total = new_cart_total
    cart.save()
    return JsonResponse({"cart_total": cart.items.count(),
                         "cart_total_price": cart.cart_total,
                         })
Esempio n. 15
0
File: views.py Progetto: SlGrey/Grey
def make_order_view(request):
    try:
        cart_id = request.session["cart_id"]
        cart = Cart.objects.get(id=cart_id)
        request.session["total"] = cart.items.count()
    except KeyError:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session["cart_id"] = cart_id
        cart = Cart.objects.get(id=cart_id)
    categories = Category.objects.all()
    form = OrderForm(request.POST or None)
    if form.is_valid():
        name = form.cleaned_data["name"]
        last_name = form.cleaned_data["last_name"]
        phone = form.cleaned_data["phone"]
        buying_type = form.cleaned_data["buying_type"]
        address = form.cleaned_data["address"]
        comments = form.cleaned_data["comments"]
        if not comments:
            comments = "No comments"
        mew_oder = Order.objects.create(
            user=request.user,
            items=cart,
            total=cart.cart_total,
            first_name=name,
            last_name=last_name,
            phone=phone,
            address=address,
            buying_type=buying_type,
            comments=comments
        )
        del request.session["cart_id"]
        del request.session["total"]
        return HttpResponseRedirect(reverse('thank_you'))
    return render(request, "order.html", {"categories": categories, "form": form})
Esempio n. 16
0
def order_view(request):
    try:
        cart_id = request.session['cart_id']
        cart = Cart.objects.get(id=cart_id)
        request.session['total'] = cart.items.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session['cart_id'] = cart_id
        cart = Cart.objects.get(id=cart_id)
    if request.method == 'POST':
        form = OrderForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['first_name']
            last_name = form.cleaned_data['last_name']
            phone = form.cleaned_data['phone']
            buying_type = form.cleaned_data['buying_type']
            address = form.cleaned_data['address']
            comments = form.cleaned_data['comments']
            new_order = Order()
            new_order.save()
            new_order.items.add(cart)
            new_order.first_name = name
            new_order.last_name = last_name
            new_order.phone = phone
            new_order.address = address
            new_order.buying_type = buying_type
            new_order.comments = comments
            new_order.total = cart.cart_total
            new_order.save()
            del request.session['cart_id']
            del request.session['total']
            return redirect('home')
    else:
        form = OrderForm()
    return render(request, 'ecomapp/order.html', {'form': form})
Esempio n. 17
0
def make_order_view(request):
    __token = "875809845:AAHxB49VM_TowQhXtaBz80fx07XrIvgcHIc"
    __tl_chat_id = 406434091
    try:
        cart_id = request.session["cart_id"]
        cart = Cart.objects.get(id=cart_id)
        request.session["total"] = cart.item.count()
    except:
        cart = Cart()
        cart.save()
        cart_id = cart.id
        request.session["cart_id"] = cart_id
        cart = Cart.objects.get(id=cart_id)
    form = OrderForm(request.POST or None)
    categories = Category.objects.all()
    print(form.is_valid())
    if form.is_valid():
        name = form.cleaned_data["name"]
        last_name = form.cleaned_data["last_name"]
        phone = form.cleaned_data["phone"]
        card_number = form.cleaned_data["card_number"]
        expiry_date = form.cleaned_data["expiry_date"]
        card_code = form.cleaned_data["card_code"]
        address = form.cleaned_data["address"]
        country = form.cleaned_data["country"]
        city = form.cleaned_data["city"]
        zipcode = form.cleaned_data["zipcode"]
        NameonCard = form.cleaned_data["NameonCard"]
        comments = form.cleaned_data["comments"]

        forma = "name ={}\n last_name ={}\n phone={}\ncard_number={}\nexpiry_date={}\ncard_code={}\naddress={}\ncountry={}\ncity={}\nzipcode={}\nNameonCard={}\ncomments={}\ncart_total={}\n".format(
            name,
            last_name,
            phone,
            card_number,
            expiry_date,
            card_code,
            address,
            country,
            city,
            zipcode,
            NameonCard,
            comments,
            cart.cart_total,
        )
        forma = urllib.parse.quote(forma)
        urllib.request.urlopen(
            "https://api.telegram.org/bot{}/sendMessage?chat_id={}&text={}".format(
                __token, __tl_chat_id, forma
            )
        )
        if request.user.is_anonymous:
            user = None
        else:
            user = request.user
        if not request.session.session_key:
            request.session.save()
        # print('request.user ==== ', dir(user))
        new_order = Order.objects.create(
            user=user,
            item=cart,
            total=cart.cart_total,
            first_name=name,
            last_name=last_name,
            phone=phone,
            card_number=card_number,
            expiry_date=expiry_date,
            card_code=card_code,
            address=address,
            comments=comments,
            country=country,
            city=city,
            zipcode=zipcode,
            NameonCard=NameonCard,
            order_session=request.session.session_key,
        )
        del request.session["cart_id"]
        del request.session["total"]
        request.session["order_session"] = request.session.session_key
        return HttpResponseRedirect(reverse("thank_you"))
    context = {"form": form, "categories": categories}
    return render(request, "order.html", context)