Move remove_empty_string filter to BaseForm and use the filter to coerce the role to be None

This commit is contained in:
leigh-mil 2019-04-24 11:15:10 -04:00
parent 5e415edaef
commit e7903ed000
4 changed files with 29 additions and 36 deletions

View File

@ -7,14 +7,7 @@ from .data import ENV_ROLES
class EnvMemberRoleForm(BaseForm):
name = StringField()
user_id = HiddenField()
role = RadioField(choices=ENV_ROLES)
@property
def data(self):
_data = super().data
if _data["role"] == "":
_data["role"] = None
return _data
role = RadioField(choices=ENV_ROLES, coerce=BaseForm.remove_empty_string)
class EnvironmentRolesForm(BaseForm):

View File

@ -217,4 +217,4 @@ REQUIRED_DISTRIBUTIONS = [
("other", "Other as necessary"),
]
ENV_ROLES = [(role.value, role.value) for role in CSPRole] + [("", "No access")]
ENV_ROLES = [(role.value, role.value) for role in CSPRole] + [(None, "No access")]

View File

@ -35,3 +35,7 @@ class BaseForm(FlaskForm):
if not valid:
flash("form_errors")
return valid
@classmethod
def remove_empty_string(cls, value):
return value or None

View File

@ -27,10 +27,6 @@ from .data import (
from atst.utils.localization import translate
def remove_empty_string(value):
return value or None
class AppInfoWithExistingPortfolioForm(BaseForm):
scope = TextAreaField(
translate("forms.task_order.scope_label"),
@ -55,28 +51,28 @@ class AppInfoWithExistingPortfolioForm(BaseForm):
description=translate("forms.task_order.complexity.description"),
choices=APPLICATION_COMPLEXITY,
default=None,
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
widget=ListWidget(prefix_label=False),
option_widget=CheckboxInput(),
)
complexity_other = StringField(
translate("forms.task_order.complexity_other_label"),
default=None,
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
dev_team = SelectMultipleField(
translate("forms.task_order.dev_team.label"),
description=translate("forms.task_order.dev_team.description"),
choices=DEV_TEAM,
default=None,
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
widget=ListWidget(prefix_label=False),
option_widget=CheckboxInput(),
)
dev_team_other = StringField(
translate("forms.task_order.dev_team_other_label"),
default=None,
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
team_experience = RadioField(
translate("forms.task_order.team_experience.label"),
@ -91,7 +87,7 @@ class AppInfoForm(AppInfoWithExistingPortfolioForm):
portfolio_name = StringField(
translate("forms.task_order.portfolio_name_label"),
description=translate("forms.task_order.portfolio_name_description"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[
Required(),
Length(
@ -105,7 +101,7 @@ class AppInfoForm(AppInfoWithExistingPortfolioForm):
translate("forms.task_order.defense_component_label"),
choices=SERVICE_BRANCHES,
default="",
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
@ -147,36 +143,36 @@ class FundingForm(BaseForm):
class UnclassifiedFundingForm(FundingForm):
clin_02 = StringField(
translate("forms.task_order.unclassified_clin_02_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
clin_04 = StringField(
translate("forms.task_order.unclassified_clin_04_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
class OversightForm(BaseForm):
ko_first_name = StringField(
translate("forms.task_order.oversight_first_name_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
ko_last_name = StringField(
translate("forms.task_order.oversight_last_name_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
ko_email = StringField(
translate("forms.task_order.oversight_email_label"),
validators=[Optional(), Email()],
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
ko_phone_number = TelField(
translate("forms.task_order.oversight_phone_label"),
validators=[Optional(), PhoneNumber()],
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
ko_dod_id = StringField(
translate("forms.task_order.oversight_dod_id_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[
RequiredIf(lambda form: form._fields.get("ko_invite").data),
Length(min=10),
@ -187,20 +183,20 @@ class OversightForm(BaseForm):
am_cor = BooleanField(translate("forms.task_order.oversight_am_cor_label"))
cor_first_name = StringField(
translate("forms.task_order.oversight_first_name_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
cor_last_name = StringField(
translate("forms.task_order.oversight_last_name_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
cor_email = StringField(
translate("forms.task_order.oversight_email_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[Optional(), Email()],
)
cor_phone_number = TelField(
translate("forms.task_order.oversight_phone_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[
RequiredIf(lambda form: not form._fields.get("am_cor").data),
Optional(),
@ -209,7 +205,7 @@ class OversightForm(BaseForm):
)
cor_dod_id = StringField(
translate("forms.task_order.oversight_dod_id_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[
RequiredIf(
lambda form: not form._fields.get("am_cor").data
@ -222,25 +218,25 @@ class OversightForm(BaseForm):
so_first_name = StringField(
translate("forms.task_order.oversight_first_name_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
so_last_name = StringField(
translate("forms.task_order.oversight_last_name_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
)
so_email = StringField(
translate("forms.task_order.oversight_email_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[Optional(), Email()],
)
so_phone_number = TelField(
translate("forms.task_order.oversight_phone_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[Optional(), PhoneNumber()],
)
so_dod_id = StringField(
translate("forms.task_order.oversight_dod_id_label"),
filters=[remove_empty_string],
filters=[BaseForm.remove_empty_string],
validators=[
RequiredIf(lambda form: form._fields.get("so_invite").data),
Length(min=10),