From 542abb3c96b4ac124c0bbbde3d8bf753e149ce5c Mon Sep 17 00:00:00 2001 From: Andrew Croce Date: Tue, 25 Sep 2018 14:35:02 -0400 Subject: [PATCH 1/6] Make BA code optional --- atst/forms/financial.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/atst/forms/financial.py b/atst/forms/financial.py index 4238df60..854947dd 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -2,7 +2,7 @@ import re import pendulum from wtforms.fields.html5 import DateField, EmailField from wtforms.fields import StringField, FileField -from wtforms.validators import InputRequired, Required, Email, Regexp +from wtforms.validators import InputRequired, Required, Email, Regexp, Optional from flask_wtf.file import FileAllowed from atst.domain.exceptions import NotFoundError @@ -121,9 +121,9 @@ class BaseFinancialForm(ValidatedForm): ) ba_code = StringField( - "Program Budget Activity (BA) Code", + "Program Budget Activity (BA) Code (Optional)", description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by a letter.", - validators=[Required(), Regexp(BA_CODE_REGEX)], + validators=[Optional(), Regexp(BA_CODE_REGEX)], ) fname_co = StringField("KO First Name", validators=[Required()]) From 68206307fdb1551236b9970c6d8305ae67adbe2e Mon Sep 17 00:00:00 2001 From: Montana Date: Tue, 25 Sep 2018 17:04:10 -0400 Subject: [PATCH 2/6] Take out Optional() validator for tests to pass --- atst/forms/financial.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atst/forms/financial.py b/atst/forms/financial.py index 854947dd..64d75859 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -2,7 +2,7 @@ import re import pendulum from wtforms.fields.html5 import DateField, EmailField from wtforms.fields import StringField, FileField -from wtforms.validators import InputRequired, Required, Email, Regexp, Optional +from wtforms.validators import InputRequired, Required, Email, Regexp from flask_wtf.file import FileAllowed from atst.domain.exceptions import NotFoundError @@ -123,7 +123,7 @@ class BaseFinancialForm(ValidatedForm): ba_code = StringField( "Program Budget Activity (BA) Code (Optional)", description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by a letter.", - validators=[Optional(), Regexp(BA_CODE_REGEX)], + validators=[Regexp(BA_CODE_REGEX)], ) fname_co = StringField("KO First Name", validators=[Required()]) From 5fd1dac2571a75d2bf1455c0628cd46591cef823 Mon Sep 17 00:00:00 2001 From: Andrew Croce Date: Wed, 26 Sep 2018 08:21:10 -0400 Subject: [PATCH 3/6] Update BA code description and validation message to describe the letter as optional --- atst/forms/financial.py | 2 +- js/lib/input_validations.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/atst/forms/financial.py b/atst/forms/financial.py index 64d75859..d184e6b8 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -122,7 +122,7 @@ class BaseFinancialForm(ValidatedForm): ba_code = StringField( "Program Budget Activity (BA) Code (Optional)", - description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by a letter.", + description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by an optional letter.", validators=[Regexp(BA_CODE_REGEX)], ) diff --git a/js/lib/input_validations.js b/js/lib/input_validations.js index 4df1f7dd..80b36f9a 100644 --- a/js/lib/input_validations.js +++ b/js/lib/input_validations.js @@ -77,7 +77,7 @@ export default { }, match: /[0-9]{2}\w?$/, unmask: [], - validationError: 'Please enter a valid BA Code. Note that it should be two digits, followed by a letter.' + validationError: 'Please enter a valid BA Code. Note that it should be two digits, followed by an optional letter.' }, workspaceName: { mask: false, From 4c2d143e5636b4a0575bc41248af2723c3f5d869 Mon Sep 17 00:00:00 2001 From: Montana Date: Wed, 26 Sep 2018 13:07:04 -0400 Subject: [PATCH 4/6] Use Optional validator for BA code --- atst/forms/financial.py | 4 ++-- tests/forms/test_financial.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/atst/forms/financial.py b/atst/forms/financial.py index d184e6b8..71dd65f4 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -2,7 +2,7 @@ import re import pendulum from wtforms.fields.html5 import DateField, EmailField from wtforms.fields import StringField, FileField -from wtforms.validators import InputRequired, Required, Email, Regexp +from wtforms.validators import InputRequired, Required, Optional, Email, Regexp from flask_wtf.file import FileAllowed from atst.domain.exceptions import NotFoundError @@ -123,7 +123,7 @@ class BaseFinancialForm(ValidatedForm): ba_code = StringField( "Program Budget Activity (BA) Code (Optional)", description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by an optional letter.", - validators=[Regexp(BA_CODE_REGEX)], + validators=[Optional(), Regexp(BA_CODE_REGEX)], ) fname_co = StringField("KO First Name", validators=[Required()]) diff --git a/tests/forms/test_financial.py b/tests/forms/test_financial.py index 970e4b6b..dc89ab30 100644 --- a/tests/forms/test_financial.py +++ b/tests/forms/test_financial.py @@ -74,8 +74,8 @@ def test_treasury_code_validation(input_, expected): ], ) def test_ba_code_validation(input_, expected): - form_data = {"ba_code": input_} - form = FinancialForm(data=form_data) + form_data = ImmutableMultiDict([("ba_code", input_)]) + form = FinancialForm(form_data) form.validate() is_valid = "ba_code" not in form.errors From 522eeb4b996e450f1418bcc359af32cefa195f59 Mon Sep 17 00:00:00 2001 From: Andrew Croce Date: Thu, 27 Sep 2018 09:59:32 -0400 Subject: [PATCH 5/6] Nope, not optional --- atst/forms/financial.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/atst/forms/financial.py b/atst/forms/financial.py index 71dd65f4..fa60ed8d 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -121,9 +121,9 @@ class BaseFinancialForm(ValidatedForm): ) ba_code = StringField( - "Program Budget Activity (BA) Code (Optional)", + "Program Budget Activity (BA) Code", description="BA Code is used to identify the purposes, projects, or types of activities financed by the appropriation fund.
It should be two digits, followed by an optional letter.", - validators=[Optional(), Regexp(BA_CODE_REGEX)], + validators=[Required(), Regexp(BA_CODE_REGEX)], ) fname_co = StringField("KO First Name", validators=[Required()]) From 5f0bfbd84c91716ec8b01807f49e266e19ecae50 Mon Sep 17 00:00:00 2001 From: Montana Date: Thu, 27 Sep 2018 11:40:04 -0400 Subject: [PATCH 6/6] Revert test changes --- atst/forms/financial.py | 2 +- tests/forms/test_financial.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/atst/forms/financial.py b/atst/forms/financial.py index fa60ed8d..ea81ea1b 100644 --- a/atst/forms/financial.py +++ b/atst/forms/financial.py @@ -2,7 +2,7 @@ import re import pendulum from wtforms.fields.html5 import DateField, EmailField from wtforms.fields import StringField, FileField -from wtforms.validators import InputRequired, Required, Optional, Email, Regexp +from wtforms.validators import InputRequired, Required, Email, Regexp from flask_wtf.file import FileAllowed from atst.domain.exceptions import NotFoundError diff --git a/tests/forms/test_financial.py b/tests/forms/test_financial.py index dc89ab30..970e4b6b 100644 --- a/tests/forms/test_financial.py +++ b/tests/forms/test_financial.py @@ -74,8 +74,8 @@ def test_treasury_code_validation(input_, expected): ], ) def test_ba_code_validation(input_, expected): - form_data = ImmutableMultiDict([("ba_code", input_)]) - form = FinancialForm(form_data) + form_data = {"ba_code": input_} + form = FinancialForm(data=form_data) form.validate() is_valid = "ba_code" not in form.errors