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 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):
|
class NewProjectForm(Form):
|
||||||
|
|
||||||
name = StringField(label="Project Name")
|
EMPTY_ENVIRONMENT_NAMES = ["", None]
|
||||||
description = TextAreaField(label="Description")
|
|
||||||
environment_name = StringField(label="Environment Name")
|
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)
|
raise ValidationError(message)
|
||||||
|
|
||||||
return _alphabet
|
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