Example #1
0
def add_to_basket(request, id):
    uproduct = get_object_or_404(UniqueProduct, pk=id)
    basket = _get_basket(request)

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

    # UPDATE THE USER'S SESSION VARIABLES
    if 'BASKET_QUANTITY' in request.session:
        request.session['BASKET_QUANTITY'] = (
            request.session['BASKET_QUANTITY'] + 1)
    else:
        request.session['BASKET_QUANTITY'] = 1

    if 'BASKET_AMOUNT' in request.session:
        request.session['BASKET_AMOUNT'] = (
            float(request.session['BASKET_AMOUNT']) +
            float(item.item.get_price()))
    else:
        request.session['BASKET_AMOUNT'] = item.item.get_price()

    if request.is_ajax():

        message = render_to_string(
            'shop/snippets/added_to_basket.html', {
                'item': item.item.parent_product,
                'weight': item.item.weight,
                'weight_unit': RequestContext(request)['weight_unit'],
                'url': reverse('basket'),
            })

        basket_amount = '%.2f' % float(
            _get_basket_value(request)['total_price'])
        basket_quantity = '%.2f' % float(
            _get_basket_value(request)['basket_quantity'])
        data = {
            'message': message,
            'basket_quantity': basket_quantity,
            'basket_amount': basket_amount
        }
        json = simplejson.dumps(data, cls=DjangoJSONEncoder)
        return HttpResponse(json)

    url = request.META.get('HTTP_REFERER', '/')
    request.session['ADDED'] = item.id
    return HttpResponseRedirect(url)
Example #2
0
def add_to_basket_multiple(request):

    if request.method == 'POST':

        form = AddMultipleItemsToBasket(request.POST)
        if form.is_valid():

            for i in form.cleaned_data['items']:
                uproduct = i
                basket = _get_basket(request)

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

                # UPDATE THE USER'S SESSION VARIABLES
                try:
                    request.session['BASKET_QUANTITY'] += 1
                    request.session['BASKET_AMOUNT'] += item.item.get_price()
                except:
                    request.session['BASKET_QUANTITY'] = 0
                    request.session['BASKET_AMOUNT'] += item.item.get_price()

            if request.is_ajax():

                message = render_to_string(
                    'shop/snippets/added_to_basket.html', {
                        'item': item.item.parent_product,
                        'weight': item.item.weight,
                        'weight_unit': RequestContext(request)['weight_unit'],
                        'url': reverse('basket'),
                    })

                basket_amount = '%.2f' % float(
                    _get_basket_value(request)['total_price'])
                basket_quantity = '%.2f' % float(
                    _get_basket_value(request)['basket_quantity'])
                data = {
                    'message': message,
                    'basket_quantity': basket_quantity,
                    'basket_amount': basket_amount
                }
                json = simplejson.dumps(data, cls=DjangoJSONEncoder)
                return HttpResponse(json)

    url = request.META.get('HTTP_REFERER', '/')
    return HttpResponseRedirect(url)
Example #3
0
def add_to_basket_multiple(request):

    if request.method == "POST":

        form = AddMultipleItemsToBasket(request.POST)
        if form.is_valid():

            for i in form.cleaned_data["items"]:
                uproduct = i
                basket = _get_basket(request)

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

                # UPDATE THE USER'S SESSION VARIABLES
                try:
                    request.session["BASKET_QUANTITY"] += 1
                    request.session["BASKET_AMOUNT"] += item.item.get_price()
                except:
                    request.session["BASKET_QUANTITY"] = 0
                    request.session["BASKET_AMOUNT"] += item.item.get_price()

            if request.is_ajax():

                message = render_to_string(
                    "shop/snippets/added_to_basket.html",
                    {
                        "item": item.item.parent_product,
                        "weight": item.item.weight,
                        "weight_unit": RequestContext(request)["weight_unit"],
                        "url": reverse("basket"),
                    },
                )

                basket_amount = "%.2f" % float(_get_basket_value(request)["total_price"])
                basket_quantity = "%.2f" % float(_get_basket_value(request)["basket_quantity"])
                data = {"message": message, "basket_quantity": basket_quantity, "basket_amount": basket_amount}
                json = simplejson.dumps(data, cls=DjangoJSONEncoder)
                return HttpResponse(json)

    url = request.META.get("HTTP_REFERER", "/")
    return HttpResponseRedirect(url)
Example #4
0
def order_confirm(request):

    try:
        order = get_object_or_404(Order, id=request.session['ORDER_ID'])
    except:
        problem = _(
            "You don't have any items in your basket, so you can't process an order!"
        )
        return _render(request, 'shop/order-problem.html', locals())

    shopper = order.owner
    order.basket = Basket.objects.get(id=request.session['BASKET_ID'])
    order.save()

    basket = _get_basket_value(request)

    amount_in_cents = int(float(basket['total_price']) *
                          100)  # for stupid stripe...

    # THIS HANDLES STRIPE
    if request.method == 'POST':

        stripe.api_key = settings.STRIPE_SECRET_KEY
        token = request.POST['stripeToken']

        try:
            charge = stripe.Charge.create(
                amount=amount_in_cents,
                currency=basket['currency'].code.lower(),
                card=token,
                description=order.owner.user.email)

            # UPDATE THE ORDER DETAILS
            order.status = Order.STATUS_PAID
            order.date_paid = datetime.now()
            order.save()

            # IF THERE WAS A SINGLE USE DISCOUNT, UPDATE IT
            if order.discount:
                if order.discount.single_use == True:
                    order.discount.is_active = False
                    order.discount.save()

            from emailer.views import _payment_success
            _payment_success(order)

            # NOW CREATE A CUSTOMER PACKAGE
            from logistics.views import _create_customer_package
            _create_customer_package(order)

            return HttpResponseRedirect(
                reverse('order_complete', args=[order.hashkey]))
        except stripe.CardError, e:

            # do we need to do something here like show an error message?!

            pass
Example #5
0
def order_confirm(request):

    try:
        order = get_object_or_404(Order, id=request.session["ORDER_ID"])
    except:
        problem = _("You don't have any items in your basket, so you can't process an order!")
        return _render(request, "shop/order-problem.html", locals())

    shopper = order.owner
    order.basket = Basket.objects.get(id=request.session["BASKET_ID"])
    order.save()

    basket = _get_basket_value(request)

    amount_in_cents = int(float(basket["total_price"]) * 100)  # for stupid stripe...

    # THIS HANDLES STRIPE
    if request.method == "POST":

        stripe.api_key = settings.STRIPE_SECRET_KEY
        token = request.POST["stripeToken"]

        try:
            charge = stripe.Charge.create(
                amount=amount_in_cents,
                currency=basket["currency"].code.lower(),
                card=token,
                description=order.owner.user.email,
            )

            # UPDATE THE ORDER DETAILS
            order.status = Order.STATUS_PAID
            order.date_paid = datetime.now()
            order.save()

            # IF THERE WAS A SINGLE USE DISCOUNT, UPDATE IT
            if order.discount:
                if order.discount.single_use == True:
                    order.discount.is_active = False
                    order.discount.save()

            from emailer.views import _payment_success

            _payment_success(order)

            # NOW CREATE A CUSTOMER PACKAGE
            from logistics.views import _create_customer_package

            _create_customer_package(order)

            return HttpResponseRedirect(reverse("order_complete", args=[order.hashkey]))
        except stripe.CardError, e:

            # do we need to do something here like show an error message?!

            pass
Example #6
0
def add_to_basket(request, id):
    uproduct = get_object_or_404(UniqueProduct, pk=id)
    basket = _get_basket(request)

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

    # UPDATE THE USER'S SESSION VARIABLES
    if "BASKET_QUANTITY" in request.session:
        request.session["BASKET_QUANTITY"] = request.session["BASKET_QUANTITY"] + 1
    else:
        request.session["BASKET_QUANTITY"] = 1

    if "BASKET_AMOUNT" in request.session:
        request.session["BASKET_AMOUNT"] = float(request.session["BASKET_AMOUNT"]) + float(item.item.get_price())
    else:
        request.session["BASKET_AMOUNT"] = item.item.get_price()

    if request.is_ajax():

        message = render_to_string(
            "shop/snippets/added_to_basket.html",
            {
                "item": item.item.parent_product,
                "weight": item.item.weight,
                "weight_unit": RequestContext(request)["weight_unit"],
                "url": reverse("basket"),
            },
        )

        basket_amount = "%.2f" % float(_get_basket_value(request)["total_price"])
        basket_quantity = "%.2f" % float(_get_basket_value(request)["basket_quantity"])
        data = {"message": message, "basket_quantity": basket_quantity, "basket_amount": basket_amount}
        json = simplejson.dumps(data, cls=DjangoJSONEncoder)
        return HttpResponse(json)

    url = request.META.get("HTTP_REFERER", "/")
    request.session["ADDED"] = item.id
    return HttpResponseRedirect(url)
Example #7
0
def order_repeat(request, hash):

    # THE PREVIOUS ORDER ITEM
    old_order = get_object_or_404(Order, hashkey=hash)

    new_order = Order.objects.create(
        date_confirmed=datetime.now(),
        address=old_order.address,
        owner=old_order.owner,
        status=Order.STATUS_CREATED_NOT_PAID,
        invoice_id="TEMP",
    )

    new_order.invoice_id = "TEA-00%s" % (new_order.id)
    new_order.save()

    # we'll also create a basket for them.
    # because IF they want to add something else to the order,
    # they'll need a basket.
    basket = Basket.objects.create(
        date_modified=datetime.now(),
        owner=new_order.owner,
    )

    # now we'll check for replacements/substitutions
    currency = _get_currency(request)

    for item in old_order.items.all():
        if item.item.is_active == False:
            # if it's not available, replace it with the closest matching UniqueProduct
            product = UniqueProduct.objects.filter(
                parent_product=item.item.parent_product,
                sale_price__isnull=True,
                currency=currency,
                is_active=True,
            ).order_by('-price')[0]
            basket_item = BasketItem.objects.create(item=product,
                                                    quantity=item.quantity,
                                                    basket=basket)
            new_order.items.add(basket_item)
        else:
            new_order.items.add(item)

    # for each item attached to the new order, reassign the basket to this new basket
    for item in new_order.items.all():
        item.basket = basket
        item.save()

    request.session['BASKET_ID'] = basket.id
    request.session['ORDER_ID'] = new_order.id

    # FINALLY, GET THE VALUES ETC.
    basket = _get_basket_value(request, order=new_order)

    return _render(request, 'shop/forms/order_repeat.html', locals())
Example #8
0
def _payment_success(order):
    """
    Sends an email to a customer immediately after they successfully complete
    an order on the site. Also sends a confirmation email to the Admins
    """

    # PREPARE THE EMAIL INFORMATION
    recipient = order.owner.email
    activate(order.owner.language)
    subject_line = _("Order Confirmed - %(id)s - %(site)s") % {
        'id': order.invoice_id,
        'site': settings.SITE_NAME,
    }
    template = 'shop/emails/order_confirm_customer.txt'

    # PREPARE THE ORDER
    if order.address.country == 'US':
        weight_unit = 'oz'
    else:
        weight_unit = 'g'

    basket = _get_basket_value(order=order)
    print basket

    for item in basket['basket_items']:
        if item.item.weight:
            if order.address.country == 'US':
                item.weight = weight_converter(item.item.weight)
            else:
                item.weight = item.item.weight
        else:
            item.weight = None

    extra_context = {
        'order': order,
        'items': basket['basket_items'],
        'currency': basket['currency'],
        'total_price': basket['total_price'],
        'discount': basket['discount'],
        'postage_discount': basket['postage_discount'],
        'weight_unit': weight_unit,
    }

    _send_email(recipient, subject_line, template, extra_context)

    # ADMIN EMAIL (reset some of the values!!)
    recipient = settings.SITE_EMAIL
    lang = activate('en')
    template = 'shop/emails/order_confirm_admin.txt'
    _send_email(recipient, subject_line, template, extra_context, admin=True)

    return True
Example #9
0
def _payment_success(order):
    """
    Sends an email to a customer immediately after they successfully complete
    an order on the site. Also sends a confirmation email to the Admins
    """

    # PREPARE THE EMAIL INFORMATION
    recipient = order.owner.email
    activate(order.owner.language)
    subject_line = _("Order Confirmed - %(id)s - %(site)s") % {"id": order.invoice_id, "site": settings.SITE_NAME}
    template = "shop/emails/order_confirm_customer.txt"

    # PREPARE THE ORDER
    if order.address.country == "US":
        weight_unit = "oz"
    else:
        weight_unit = "g"

    basket = _get_basket_value(order=order)
    print basket

    for item in basket["basket_items"]:
        if item.item.weight:
            if order.address.country == "US":
                item.weight = weight_converter(item.item.weight)
            else:
                item.weight = item.item.weight
        else:
            item.weight = None

    extra_context = {
        "order": order,
        "items": basket["basket_items"],
        "currency": basket["currency"],
        "total_price": basket["total_price"],
        "discount": basket["discount"],
        "postage_discount": basket["postage_discount"],
        "weight_unit": weight_unit,
    }

    _send_email(recipient, subject_line, template, extra_context)

    # ADMIN EMAIL (reset some of the values!!)
    recipient = settings.SITE_EMAIL
    lang = activate("en")
    template = "shop/emails/order_confirm_admin.txt"
    _send_email(recipient, subject_line, template, extra_context, admin=True)

    return True
Example #10
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)
Example #11
0
def order_repeat(request, hash):

    # THE PREVIOUS ORDER ITEM
    old_order = get_object_or_404(Order, hashkey=hash)

    new_order = Order.objects.create(
        date_confirmed=datetime.now(),
        address=old_order.address,
        owner=old_order.owner,
        status=Order.STATUS_CREATED_NOT_PAID,
        invoice_id="TEMP",
    )

    new_order.invoice_id = "TEA-00%s" % (new_order.id)
    new_order.save()

    # we'll also create a basket for them.
    # because IF they want to add something else to the order,
    # they'll need a basket.
    basket = Basket.objects.create(date_modified=datetime.now(), owner=new_order.owner)

    # now we'll check for replacements/substitutions
    currency = _get_currency(request)

    for item in old_order.items.all():
        if item.item.is_active == False:
            # if it's not available, replace it with the closest matching UniqueProduct
            product = UniqueProduct.objects.filter(
                parent_product=item.item.parent_product, sale_price__isnull=True, currency=currency, is_active=True
            ).order_by("-price")[0]
            basket_item = BasketItem.objects.create(item=product, quantity=item.quantity, basket=basket)
            new_order.items.add(basket_item)
        else:
            new_order.items.add(item)

    # for each item attached to the new order, reassign the basket to this new basket
    for item in new_order.items.all():
        item.basket = basket
        item.save()

    request.session["BASKET_ID"] = basket.id
    request.session["ORDER_ID"] = new_order.id

    # FINALLY, GET THE VALUES ETC.
    basket = _get_basket_value(request, order=new_order)

    return _render(request, "shop/forms/order_repeat.html", locals())
Example #12
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)
Example #13
0
def basket(request):

    discount = None
    if request.method == "POST":
        form = UpdateDiscountForm(request.POST)
        if form.is_valid():
            try:
                discount = get_object_or_404(Discount, discount_code=form.cleaned_data["discount_code"], is_active=True)
            except:
                discount = None

            if discount:
                request.session["DISCOUNT_ID"] = discount.id
            else:
                discount_error_message = _("Sorry, that's not a valid discount code!")

    basket = _get_basket_value(request, discount=discount)

    form = UpdateDiscountForm()
    return _render(request, "shop/basket.html", locals())
Example #14
0
def basket(request):

    discount = None
    if request.method == 'POST':
        form = UpdateDiscountForm(request.POST)
        if form.is_valid():
            try:
                discount = get_object_or_404(
                    Discount,
                    discount_code=form.cleaned_data['discount_code'],
                    is_active=True)
            except:
                discount = None

            if discount:
                request.session['DISCOUNT_ID'] = discount.id
            else:
                discount_error_message = _(
                    "Sorry, that's not a valid discount code!")

    basket = _get_basket_value(request, discount=discount)

    form = UpdateDiscountForm()
    return _render(request, "shop/basket.html", locals())
def common(request):
    context = {}
    context['paypal_return_url'] = settings.PAYPAL_RETURN_URL
    context['paypal_notify_url'] = settings.PAYPAL_NOTIFY_URL
    context['paypal_business_name'] = settings.PAYPAL_BUSINESS_NAME
    context['paypal_receiver_email'] = settings.PAYPAL_RECEIVER_EMAIL
    context['paypal_submit_url'] = settings.PAYPAL_SUBMIT_URL
    context['stripe_public_key'] = settings.STRIPE_PUBLIC_KEY
    context['stripe_secret_key'] = settings.STRIPE_SECRET_KEY

    context['ga_is_on'] = settings.GA_IS_ON
    context['latestblogs'] = BlogEntry.objects.filter(
        is_draft=False, title__isnull=False).exclude(
            title__exact="None").order_by('-date_added')[:3]
    context['static_url'] = settings.STATIC_URL
    context['thumb_large'] = settings.THUMB_LARGE
    context['thumb_home_large'] = settings.THUMB_HOME_LARGE
    context['thumb_medium'] = settings.THUMB_MEDIUM
    context['thumb_small'] = settings.THUMB_SMALL

    context['date'] = datetime.now()

    # STUFF RELATED TO COUNTRY SPECIFIC SITES
    context['site_url'] = "http://www.minrivertea.com"
    context['analytics_id'] = settings.ANALYTICS_ID
    context['mailchimp_list_id'] = settings.MAILCHIMP_LIST_ID

    # TEA OF THE MONTH
    try:
        totm = Product.objects.filter(totm__month=datetime.now().month,
                                      is_active=True)[0]
    except IndexError:
        totm = None
    context['totm'] = totm

    if get_language() == 'de':
        context['mailchimp_list_id'] = settings.GERMAN_MAILCHIMP_LIST_ID

    context['site_name'] = settings.SITE_NAME  # the loose non-techy name

    # GET THE NAVIGATIONS
    context['main_nav'] = Category.objects.filter(
        is_navigation_item=True).order_by('list_order')
    context['top_nav'] = Page.objects.filter(
        is_top_nav=True).order_by('list_order')

    # REGIONAL STUFF
    context['region'] = _get_region(request)
    if context['region'] == 'US':
        context['weight_unit'] = 'oz'
    else:
        context['weight_unit'] = 'g'

    # currency stuff
    context['currency'] = _get_currency(request)

    # AFFILIATE STUFF
    if settings.AFFILIATE_SESSION_KEY in request.session:
        context['affiliate_session'] = True

    if request.GET.get(settings.AFFILIATE_URL_VARIABLE):
        context[
            'landing_page'] = True  # TODO we should change this to specify which landing page it shoudl show

    # CHANGE THE BASE TEMPLATE FOR ADMIN

    if '/admin-stuff/' in request.path:
        base_template = settings.BASE_TEMPLATE_ADMIN
    else:
        base_template = settings.BASE_TEMPLATE
    context['base_template'] = base_template

    # BASKET STUFF
    try:
        basket = Basket.objects.get(id=request.session['BASKET_ID'])
    except:
        basket = None

    try:
        context['basket_quantity'] = request.session['BASKET_QUANTITY']
        context['basket_amount'] = request.session['BASKET_AMOUNT']
    except:
        basket = _get_basket_value(request)
        context['basket_quantity'] = basket['basket_quantity']
        context['basket_amount'] = basket['total_price']

    return context
Example #16
0
def order_url(request, hash, friend=None):
    order = get_object_or_404(Order, hashkey=hash)
    basket = _get_basket_value(request, order=order)
    return _render(request, "shop/forms/order_confirm.html", locals())
def common(request):
    context = {}
    context['paypal_return_url'] = settings.PAYPAL_RETURN_URL
    context['paypal_notify_url'] = settings.PAYPAL_NOTIFY_URL
    context['paypal_business_name'] = settings.PAYPAL_BUSINESS_NAME
    context['paypal_receiver_email'] = settings.PAYPAL_RECEIVER_EMAIL
    context['paypal_submit_url'] = settings.PAYPAL_SUBMIT_URL
    context['stripe_public_key'] = settings.STRIPE_PUBLIC_KEY
    context['stripe_secret_key'] = settings.STRIPE_SECRET_KEY
    
    context['ga_is_on'] = settings.GA_IS_ON
    context['latestblogs'] = BlogEntry.objects.filter(is_draft=False, title__isnull=False).exclude(title__exact="None").order_by('-date_added')[:3]
    context['static_url'] = settings.STATIC_URL
    context['thumb_large'] = settings.THUMB_LARGE
    context['thumb_home_large'] = settings.THUMB_HOME_LARGE
    context['thumb_medium'] = settings.THUMB_MEDIUM
    context['thumb_small'] = settings.THUMB_SMALL
    
    context['date'] = datetime.now()
    
    
    # STUFF RELATED TO COUNTRY SPECIFIC SITES
    context['site_url'] = "http://www.minrivertea.com"
    context['analytics_id'] = settings.ANALYTICS_ID
    context['mailchimp_list_id'] = settings.MAILCHIMP_LIST_ID  
    
    # TEA OF THE MONTH
    try:
        totm = Product.objects.filter(totm__month=datetime.now().month, is_active=True)[0]
    except IndexError:
        totm = None
    context['totm'] = totm
    
    if get_language() == 'de':
        context['mailchimp_list_id'] = settings.GERMAN_MAILCHIMP_LIST_ID
        
    context['site_name'] = settings.SITE_NAME # the loose non-techy name


    # GET THE NAVIGATIONS
    context['main_nav'] = Category.objects.filter(is_navigation_item=True).order_by('list_order')
    context['top_nav'] = Page.objects.filter(is_top_nav=True).order_by('list_order')
     
             
        
    # REGIONAL STUFF
    context['region'] = _get_region(request)    
    if context['region'] == 'US':
        context['weight_unit'] = 'oz'
    else:
        context['weight_unit'] = 'g'
    
    
    # currency stuff
    context['currency'] = _get_currency(request) 
    

    # AFFILIATE STUFF
    if settings.AFFILIATE_SESSION_KEY in request.session:
        context['affiliate_session'] = True
    
    if request.GET.get(settings.AFFILIATE_URL_VARIABLE):
        context['landing_page'] = True # TODO we should change this to specify which landing page it shoudl show


    # CHANGE THE BASE TEMPLATE FOR ADMIN
    
    if '/admin-stuff/' in request.path:
        base_template = settings.BASE_TEMPLATE_ADMIN
    else:
        base_template = settings.BASE_TEMPLATE
    context['base_template'] = base_template


    # BASKET STUFF
    try:
        basket = Basket.objects.get(id=request.session['BASKET_ID'])
    except:
        basket = None
    
    
    try:
        context['basket_quantity'] = request.session['BASKET_QUANTITY']
        context['basket_amount'] = request.session['BASKET_AMOUNT']
    except:
        basket = _get_basket_value(request)
        context['basket_quantity'] = basket['basket_quantity']
        context['basket_amount'] = basket['total_price']  
    
            
    return context
Example #18
0
def order_url(request, hash, friend=None):
    order = get_object_or_404(Order, hashkey=hash)
    basket = _get_basket_value(request, order=order)
    return _render(request, 'shop/forms/order_confirm.html', locals())