Minor logic and naming fixes

This commit is contained in:
Montana
2019-01-21 10:25:31 -05:00
parent d51663e075
commit 62a3d89484
3 changed files with 12 additions and 8 deletions

View File

@@ -140,8 +140,10 @@ class OversightForm(CacheableForm):
cor_dod_id = StringField(
translate("forms.task_order.oversight_dod_id_label"),
validators=[
RequiredIf(lambda form: not form._fields.get("am_cor").data),
RequiredIf(lambda form: form._fields.get("cor_invite").data),
RequiredIf(
lambda form: not form._fields.get("am_cor").data
and form._fields.get("cor_invite").data
),
Length(min=10),
IsNumber(),
],

View File

@@ -80,19 +80,19 @@ def ListItemsUnique(message=translate("forms.validators.list_items_unique_messag
return _list_items_unique
def RequiredIf(other_field, message=translate("forms.validators.is_required")):
def RequiredIf(criteria_function, message=translate("forms.validators.is_required")):
""" A validator which makes a field required only if another field
has a truthy value
Args:
other_field_value (function): calling this on form results in
the boolean value of another field that we want to check against;
criteria_function (function): calling this function on form results
in a boolean value that we want to check against;
if it's True, we require the field
message (str): an optional message to display if the field is
required but hasNone value
"""
def _required_if(form, field):
if other_field(form):
if criteria_function(form):
if field.data is None:
raise ValidationError(message)
else: