@@ -3,12 +3,13 @@ import sys
from registrasion import forms
from registrasion import models as rego
from registrasion.controllers import discount
from registrasion.controllers.cart import CartController
from registrasion.controllers.invoice import InvoiceController
from registrasion.controllers.product import ProductController
from registrasion.exceptions import CartValidationError
from collections import namedtuple
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib import messages
@@ -318,21 +319,30 @@ def handle_products(request, category, products, prefix):
return products_form, discounts, handled
def set_quantities_from_products_form(products_form, current_cart):
quantities = products_form.product_quantities()
quantities = list(products_form.product_quantities())
product_quantities = [
(rego.Product.objects.get(pk=i[0]), i[1]) for i in quantities
]
field_names = dict(
(i[0][0], i[1][2]) for i in zip(product_quantities, quantities)
)
try:
current_cart.set_quantities(product_quantities)
except ValidationError as ve:
products_form.add_error(None, ve)
except CartValidationError as ve:
for ve_field in ve.error_list:
product, message = ve_field.message
if product in field_names:
field = field_names[product]
else:
field = None
products_form.add_error(field, message)
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. '''