Remove empty fields from list items

Add notes
This commit is contained in:
leigh-mil 2019-03-04 10:43:10 -05:00
parent dab13034d5
commit 87aa5c4c94
2 changed files with 10 additions and 2 deletions

View File

@ -1,11 +1,11 @@
from flask_wtf import FlaskForm
from .forms import BaseForm
from wtforms.fields import StringField, TextAreaField, FieldList
from wtforms.validators import Required
from atst.forms.validators import ListItemRequired, ListItemsUnique
from atst.utils.localization import translate
class ApplicationForm(FlaskForm):
class ApplicationForm(BaseForm):
name = StringField(
label=translate("forms.application.name_label"), validators=[Required()]
)

View File

@ -3,9 +3,12 @@ from flask import current_app, request as http_request
from atst.utils.flash import formatted_flash as flash
EMPTY_LIST_FIELD = ["", None]
class BaseForm(FlaskForm):
def __init__(self, formdata=None, **kwargs):
# initialize the form with data from the cache
formdata = formdata or {}
cached_data = current_app.form_cache.from_request(http_request)
cached_data.update(formdata)
@ -13,8 +16,13 @@ class BaseForm(FlaskForm):
@property
def data(self):
# remove 'csrf_token' key/value pair
# remove empty strings and None from list fields
_data = super().data
_data.pop("csrf_token", None)
for field in _data:
if _data[field].__class__.__name__ == "list":
_data[field] = [el for el in _data[field] if el not in EMPTY_LIST_FIELD]
return _data
def validate(self, *args, **kwargs):