diff --git a/registrasion/views.py b/registrasion/views.py index 416afe0a2d178aab4f65c647f4b5938ff5c2300f..e23b57a1bcb0e3e363208f63740acf8c74627ce2 100644 --- a/registrasion/views.py +++ b/registrasion/views.py @@ -181,33 +181,35 @@ def guided_registration(request): attendee.save() return next_step - for category in cats: - products = [ - i for i in available_products - if i.category == category - ] - - prefix = "category_" + str(category.id) - p = _handle_products(request, category, products, prefix) - products_form, discounts, products_handled = p - - section = GuidedRegistrationSection( - title=category.name, - description=category.description, - discounts=discounts, - form=products_form, - ) - - if products: - # This product category has items to show. - sections.append(section) - # Add this to the list of things to show if the form errors. - request.session[SESSION_KEY].append(category.id) + with CartController.operations_batch(request.user): + for category in cats: + products = [ + i for i in available_products + if i.category == category + ] + + prefix = "category_" + str(category.id) + p = _handle_products(request, category, products, prefix) + products_form, discounts, products_handled = p + + section = GuidedRegistrationSection( + title=category.name, + description=category.description, + discounts=discounts, + form=products_form, + ) - if request.method == "POST" and not products_form.errors: - # This is only saved if we pass each form with no errors, - # and if the form actually has products. - attendee.guided_categories_complete.add(category) + if products: + # This product category has items to show. + sections.append(section) + # Add this to the list of things to show if the form + # errors. + request.session[SESSION_KEY].append(category.id) + + if request.method == "POST" and not products_form.errors: + # This is only saved if we pass each form with no + # errors, and if the form actually has products. + attendee.guided_categories_complete.add(category) if sections and request.method == "POST": for section in sections: