diff --git a/registrasion/controllers/conditions.py b/registrasion/controllers/conditions.py index 51078016ef16cac2de8ac751e7d86fda21f22e57..72e592a2e88592ae075d10490b62b085fca1435f 100644 --- a/registrasion/controllers/conditions.py +++ b/registrasion/controllers/conditions.py @@ -172,11 +172,20 @@ class ProductConditionController(IsMetByFilter, ConditionController): in_user_carts = Q(enabling_products__productitem__cart__user=user) released = commerce.Cart.STATUS_RELEASED + paid = commerce.Cart.STATUS_PAID + active = commerce.Cart.STATUS_ACTIVE in_released_carts = Q( enabling_products__productitem__cart__status=released ) + not_in_paid_or_active_carts = ~( + Q(enabling_products__productitem__cart__status=paid) | + Q(enabling_products__productitem__cart__status=active) + ) + queryset = queryset.filter(in_user_carts) - queryset = queryset.exclude(in_released_carts) + queryset = queryset.exclude( + in_released_carts & not_in_paid_or_active_carts + ) return queryset