Changeset - e723ec937b4e
[Not reviewed]
0 1 0
James Polley - 5 years ago 2019-01-20 21:46:27
jp@jamezpolley.com
Add debug logging for product availability checks
1 file changed with 10 insertions and 0 deletions:
0 comments (0 inline, 0 general)
vendor/registrasion/registrasion/controllers/product.py
Show inline comments
 
import itertools
 
import logging
 

	
 
from django.db.models import Case
 
from django.db.models import F, Q
...
 
@@ -23,6 +24,9 @@ class ProductController(object):
 
    def available_products(cls, user, category=None, products=None):
 
        ''' Returns a list of all of the products that are available per
 
        flag conditions from the given categories. '''
 
        logging.debug("Checking available products for user %(user)s: "
 
                      "category %(category)s or products %(product)s",
 
                      {'user': user, 'category': category, 'products': products})
 
        if category is None and products is None:
 
            raise ValueError("You must provide products or a category")
 

	
...
 
@@ -45,14 +49,20 @@ class ProductController(object):
 
            if product_remainders[product.id] > 0
 
        )
 

	
 
        logging.debug("Passed limits: %s", passed_limits)
 

	
 
        failed_and_messages = FlagController.test_flags(
 
            user, products=passed_limits
 
        )
 
        failed_conditions = set(i[0] for i in failed_and_messages)
 

	
 
        logging.debug("Failed conditions: %s", failed_conditions)
 

	
 
        out = list(passed_limits - failed_conditions)
 
        out.sort(key=lambda product: product.order)
 

	
 
        logging.debug("Returning: %s", out)
 

	
 
        return out
 

	
 
    @classmethod
0 comments (0 inline, 0 general)