Example #1
0
def test_new_cart_after_checkout_user(rqst, reg_user):
    rqst.user = reg_user
    cart = CartProxy(rqst)
    cart.checkout()
    assert cart.cart.checked_out is True
    cart2 = CartProxy(rqst)
    assert cart.cart != cart2.cart
    assert cart2.cart.checked_out is False
Example #2
0
def add_to_cart(request, ceph_obj_id, quantity=1):
    # product = CephDataObject.objects.get(id=ceph_obj_id)
    print '*' * 10
    print 'add_to_cart'
    product = CephDataObject.objects.get(id=ceph_obj_id)
    print 'product:', product
    cart = CartProxy(request)
    cart.add(product, compute_price(product.data_class), quantity)
Example #3
0
def test_new_cart_after_checkout_user(rqst, user):
    rqst.user = user
    cart_proxy = CartProxy(rqst)
    cart_proxy.checkout()
    assert cart_proxy.cart.checked_out is True
    cart_proxy2 = CartProxy(rqst)
    assert cart_proxy.cart != cart_proxy2.cart
    assert cart_proxy2.cart.checked_out is False
Example #4
0
def test_new_cart_after_checkout_user(rqst, reg_user):
    rqst.user = reg_user
    cart = CartProxy(rqst)
    cart.checkout()
    assert cart.cart.checked_out is True
    cart2 = CartProxy(rqst)
    assert cart.cart != cart2.cart
    assert cart2.cart.checked_out is False
Example #5
0
def payment_complete(request):
    import os

    cart_proxy = CartProxy(request)
    cart_proxy.clear()
    cart_proxy.cart.delete()
    order_group = OrderGroup.objects.get(pk=request.session['order_group'])
    context = {
        'order_group':
        order_group,
        'order_group_detail_url':
        request.build_absolute_uri(
            reverse('order-details', args={order_group.hash})),
        'invoice_no':
        order_group.hash.hex[:6],
        'contact':
        order_group.contact,
        'settings':
        settings.INVOICE_SETTINGS
    }
    paypalLogger.debug('Processing payment complete...')
    paypalLogger.debug('Setting email context to: ')
    paypalLogger.debug(context)
    html_msg = render_to_string('order/email/order_placed/customer_main.html',
                                context=context)
    text_msg = strip_tags(html_msg)
    # send email to customer
    paypalLogger.debug('Sending email ..')
    msg = EmailMultiAlternatives('Your order',
                                 body=text_msg,
                                 from_email='*****@*****.**',
                                 to=[
                                     order_group.customer.email,
                                 ],
                                 bcc=__get_admins_email())
    #create invoice pdf
    invoice_pdf = render_to_pdf('order/email/order_placed/invoice.html',
                                context)
    temp = tempfile.NamedTemporaryFile(mode='wb', delete=False)
    temp.write(invoice_pdf)
    temp.close()
    file_name = 'invoice_{}.pdf'.format(order_group.hash.hex[:6])
    os.rename(temp.name, file_name)
    #attach and send
    msg.attach_alternative(html_msg, "text/html")
    msg.attach_file(file_name)
    msg.send()
    #clean up
    os.remove(file_name)
    paypalLogger.debug('Email sent to {} and admin email {}'.format(
        order_group.customer.email, __get_admins_email()))

    return render(request, 'payment/payment_complete.html', {
        'section': 'Payment',
        'order_id': order_group.pk
    })
Example #6
0
    def test_new_cart_after_checkout_user(self):
        r = HttpRequest()
        r.session = {}
        r.user = self.user

        cart = CartProxy(r)
        cart.checkout()
        self.assertEquals(cart.cart.checked_out, True)
        cart2 = CartProxy(r)
        self.assertNotEquals(cart.cart, cart2.cart)
        self.assertEquals(cart2.cart.checked_out, False)
Example #7
0
 def setUp(self):
     anon_user = AnonymousUser()
     r = HttpRequest()
     r.session = {}
     r.user = anon_user
     cart = CartProxy(r)
     self.anon_user = anon_user
     self.cart_model = cart.get_cart(r)
     self.cart_proxy = cart
     self.user = User.objects.create(username="******",
                                     password="******",
                                     email="*****@*****.**")
     self.request = r
Example #8
0
def test_get_user_last_cart(user, rqst):
    rqst.user = user
    cart_proxy = CartProxy(rqst)
    cart_proxy.checkout()
    cart_proxy = CartProxy(rqst)
    cart = cart_proxy.get_user_last_cart(user)
    assert cart_proxy.n_carts(user) == 2
    assert cart == cart_proxy.cart
Example #9
0
def checkout(request):
    cart_proxy = CartProxy(request)
    items = []
    cart_total = 0
    for i in cart_proxy:
        items.append(i)
        cart_total += i.total_price
    return render(
        request, 'order/checkout.html',
        dict(
            section='Cart',
            cart=cart_proxy.get_formatted_cart(),
            cart_total=cart_proxy.calculate_total(),
            hideTopCart=True,
        ))
Example #10
0
def test_new_cart_after_checkout_anon_user(rq_anonuser, rqst):
    cart = rq_anonuser
    cart.checkout()
    assert cart.cart.checked_out is True
    cart2 = CartProxy(rqst)
    assert cart.cart != cart2.cart
    assert cart2.cart.checked_out is False
Example #11
0
def test_new_cart_after_checkout_anon_user(cart_proxy_anonuser,
                                           rqst, anon_user):
    cart = cart_proxy_anonuser.cart
    cart_proxy_anonuser.checkout()
    assert cart.checked_out is True
    rqst.user = anon_user
    rqst.session = {}
    cart_proxy2 = CartProxy(rqst)
    assert cart != cart_proxy2.cart
    assert cart_proxy2.cart.checked_out is False
Example #12
0
def place_order(request):
    cart_proxy = CartProxy(request)
    cart_grouped = cart_proxy.get_formatted_cart()
    customer, contact = __get_customer_contact(request)
    total_amount = cart_proxy.calculate_total()
    if ('order_group' in request.session):
        # delete the other that existed in memory and has not been paid
        try:
            previous_order_group = OrderGroup.objects.get(
                pk=request.session['order_group'])
            if previous_order_group.get_payment_status() not in [
                    'PAYMENT RECEIVED',
            ]:
                previous_order_group.delete()
        except OrderGroup.DoesNotExist:
            logging.warning('Order group {} does not exist'.format(
                request.session['order_group']))
            pass
    # create order group
    order_group = OrderGroup(customer=customer,
                             contact=contact,
                             total_amount=total_amount)
    order_group.save()
    request.session['order_group'] = order_group.pk
    for vendor, cart in cart_grouped.items():
        order = Order(order_group=order_group, vendor=vendor)
        order.save()
        order.place_order(
            cart['items'],
            {
                # shipping details
                'type': cart['shipping'].name,
                'cost': cart['shipping'].price,
                'details': request.POST.get('shipping_details', False),
                'status': 'just created',
                'contact': contact
            })
    # redirect to
    return process_payment(request, order_group)
Example #13
0
def get_cart_datasize(request):
    cart = CartProxy(request)
    print '-' * 40
    # print 'cart.cart:', cart.cart
    # print 'cart.cart.id:', cart.cart.id
    # print 'len(cart):', len(cart)
    # print dir(cart)

    total_size = 0
    for item in cart:
        # print 'item:', item
        # print dir(item)
        print 'item.object_id:', item.object_id
        try:
            obj = CephDataObject.objects.get(id=int(item.object_id))
        except CephDataObject.DoesNotExist:
            print 'Item does not exist!'
            cart.remove_item(item.id)
        else:
            print 'obj:', obj
            total_size += obj.size_in_bytes

    print 'total_size:', total_size
    return total_size
Example #14
0
def test_get_user_unexistent_last_cart_(user):
    with pytest.raises(CartDoesNotExist):
        CartProxy.get_user_last_cart(user)
Example #15
0
def remove_from_cart(request, ceph_obj_id):
    cart = CartProxy(request)
    cart.remove_item(ceph_obj_id)
Example #16
0
def remove_all_from_cart(request):
    cart = CartProxy(request)
    if request.user.is_authenticated():
        cart.delete_old_cart(request.user)
Example #17
0
def test_user_n_carts(user, rqst):
    rqst.user = user
    cart_proxy = CartProxy(rqst)
    cart_proxy.checkout()
    cart_proxy = CartProxy(rqst)
    assert cart_proxy.n_carts(user) == 2
Example #18
0
def cart_proxy_anonuser(anon_user, rqst):
    rqst.user = anon_user
    rqst.cart = CartProxy(rqst)
    rqst.session[CART_ID] = rqst.cart.cart.id
    return rqst.cart
Example #19
0
def rq_anonuser(anon_user, rqst):
    rqst.user = anon_user
    cart = CartProxy(rqst)
    return cart