Beispiel #1
0
def add_to_basket_monthly(request, productID, months):

    uproduct = get_object_or_404(UniqueProduct, id=productID)
    basket = _get_basket(request)

    try:
        item = get_object_or_404(BasketItem,
                                 basket=basket,
                                 item=uproduct,
                                 monthly_order=True,
                                 months=months)
        item.quantity += 1
    except:
        item = BasketItem.objects.create(item=uproduct,
                                         quantity=1,
                                         basket=basket,
                                         monthly_order=True,
                                         months=months)

    item.save()

    if request.is_ajax():
        basket = _get_basket_value(request)
        basket_quantity = '%.2f' % float(basket['basket_quantity'])
        monthly_price = '%.2f' % float(basket['monthly_price'])
        basket_value = '%.2f' % float(basket['total_price'])

        from shop.templatetags.convert_weights import convert_weights
        weight = convert_weights(request, item.item.weight)
        message = _(
            '<div class="message"><div class="text"><h3>%(months)s months of %(item)s added to your Monthly TeaBox! <a href="%(monthly_url)s">Add more</a> or <a href="%(url)s">Checkout now &raquo;</a></h3></div></div>'
        ) % {
            'months': months,
            'item': item.item.parent_product,
            'url': reverse('basket'),
            'monthly_url': reverse('monthly_tea_box'),
        }

        data = {
            'basket_quantity': basket_quantity,
            'monthly_price': monthly_price,
            'message': message,
            'basket_value': basket_value,
        }
        json = simplejson.dumps(data, cls=DjangoJSONEncoder)
        return HttpResponse(json)

    url = request.META.get('HTTP_REFERER', '/')
    return HttpResponseRedirect(url)
Beispiel #2
0
def add_to_basket_monthly(request, productID, months):

    uproduct = get_object_or_404(UniqueProduct, id=productID)
    basket = _get_basket(request)

    try:
        item = get_object_or_404(BasketItem, basket=basket, item=uproduct, monthly_order=True, months=months)
        item.quantity += 1
    except:
        item = BasketItem.objects.create(item=uproduct, quantity=1, basket=basket, monthly_order=True, months=months)

    item.save()

    if request.is_ajax():
        basket = _get_basket_value(request)
        basket_quantity = "%.2f" % float(basket["basket_quantity"])
        monthly_price = "%.2f" % float(basket["monthly_price"])
        basket_value = "%.2f" % float(basket["total_price"])

        from shop.templatetags.convert_weights import convert_weights

        weight = convert_weights(request, item.item.weight)
        message = _(
            '<div class="message"><div class="text"><h3>%(months)s months of %(item)s added to your Monthly TeaBox! <a href="%(monthly_url)s">Add more</a> or <a href="%(url)s">Checkout now &raquo;</a></h3></div></div>'
        ) % {
            "months": months,
            "item": item.item.parent_product,
            "url": reverse("basket"),
            "monthly_url": reverse("monthly_tea_box"),
        }

        data = {
            "basket_quantity": basket_quantity,
            "monthly_price": monthly_price,
            "message": message,
            "basket_value": basket_value,
        }
        json = simplejson.dumps(data, cls=DjangoJSONEncoder)
        return HttpResponse(json)

    url = request.META.get("HTTP_REFERER", "/")
    return HttpResponseRedirect(url)
Beispiel #3
0
def tea_view(request, slug):

    try:
        added = request.session['ADDED']
    except:
        added = None

    if added:
        try:
            thing = get_object_or_404(BasketItem, id=request.session['ADDED'])
            from shop.templatetags.convert_weights import convert_weights
            weight = convert_weights(request, thing.item.weight)
            message = _("1 x %(weight)s%(unit)s added to your basket!") % {
                'weight': weight,
                'unit': RequestContext(request)['weight_unit']
            }
            request.session['ADDED'] = None
        except:
            pass

    tea = get_object_or_404(Product, slug=slug)

    try:
        review = Review.objects.filter(is_published=True,
                                       product=tea,
                                       lang=get_language()).order_by('?')[0]
    except:
        pass

    # IF IT'S A MONTHLY ITEM, LET'S REDIRECT HERE:
    if tea.slug == _('monthly-tea-box'):
        return monthly_tea_box(request)

    recommended = _get_products(request, random=True, exclude=tea.id)[:4]
    prices = UniqueProduct.objects.filter(
        is_active=True, parent_product=tea,
        currency=_get_currency(request)).order_by('weight')

    # IN CASE OF DEALS ON THE PAGE
    multiple_form = AddMultipleItemsToBasket()

    return _render(request, "shop/tea_view.html", locals())
Beispiel #4
0
def tea_view(request, slug):

    try:
        added = request.session["ADDED"]
    except:
        added = None

    if added:
        try:
            thing = get_object_or_404(BasketItem, id=request.session["ADDED"])
            from shop.templatetags.convert_weights import convert_weights

            weight = convert_weights(request, thing.item.weight)
            message = _("1 x %(weight)s%(unit)s added to your basket!") % {
                "weight": weight,
                "unit": RequestContext(request)["weight_unit"],
            }
            request.session["ADDED"] = None
        except:
            pass

    tea = get_object_or_404(Product, slug=slug)

    try:
        review = Review.objects.filter(is_published=True, product=tea, lang=get_language()).order_by("?")[0]
    except:
        pass

    # IF IT'S A MONTHLY ITEM, LET'S REDIRECT HERE:
    if tea.slug == _("monthly-tea-box"):
        return monthly_tea_box(request)

    recommended = _get_products(request, random=True, exclude=tea.id)[:4]
    prices = UniqueProduct.objects.filter(is_active=True, parent_product=tea, currency=_get_currency(request)).order_by(
        "weight"
    )

    # IN CASE OF DEALS ON THE PAGE
    multiple_form = AddMultipleItemsToBasket()

    return _render(request, "shop/tea_view.html", locals())