Fix qhasuery modification so that conditions are combined
Borrowed from the pyconau-2017 fork To explain the impact of this - without this patch, if a user has their invoice refunded, they are able to buy a new ticket; but t-shirts, dinner tickets and so on do not become available to them again because they are listed has already been in a cart for them. Applying the patch now correctly checks to see if they currently have a ticket. From 731eee0a4c42a5013ee312b1ff50548e4d89a2ff Mon Sep 17 00:00:00 2001 From: Richard Jones <r1chardj0n3s@gmail.com> Date: Sun, 4 Jun 2017 13:22:34 +1000 Subject: [PATCH] Fix query modification so that conditions are combined Previously it was checking if the user has a product from the category in a cart, and if there is no cart that is released (refunded). Not *if the user has a product in a cart that is not released*. This patch combines them. In the absence of a __ne operation in the joining syntax, a double equality check is needed. Signed-off-by: Richard Jones <r1chardj0n3s@gmail.com>
This commit is contained in:
parent
105e6988e5
commit
e546b7d814
1 changed files with 7 additions and 7 deletions
|
@ -152,16 +152,16 @@ class CategoryConditionController(IsMetByFilter, ConditionController):
|
|||
product from a category invoking that item's condition in one of their
|
||||
carts. '''
|
||||
|
||||
active = commerce.Cart.STATUS_ACTIVE
|
||||
paid = commerce.Cart.STATUS_PAID
|
||||
in_user_carts = Q(
|
||||
enabling_category__product__productitem__cart__user=user
|
||||
)
|
||||
released = commerce.Cart.STATUS_RELEASED
|
||||
in_released_carts = Q(
|
||||
enabling_category__product__productitem__cart__status=released
|
||||
enabling_category__product__productitem__cart__user=user,
|
||||
enabling_category__product__productitem__cart__status=active
|
||||
) | Q(
|
||||
enabling_category__product__productitem__cart__user=user,
|
||||
enabling_category__product__productitem__cart__status=paid
|
||||
)
|
||||
queryset = queryset.filter(in_user_carts)
|
||||
queryset = queryset.exclude(in_released_carts)
|
||||
|
||||
return queryset
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue