From 69a65ac3ed90fa32cd15a1c25ccd5afc24293424 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Sat, 2 Apr 2016 11:02:01 +1100 Subject: [PATCH] Fixes tests on Django 1.9 --- registrasion/controllers/conditions.py | 18 +++++++++++------- registrasion/controllers/product.py | 7 ++++++- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/registrasion/controllers/conditions.py b/registrasion/controllers/conditions.py index 20320218..a176522d 100644 --- a/registrasion/controllers/conditions.py +++ b/registrasion/controllers/conditions.py @@ -46,10 +46,12 @@ class CategoryConditionController(ConditionController): carts = rego.Cart.objects.filter(user=user, released=False) enabling_products = rego.Product.objects.filter( - category=self.condition.enabling_category) + category=self.condition.enabling_category, + ) products = rego.ProductItem.objects.filter( cart=carts, - product=enabling_products) + product__in=enabling_products, + ) return len(products) > 0 @@ -67,7 +69,8 @@ class ProductConditionController(ConditionController): carts = rego.Cart.objects.filter(user=user, released=False) products = rego.ProductItem.objects.filter( cart=carts, - product=self.condition.enabling_products.all()) + product__in=self.condition.enabling_products.all(), + ) return len(products) > 0 @@ -111,12 +114,12 @@ class TimeOrStockLimitConditionController(ConditionController): list products differently to discounts. ''' if isinstance(self.ceiling, rego.TimeOrStockLimitEnablingCondition): category_products = rego.Product.objects.filter( - category=self.ceiling.categories.all() + category=self.ceiling.categories.all(), ) return self.ceiling.products.all() | category_products else: categories = rego.Category.objects.filter( - discountforcategory__discount=self.ceiling + discountforcategory__discount=self.ceiling, ) return rego.Product.objects.filter( Q(discountforproduct__discount=self.ceiling) | @@ -129,7 +132,7 @@ class TimeOrStockLimitConditionController(ConditionController): reserved_carts = rego.Cart.reserved_carts() product_items = rego.ProductItem.objects.filter( - product=self._products().all() + product__in=self._products().all(), ) product_items = product_items.filter(cart=reserved_carts) @@ -154,5 +157,6 @@ class VoucherConditionController(ConditionController): ''' returns True if the user has the given voucher attached. ''' carts = rego.Cart.objects.filter( user=user, - vouchers=self.condition.voucher) + vouchers=self.condition.voucher, + ) return len(carts) > 0 diff --git a/registrasion/controllers/product.py b/registrasion/controllers/product.py index 88beb8f8..235031e8 100644 --- a/registrasion/controllers/product.py +++ b/registrasion/controllers/product.py @@ -43,7 +43,7 @@ class ProductController(object): carts = rego.Cart.objects.filter(user=user) items = rego.ProductItem.objects.filter( - cart=carts, + cart__in=carts, ) prod_items = items.filter(product=self.product) @@ -52,6 +52,11 @@ class ProductController(object): prod_count = prod_items.aggregate(Sum("quantity"))["quantity__sum"] cat_count = cat_items.aggregate(Sum("quantity"))["quantity__sum"] + if prod_count == None: + prod_count = 0 + if cat_count == None: + cat_count = 0 + prod_limit = self.product.limit_per_user prod_met = prod_limit is None or quantity + prod_count <= prod_limit