From 94ab8fbcc35969f7b659bd1e7810074cd7f51fb4 Mon Sep 17 00:00:00 2001 From: "A.Avenel" Date: Wed, 2 Nov 2011 14:35:38 +0100 Subject: Part of a fix to #62 : french numbers should use commas rather than dots --- budget/forms.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'budget/forms.py') 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): -- cgit v1.1 From e20c3bdb6bea10d56e72d903952875da53cabd90 Mon Sep 17 00:00:00 2001 From: "A.Avenel" Date: Thu, 3 Nov 2011 13:33:11 +0100 Subject: Small fix in CommaDecimalField class --- budget/forms.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'budget/forms.py') diff --git a/budget/forms.py b/budget/forms.py index 8db90be..f5c3fb5 100644 --- a/budget/forms.py +++ b/budget/forms.py @@ -48,7 +48,8 @@ def get_billform_for(project, set_default=True, **kwargs): class CommaDecimalField(DecimalField): """A class to deal with comma in Decimal Field""" def process_formdata(self, value): - value[0] = str(value[0]).replace(',', '.') + if value: + value[0] = str(value[0]).replace(',', '.') return super(CommaDecimalField, self).process_formdata(value) -- cgit v1.1