From e929e0fcb9785d2f62a5c5e73d4bd7457772844a Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 2 Jan 2019 17:15:59 +0100 Subject: [PATCH] made form flexible --- rowers/forms.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/rowers/forms.py b/rowers/forms.py index f0145b7d..8599496b 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -19,9 +19,29 @@ from django.forms import formset_factory from utils import landingpages from metrics import axes +class FlexibleDecimalField(forms.DecimalField): + + def to_python(self, value): + # check decimal symbol + comma_index = 0 + dot_index = 0 + try: + comma_index = value.index(',') + except ValueError: + pass + try: + dot_index = value.index('.') + except ValueError: + pass + if value: + if comma_index > dot_index: + value = value.replace('.', '').replace(',', '.') + return super(FlexibleDecimalField, self).to_python(value) + # BillingForm form class BillingForm(forms.Form): - amount = forms.FloatField(required=True) + amount = FlexibleDecimalField(required=True,decimal_places=2, + max_digits=8) plan = forms.IntegerField(widget=forms.HiddenInput()) payment_method_nonce = forms.CharField(max_length=255,required=True)