Validate and filter environment_names form input
This commit is contained in:
parent
d9e66e04c2
commit
fc07ef5230
@ -1,9 +1,22 @@
|
||||
from flask_wtf import Form
|
||||
from wtforms.fields import StringField, TextAreaField
|
||||
from wtforms.fields import StringField, TextAreaField, FieldList
|
||||
from wtforms.validators import Required
|
||||
from atst.forms.validators import ListItemRequired
|
||||
|
||||
|
||||
class NewProjectForm(Form):
|
||||
|
||||
name = StringField(label="Project Name")
|
||||
description = TextAreaField(label="Description")
|
||||
environment_name = StringField(label="Environment Name")
|
||||
EMPTY_ENVIRONMENT_NAMES = ["", None]
|
||||
|
||||
name = StringField(label="Project Name", validators=[Required()])
|
||||
description = TextAreaField(label="Description", validators=[Required()])
|
||||
environment_names = FieldList(
|
||||
StringField(label="Environment Name"),
|
||||
validators=[ListItemRequired(message="Provide at least one environment name.")],
|
||||
)
|
||||
|
||||
@property
|
||||
def data(self):
|
||||
_data = super(Form, self).data
|
||||
_data["environment_names"] = [n for n in _data["environment_names"] if n not in self.EMPTY_ENVIRONMENT_NAMES]
|
||||
return _data
|
||||
|
@ -51,3 +51,14 @@ def Alphabet(message="Please enter only letters."):
|
||||
raise ValidationError(message)
|
||||
|
||||
return _alphabet
|
||||
|
||||
|
||||
def ListItemRequired(message="Please provide at least one.", empty_values=("", None)):
|
||||
def _list_item_required(form, field):
|
||||
non_empty_values = [v for v in field.data if v not in empty_values]
|
||||
if len(non_empty_values) == 0:
|
||||
raise ValidationError(message)
|
||||
|
||||
return _list_item_required
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user