aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA.Avenel <avenel.alexandre@gmail.com>2011-11-02 14:35:38 +0100
committerA.Avenel <avenel.alexandre@gmail.com>2011-11-02 14:35:38 +0100
commit94ab8fbcc35969f7b659bd1e7810074cd7f51fb4 (patch)
tree97a8428fdfc7f7a9d6cb698e7758ce6b9d0522de
parent342a80e22515bf94d8bb0b03bb9efde50e48c2e6 (diff)
downloadihatemoney-mirror-94ab8fbcc35969f7b659bd1e7810074cd7f51fb4.zip
ihatemoney-mirror-94ab8fbcc35969f7b659bd1e7810074cd7f51fb4.tar.gz
ihatemoney-mirror-94ab8fbcc35969f7b659bd1e7810074cd7f51fb4.tar.bz2
Part of a fix to #62 : french numbers should use commas rather than dots
-rw-r--r--budget/forms.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/budget/forms.py b/budget/forms.py
index 7342762..713bcfb 100644
--- a/budget/forms.py
+++ b/budget/forms.py
@@ -45,6 +45,11 @@ def get_billform_for(project, set_default=True, **kwargs):
form.set_default()
return form
+class CommaDecimalField(DecimalField):
+ """A class to deal with comma in Decimal Field"""
+ def process_formdata(self, value):
+ value[0] = str(value[0]).replace(',', '.')
+ return super(CommaDecimalField, self).process_formdata(value)
class EditProjectForm(Form):
@@ -102,7 +107,7 @@ class BillForm(Form):
date = DateField(_("Date"), validators=[Required()], default=datetime.now)
what = TextField(_("What?"), validators=[Required()])
payer = SelectField(_("Payer"), validators=[Required()], coerce=int)
- amount = DecimalField(_("Amount paid"), validators=[Required()])
+ amount = CommaDecimalField(_("Amount paid"), validators=[Required()])
payed_for = SelectMultipleField(_("For whom?"),
validators=[Required()], widget=select_multi_checkbox, coerce=int)
submit = SubmitField(_("Send the bill"))
@@ -129,7 +134,9 @@ class BillForm(Form):
def validate_amount(self, field):
if field.data < 0:
- raise ValidationError(_("Bills can't be negative"))
+ field.data = abs(field.data)
+ elif field.data == 0:
+ raise ValidationError(_("Bills can't be null"))
class MemberForm(Form):