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