Coverage for /home/chris/workspace/django-shop/shop/util/cart: 100.00%

# Coverage for /home/chris/workspace/django-shop/shop/util/cart : 100.00%

## 21 statements 21 run 0 missing 0 excluded 0 partial

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # -*- coding: utf-8 -*- from shop.models.cartmodel import Cart from django.contrib.auth.models import AnonymousUser def get_or_create_cart(request): """ Let's inspect the request for session or for user, then either find a matching cart and return it or create a new one bound to the user (if one exists), or to the session. """ cart = None if request.user and not isinstance(request.user, AnonymousUser): # There is a logged in user cart = Cart.objects.filter(user=request.user) # a list if not cart: # if list is empty cart = Cart.objects.create(user=request.user) else: cart = cart[0] # Get the first one from the list else: session = getattr(request, 'session', None) if session != None : # There is a session cart_id = session.get('cart_id') if cart_id: try: cart = Cart.objects.get(pk=cart_id) except Cart.DoesNotExist: cart = None if not cart: cart = Cart.objects.create() session['cart_id'] = cart.id return cart