forked from CGM_Public/pretix_original
Self-service canellations with custom fee: More tolerant decimal parsing
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
import inspect
|
import inspect
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
|
from django import forms
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.core.files import File
|
from django.core.files import File
|
||||||
@@ -764,7 +766,15 @@ class OrderCancelDo(EventViewMixin, OrderDetailMixin, AsyncAction, View):
|
|||||||
fee = self.order.user_cancel_fee
|
fee = self.order.user_cancel_fee
|
||||||
if 'cancel_fee' in request.POST and self.request.event.settings.cancel_allow_user_paid_adjust_fees:
|
if 'cancel_fee' in request.POST and self.request.event.settings.cancel_allow_user_paid_adjust_fees:
|
||||||
fee = fee or Decimal('0.00')
|
fee = fee or Decimal('0.00')
|
||||||
custom_fee = Decimal(request.POST.get('cancel_fee'))
|
fee_in = re.sub('[^0-9.,]', '', request.POST.get('cancel_fee'))
|
||||||
|
try:
|
||||||
|
custom_fee = forms.DecimalField(localize=True).to_python(fee_in)
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
custom_fee = Decimal(fee_in)
|
||||||
|
except:
|
||||||
|
messages.error(request, _('You chose an invalid cancellation fee.'))
|
||||||
|
return redirect(self.get_order_url())
|
||||||
if fee <= custom_fee <= self.order.payment_refund_sum:
|
if fee <= custom_fee <= self.order.payment_refund_sum:
|
||||||
fee = custom_fee
|
fee = custom_fee
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user