mirror of
https://github.com/pretix/pretix.git
synced 2026-08-13 11:17:01 +00:00
Fix form validation of cancellation form
This commit is contained in:
@@ -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,38 +1267,41 @@ 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':
|
||||||
try:
|
if self.mark_canceled_form.is_valid():
|
||||||
cancel_order(self.order.pk, user=self.request.user,
|
try:
|
||||||
email_comment=self.mark_canceled_form.cleaned_data['comment'],
|
cancel_order(self.order.pk, user=self.request.user,
|
||||||
send_mail=self.mark_canceled_form.cleaned_data['send_email'],
|
email_comment=self.mark_canceled_form.cleaned_data['comment'],
|
||||||
cancel_invoice=self.mark_canceled_form.cleaned_data.get('cancel_invoice', True),
|
send_mail=self.mark_canceled_form.cleaned_data['send_email'],
|
||||||
cancellation_fee=self.mark_canceled_form.cleaned_data.get('cancellation_fee'))
|
cancel_invoice=self.mark_canceled_form.cleaned_data.get('cancel_invoice', True),
|
||||||
except OrderError as e:
|
cancellation_fee=self.mark_canceled_form.cleaned_data.get('cancellation_fee'))
|
||||||
messages.error(self.request, str(e))
|
except OrderError as e:
|
||||||
else:
|
messages.error(self.request, str(e))
|
||||||
self.order.refresh_from_db()
|
else:
|
||||||
if self.order.pending_sum < 0:
|
self.order.refresh_from_db()
|
||||||
messages.success(self.request, _('The order has been canceled. You can now select how you want to '
|
if self.order.pending_sum < 0:
|
||||||
'transfer the money back to the user.'))
|
messages.success(self.request, _('The order has been canceled. You can now select how you want to '
|
||||||
with language(self.order.locale):
|
'transfer the money back to the user.'))
|
||||||
return redirect(reverse('control:event.order.refunds.start', kwargs={
|
with language(self.order.locale):
|
||||||
'event': self.request.event.slug,
|
return redirect(reverse('control:event.order.refunds.start', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'event': self.request.event.slug,
|
||||||
'code': self.order.code
|
'organizer': self.request.event.organizer.slug,
|
||||||
}) + '?start-action=do_nothing&start-mode=partial&start-partial_amount={}&giftcard={}&comment={}'.format(
|
'code': self.order.code
|
||||||
round_decimal(self.order.pending_sum * -1),
|
}) + '?start-action=do_nothing&start-mode=partial&start-partial_amount={}&giftcard={}&comment={}'.format(
|
||||||
'true' if self.req and self.req.refund_as_giftcard else 'false',
|
round_decimal(self.order.pending_sum * -1),
|
||||||
quote(gettext('Order canceled'))
|
'true' if self.req and self.req.refund_as_giftcard else 'false',
|
||||||
))
|
quote(gettext('Order canceled'))
|
||||||
|
))
|
||||||
|
|
||||||
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', {
|
||||||
|
|||||||
Reference in New Issue
Block a user