aboutsummaryrefslogtreecommitdiff
path: root/budget/forms.py
diff options
context:
space:
mode:
authorAlexis Metaireau <ametaireau@gmail.com>2011-11-14 07:27:08 -0800
committerAlexis Metaireau <ametaireau@gmail.com>2011-11-14 07:27:08 -0800
commit04becafbddf6cac095d1429a37242fb79a83bba0 (patch)
treedf12a3501733160af125b3b04154cbc063a3de8b /budget/forms.py
parent0fe49c13d5512a2a172c47f3497c0442d909a040 (diff)
parente20c3bdb6bea10d56e72d903952875da53cabd90 (diff)
downloadihatemoney-mirror-04becafbddf6cac095d1429a37242fb79a83bba0.zip
ihatemoney-mirror-04becafbddf6cac095d1429a37242fb79a83bba0.tar.gz
ihatemoney-mirror-04becafbddf6cac095d1429a37242fb79a83bba0.tar.bz2
Merge pull request #66 from aavenel/master
Partial fix to #62 : french numbers should use commas rather than dots
Diffstat (limited to 'budget/forms.py')
-rw-r--r--budget/forms.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/budget/forms.py b/budget/forms.py
index 36bde64..f5c3fb5 100644
--- a/budget/forms.py
+++ b/budget/forms.py
@@ -45,6 +45,12 @@ 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):
+ if value:
+ value[0] = str(value[0]).replace(',', '.')
+ return super(CommaDecimalField, self).process_formdata(value)
class EditProjectForm(Form):
@@ -101,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"))
@@ -128,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):