diff --git a/registrasion/forms.py b/registrasion/forms.py index cc4b1b4e..eb6f2949 100644 --- a/registrasion/forms.py +++ b/registrasion/forms.py @@ -120,8 +120,8 @@ def ProductsForm(category, products): # Each Category.RENDER_TYPE value has a subclass here. RENDER_TYPES = { - rego.Category.RENDER_TYPE_QUANTITY : _QuantityBoxProductsForm, - rego.Category.RENDER_TYPE_RADIO : _RadioButtonProductsForm, + rego.Category.RENDER_TYPE_QUANTITY: _QuantityBoxProductsForm, + rego.Category.RENDER_TYPE_RADIO: _RadioButtonProductsForm, } # Produce a subclass of _ProductsForm which we can alter the base_fields on diff --git a/registrasion/templatetags/registrasion_tags.py b/registrasion/templatetags/registrasion_tags.py index a6741c0e..a583f1ea 100644 --- a/registrasion/templatetags/registrasion_tags.py +++ b/registrasion/templatetags/registrasion_tags.py @@ -8,16 +8,19 @@ register = template.Library() ProductAndQuantity = namedtuple("ProductAndQuantity", ["product", "quantity"]) + @register.assignment_tag(takes_context=True) def available_categories(context): ''' Returns all of the available product categories ''' return rego.Category.objects.all() + @register.assignment_tag(takes_context=True) def invoices(context): ''' Returns all of the invoices that this user has. ''' return rego.Invoice.objects.filter(cart__user=context.request.user) + @register.assignment_tag(takes_context=True) def items_pending(context): ''' Returns all of the items that this user has in their current cart, @@ -29,6 +32,7 @@ def items_pending(context): ) return all_items + @register.assignment_tag(takes_context=True) def items_purchased(context): ''' Returns all of the items that this user has purchased ''' diff --git a/registrasion/views.py b/registrasion/views.py index 6d42b2b3..2a82db1d 100644 --- a/registrasion/views.py +++ b/registrasion/views.py @@ -185,6 +185,7 @@ def handle_products(request, category, products, prefix): return products_form, discounts, handled + @transaction.atomic def set_quantities_from_products_form(products_form, current_cart): for product_id, quantity, field_name in products_form.product_quantities(): @@ -197,6 +198,7 @@ def set_quantities_from_products_form(products_form, current_cart): raise ValidationError("Cannot add that stuff") current_cart.end_batch() + def handle_voucher(request, prefix): ''' Handles a voucher form in the given request. Returns the voucher form instance, and whether the voucher code was handled. ''' @@ -225,6 +227,7 @@ def handle_voucher(request, prefix): return (voucher_form, handled) + @login_required def checkout(request): ''' Runs checkout for the current cart of items, ideally generating an