Fix form validation of cancellation form

This commit is contained in:
Raphael Michel
2022-10-07 12:39:39 +02:00
parent 2409c513d6
commit 6f0fc9ed49
+6 -3
View File
@@ -1178,7 +1178,7 @@ class OrderTransition(OrderView):
} }
) )
def post(self, *args, **kwargs): def post(self, request, *args, **kwargs):
to = self.request.POST.get('status', '') to = self.request.POST.get('status', '')
if self.order.status in (Order.STATUS_PENDING, Order.STATUS_EXPIRED) and to == 'p' and self.mark_paid_form.is_valid(): if self.order.status in (Order.STATUS_PENDING, Order.STATUS_EXPIRED) and to == 'p' and self.mark_paid_form.is_valid():
ps = self.mark_paid_form.cleaned_data['amount'] ps = self.mark_paid_form.cleaned_data['amount']
@@ -1267,7 +1267,8 @@ class OrderTransition(OrderView):
'confirmation mail.')) 'confirmation mail.'))
else: else:
messages.success(self.request, _('The payment has been created successfully.')) messages.success(self.request, _('The payment has been created successfully.'))
elif self.order.cancel_allowed() and to == 'c' and self.mark_canceled_form.is_valid(): elif self.order.cancel_allowed() and to == 'c':
if self.mark_canceled_form.is_valid():
try: try:
cancel_order(self.order.pk, user=self.request.user, cancel_order(self.order.pk, user=self.request.user,
email_comment=self.mark_canceled_form.cleaned_data['comment'], email_comment=self.mark_canceled_form.cleaned_data['comment'],
@@ -1293,12 +1294,14 @@ class OrderTransition(OrderView):
)) ))
messages.success(self.request, _('The order has been canceled.')) messages.success(self.request, _('The order has been canceled.'))
else:
return self.get(self.request, *args, **kwargs)
elif self.order.status == Order.STATUS_PENDING and to == 'e': elif self.order.status == Order.STATUS_PENDING and to == 'e':
mark_order_expired(self.order, user=self.request.user) mark_order_expired(self.order, user=self.request.user)
messages.success(self.request, _('The order has been marked as expired.')) messages.success(self.request, _('The order has been marked as expired.'))
return redirect(self.get_order_url()) return redirect(self.get_order_url())
def get(self, *args, **kwargs): def get(self, request, *args, **kwargs):
to = self.request.GET.get('status', '') to = self.request.GET.get('status', '')
if self.order.status in (Order.STATUS_PENDING, Order.STATUS_EXPIRED) and to == 'p': if self.order.status in (Order.STATUS_PENDING, Order.STATUS_EXPIRED) and to == 'p':
return render(self.request, 'pretixcontrol/order/pay.html', { return render(self.request, 'pretixcontrol/order/pay.html', {