diff --git a/registrasion/views.py b/registrasion/views.py index a4dcceac1b593ab9a8384c64561733926f364136..3d2a3c04f3988d82ccb649182c443a51486477bb 100644 --- a/registrasion/views.py +++ b/registrasion/views.py @@ -5,9 +5,10 @@ from registrasion import util from registrasion.models import commerce from registrasion.models import inventory from registrasion.models import people -from registrasion.controllers.discount import DiscountController +from registrasion.controllers.batch import BatchController from registrasion.controllers.cart import CartController from registrasion.controllers.credit_note import CreditNoteController +from registrasion.controllers.discount import DiscountController from registrasion.controllers.invoice import InvoiceController from registrasion.controllers.product import ProductController from registrasion.exceptions import CartValidationError @@ -170,18 +171,18 @@ def guided_registration(request): category__in=cats, ).select_related("category") - available_products = set(ProductController.available_products( - request.user, - products=all_products, - )) + with BatchController.batch(request.user): + available_products = set(ProductController.available_products( + request.user, + products=all_products, + )) - if len(available_products) == 0: - # We've filled in every category - attendee.completed_registration = True - attendee.save() - return next_step + if len(available_products) == 0: + # We've filled in every category + attendee.completed_registration = True + attendee.save() + return next_step - with CartController.operations_batch(request.user): for category in cats: products = [ i for i in available_products @@ -345,20 +346,21 @@ def product_category(request, category_id): category_id = int(category_id) # Routing is [0-9]+ category = inventory.Category.objects.get(pk=category_id) - products = ProductController.available_products( - request.user, - category=category, - ) - - if not products: - messages.warning( - request, - "There are no products available from category: " + category.name, + with BatchController.batch(request.user): + products = ProductController.available_products( + request.user, + category=category, ) - return redirect("dashboard") - p = _handle_products(request, category, products, PRODUCTS_FORM_PREFIX) - products_form, discounts, products_handled = p + if not products: + messages.warning( + request, + "There are no products available from category: " + category.name, + ) + return redirect("dashboard") + + p = _handle_products(request, category, products, PRODUCTS_FORM_PREFIX) + products_form, discounts, products_handled = p if request.POST and not voucher_handled and not products_form.errors: # Only return to the dashboard if we didn't add a voucher code