diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index 95bc3a5e5..f6f9b2fc3 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -499,7 +499,7 @@ class OrderChange(OrderView): try: ocm.add_position(item, variation, self.add_form.cleaned_data['price'], - self.add_form.cleaned_data['addon_to']) + self.add_form.cleaned_data.get('addon_to')) except OrderError as e: self.add_form.custom_error = str(e) return False diff --git a/src/tests/control/test_orders.py b/src/tests/control/test_orders.py index 065afb0e7..89b196647 100644 --- a/src/tests/control/test_orders.py +++ b/src/tests/control/test_orders.py @@ -487,6 +487,7 @@ class OrderChangeTests(SoupTest): 'op-{}-itemvar'.format(self.op1.pk): str(self.shirt.pk), 'op-{}-operation'.format(self.op2.pk): '', 'op-{}-itemvar'.format(self.op2.pk): str(self.ticket.pk), + 'add-itemvar'.format(self.op2.pk): str(self.ticket.pk), }) self.op1.refresh_from_db() self.order.refresh_from_db() @@ -504,6 +505,7 @@ class OrderChangeTests(SoupTest): 'op-{}-price'.format(self.op1.pk): '24.00', 'op-{}-operation'.format(self.op2.pk): '', 'op-{}-itemvar'.format(self.op2.pk): str(self.ticket.pk), + 'add-itemvar'.format(self.op2.pk): str(self.ticket.pk), }) self.op1.refresh_from_db() self.order.refresh_from_db() @@ -521,6 +523,7 @@ class OrderChangeTests(SoupTest): 'op-{}-operation'.format(self.op2.pk): '', 'op-{}-itemvar'.format(self.op2.pk): str(self.ticket.pk), 'op-{}-price'.format(self.op2.pk): str(self.op2.price), + 'add-itemvar'.format(self.op2.pk): str(self.ticket.pk), }) self.order.refresh_from_db() assert self.order.positions.count() == 1