From 6f13b8a179bbc4acec9f3deee3c08d0d919bcf20 Mon Sep 17 00:00:00 2001 From: graham-dds Date: Mon, 9 Sep 2019 15:31:48 -0400 Subject: [PATCH] Add WTForms min and max validation for clin $ - above 0 and below $1,000,000,000.00, inclusive --- atst/forms/task_order.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/atst/forms/task_order.py b/atst/forms/task_order.py index 579c0cc0..e9bd9531 100644 --- a/atst/forms/task_order.py +++ b/atst/forms/task_order.py @@ -7,7 +7,7 @@ from wtforms.fields import ( HiddenField, ) from wtforms.fields.html5 import DateField -from wtforms.validators import Required, Optional, Length +from wtforms.validators import Required, Optional, Length, NumberRange from flask_wtf import FlaskForm from datetime import datetime @@ -49,11 +49,21 @@ class CLINForm(FlaskForm): ) total_amount = DecimalField( label=translate("task_orders.form.total_funds_label"), - validators=[Optional()], + validators=[ + Optional(), + NumberRange( + 0, 1000000000, "dollar amount must be from $0.00 to $1,000,000,000.00" + ), + ], ) obligated_amount = DecimalField( label=translate("task_orders.form.obligated_funds_label"), - validators=[Optional()], + validators=[ + Optional(), + NumberRange( + 0, 1000000000, "dollar amount must be from $0.00 to $1,000,000,000.00" + ), + ], ) def validate(self, *args, **kwargs): @@ -93,6 +103,12 @@ class CLINForm(FlaskForm): ) valid = False + if self.total_amount.data < self.obligated_amount.data: + self.obligated_amount.errors.append( + translate("forms.task_order.obligated_amount") + ) + valid = False + return valid