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
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
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
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
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)
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 })
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
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, ))
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)
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
def rq_anonuser(anon_user, rqst): rqst.user = anon_user cart = CartProxy(rqst) return cart
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
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
def remove_all_from_cart(request): cart = CartProxy(request) if request.user.is_authenticated(): cart.delete_old_cart(request.user)
def remove_from_cart(request, ceph_obj_id): cart = CartProxy(request) cart.remove_item(ceph_obj_id)