Пример #1
0
def update_cart(request, product_id, template="shopping_cart/index.html", form_class=ShoppingCartForm):
    product = Product.objects.get(pk=product_id)

    if request.method == "POST":
	form = form_class(request.POST)
	if form.is_valid():
	    quantity = int(request.POST["quantity"])
	    if not product.is_quantity_available(quantity):
		form = form_class()
		feedback = "Insufficient Stock."
	    else:
		form.change_item_quantity(request, product_id)
		feedback = "Item quantity changed."
	else:
	    feedback = ""

    else:
	form = form_class()
	feedback = ""

    cart = h.get_cart(request.session._session)
    shopping_cart = create_shopping_cart(cart)

    context = h.get_global_context_variables(request.session._session)
    context.update({
		"shopping_cart": shopping_cart,
		"feedback": feedback,
	    })

    return render_to_response(template, context, context_instance=RequestContext(request))
Пример #2
0
def index(request):
    return list_detail.object_list(
	    request,
	    queryset = Product.objects.order_by('?')[:8],
	    template_name = "mall/index.html",
	    extra_context = h.get_global_context_variables(request.session._session),
    )
Пример #3
0
def products_in_store(request, store_name):
    context = h.get_global_context_variables(request.session._session)
    store = get_store(store_name)
    context.update({"store": store})

    return list_detail.object_list(
	    request,
	    queryset = Product.objects.filter(product_group__store=store).order_by("-date_added"),
	    template_name = "store/index.html",
	    extra_context = context,
    )
Пример #4
0
def products_in_category(request, category_name):
    category = get_object_or_404(Category, slug__iexact=category_name)

    context = h.get_global_context_variables(request.session._session)
    context.update({"category": category})
    
    return list_detail.object_list(
	    request,
	    queryset = Product.objects.filter(category=category),
	    template_name = "mall/category.html",
	    extra_context = context,
    )
Пример #5
0
def products_in_department(request, department_name):
    department = get_object_or_404(Department, slug__iexact=department_name)

    context = h.get_global_context_variables(request.session._session)
    context.update({"department": department})

    return list_detail.object_list(
	    request,
	    queryset = Product.objects.filter(category__department=department),
	    template_name = "mall/department.html",
	    extra_context = context,
    )
Пример #6
0
def delete_from_cart(request, product_id, template="shopping_cart/index.html"):
    del request.session[product_id]
    context = h.get_global_context_variables(request.session._session)

    cart = h.get_cart(request.session._session)
    shopping_cart = create_shopping_cart(cart)
    context.update({
	    "feedback": "Item deleted from cart.",
	    "shopping_cart": shopping_cart,
	})

    return render_to_response(template, context, context_instance=RequestContext(request))
Пример #7
0
def set_delivery_address(request, template="account/delivery.html", form_class=DeliveryAddressForm):
    if request.method == "POST":
	form = form_class(request.POST)
	if form.is_valid():
	    form.save(request.user)
	    return redirect("/cart/")

    else:
	form = form_class()

    context = h.get_global_context_variables(request.session._session)
    context.update({"delivery_form": form,})
    return render_to_response(template, context, context_instance=RequestContext(request))
Пример #8
0
def login(request, template="account/login.html", form_class=LoginForm):
    # We might need to re-write this to look something
    # like `django.contrib.auth.views.login` soon.
    if request.method == "POST":
	form = form_class(request.POST)

	if form.login(request):
	    return redirect("/")

    else:
	form = form_class()

    context = h.get_global_context_variables(request.session._session)
    context.update({"form": form,})

    return render_to_response(template, context, context_instance=RequestContext(request))
Пример #9
0
def product_detail(request, store_name, product_id, form_class=ShoppingCartForm):
    product = Product.objects.get(pk=product_id)

    if request.method == "POST":
	form = form_class(request.POST)
	if form.is_valid():
	    product_quantity_in_cart = request.session.get(product_id)
	    if product_quantity_in_cart is None:
		quantity = int(request.POST["quantity"])
		if not product.is_quantity_available(quantity):
		    form = form_class()
		    feedback = "Insufficient Stock."
		else:
		    form.add_item(request, product_id)
		    feedback = "Item added to cart."
	    else:
		quantity = product_quantity_in_cart + int(request.POST["quantity"])
		if not product.is_quantity_available(quantity):
		    form = form_class()
		    feedback = "Insufficient Stock"
		else:
		    form.add_to_item(request, product_id, product_quantity_in_cart)
		    feedback = "Item updated in cart."
	else:
	     feedback = ""

    else:
	form = form_class()
	feedback = ""

    store = get_store(store_name)
    context = h.get_global_context_variables(request.session._session)
    context.update({
	    "shopping_cart_form": form, 
	    "store": store,
	    "feedback": feedback,
	})

    return list_detail.object_detail(
	    request,
	    queryset = Product.objects.all(),
	    template_name = "store/product.html",
	    template_object_name = "product",
	    object_id = product_id,
	    extra_context = context,
    )
Пример #10
0
def products_in_store_product_group(request, store_name, product_group_id):
    store = get_store(store_name)
    product_group = get_object_or_404(ProductGroup, pk=product_group_id)

    context = h.get_global_context_variables(request.session._session)
    context.update({
		"product_list_length": product_group.product_set.count(),
		"product_group": product_group,
		"store_sorter_form": StoreSorterForm,
		"store": store,
	    })

    return list_detail.object_list(
	    request,
	    queryset = Product.objects.filter(product_group=product_group).order_by("-date_added"),
	    template_name = "store/product_group.html",
	    extra_context = context,
	    paginate_by = 8,
    )
Пример #11
0
def register(request, redirect=None, template="account/register.html"):
    """ Buyers' registration page. """

    if request.method == "POST":
	form = RegisterForm(request.POST)
	if form.is_valid():
	    user = form.save(request)

	    next = request.POST.get('next', '')
	    if not next:
		if redirect:
		    next = redirect
		else:
		    next = urlresolvers.reverse('account_profile')
	    return HttpResponseRedirect(next)
    else:
	initial_data = {}
	initial_data['next'] = request.GET.get('next', '')
	form = RegisterForm(initial=initial_data)

    context = h.get_global_context_variables(request.session._session)
    context.update({"register_form": form,})

    return render_to_response(template, context, context_instance=RequestContext(request))
Пример #12
0
def preview_cart(request, template="shopping_cart/index.html"):
    cart = h.get_cart(request.session._session)
    shopping_cart = create_shopping_cart(cart)
    context = h.get_global_context_variables(request.session._session)
    context.update({"shopping_cart": shopping_cart})
    return render_to_response(template, context, context_instance=RequestContext(request))
Пример #13
0
def index(request, template="account/index.html"):
    """ Account home, shows the user's account settings. """

    context = h.get_global_context_variables(request.session._session)

    return render_to_response(template, context, context_instance=RequestContext(request))