Combine form classes and rename as BaseForm

This commit is contained in:
leigh-mil 2019-02-27 13:52:09 -05:00
parent 12776c7124
commit dab13034d5
9 changed files with 26 additions and 40 deletions

View File

@ -2,13 +2,13 @@ from wtforms.fields.html5 import EmailField, TelField
from wtforms.fields import StringField, TextAreaField from wtforms.fields import StringField, TextAreaField
from wtforms.validators import Email, Optional from wtforms.validators import Email, Optional
from .forms import CacheableForm from .forms import BaseForm
from .validators import Name, PhoneNumber from .validators import Name, PhoneNumber
from atst.utils.localization import translate from atst.utils.localization import translate
class CCPOReviewForm(CacheableForm): class CCPOReviewForm(BaseForm):
comment = TextAreaField( comment = TextAreaField(
translate("forms.ccpo_review.comment_label"), translate("forms.ccpo_review.comment_label"),
description=translate("forms.ccpo_review.comment_description"), description=translate("forms.ccpo_review.comment_description"),

View File

@ -5,12 +5,12 @@ from wtforms.validators import Required
from atst.forms.validators import PhoneNumber from atst.forms.validators import PhoneNumber
from .forms import CacheableForm from .forms import BaseForm
from .data import REQUIRED_DISTRIBUTIONS from .data import REQUIRED_DISTRIBUTIONS
from atst.utils.localization import translate from atst.utils.localization import translate
class DD254Form(CacheableForm): class DD254Form(BaseForm):
certifying_official = StringField( certifying_official = StringField(
translate("forms.dd_254.certifying_official.label"), translate("forms.dd_254.certifying_official.label"),
description=translate("forms.dd_254.certifying_official.description"), description=translate("forms.dd_254.certifying_official.description"),

View File

@ -5,7 +5,7 @@ from wtforms.fields import RadioField, StringField
from wtforms.validators import Email, DataRequired, Optional from wtforms.validators import Email, DataRequired, Optional
from .fields import SelectField from .fields import SelectField
from .forms import CacheableForm from .forms import BaseForm
from .data import SERVICE_BRANCHES from .data import SERVICE_BRANCHES
from atst.models.user import User from atst.models.user import User
from atst.utils.localization import translate from atst.utils.localization import translate
@ -84,7 +84,7 @@ def inherit_user_field(field_name):
return inherit_field(USER_FIELDS[field_name], required=required) return inherit_field(USER_FIELDS[field_name], required=required)
class EditUserForm(CacheableForm): class EditUserForm(BaseForm):
first_name = inherit_user_field("first_name") first_name = inherit_user_field("first_name")
last_name = inherit_user_field("last_name") last_name = inherit_user_field("last_name")

View File

@ -4,22 +4,16 @@ from flask import current_app, request as http_request
from atst.utils.flash import formatted_flash as flash from atst.utils.flash import formatted_flash as flash
class ValidatedForm(FlaskForm): class BaseForm(FlaskForm):
EMPTY_LIST_FIELD = ["", None] def __init__(self, formdata=None, **kwargs):
formdata = formdata or {}
def perform_extra_validation(self, *args, **kwargs): cached_data = current_app.form_cache.from_request(http_request)
"""Performs any applicable extra validation. Must cached_data.update(formdata)
return True if the form is valid or False otherwise.""" super().__init__(cached_data, **kwargs)
return True
@property @property
def data(self): def data(self):
_data = super().data _data = super().data
for field in _data:
if _data[field].__class__.__name__ == "list":
_data[field] = [
el for el in _data[field] if el not in self.EMPTY_LIST_FIELD
]
_data.pop("csrf_token", None) _data.pop("csrf_token", None)
return _data return _data
@ -28,11 +22,3 @@ class ValidatedForm(FlaskForm):
if not valid: if not valid:
flash("form_errors") flash("form_errors")
return valid return valid
class CacheableForm(ValidatedForm):
def __init__(self, formdata=None, **kwargs):
formdata = formdata or {}
cached_data = current_app.form_cache.from_request(http_request)
cached_data.update(formdata)
super().__init__(cached_data, **kwargs)

View File

@ -1,11 +1,11 @@
from wtforms.fields import TextAreaField from wtforms.fields import TextAreaField
from wtforms.validators import InputRequired from wtforms.validators import InputRequired
from .forms import CacheableForm from .forms import BaseForm
from atst.utils.localization import translate from atst.utils.localization import translate
class InternalCommentForm(CacheableForm): class InternalCommentForm(BaseForm):
text = TextAreaField( text = TextAreaField(
translate("forms.internal_comment.text_label"), translate("forms.internal_comment.text_label"),
default="", default="",

View File

@ -4,12 +4,12 @@ from wtforms.fields.html5 import DateField
from wtforms.fields import StringField, TextAreaField, FileField, FieldList from wtforms.fields import StringField, TextAreaField, FileField, FieldList
from wtforms.validators import Optional, Length from wtforms.validators import Optional, Length
from .forms import CacheableForm from .forms import BaseForm
from atst.utils.localization import translate from atst.utils.localization import translate
class KOReviewForm(CacheableForm): class KOReviewForm(BaseForm):
start_date = DateField( start_date = DateField(
translate("forms.ko_review.start_date_label"), format="%m/%d/%Y" translate("forms.ko_review.start_date_label"), format="%m/%d/%Y"
) )

View File

@ -5,7 +5,7 @@ from wtforms.validators import Email, Length, Optional
from atst.forms.validators import IsNumber, PhoneNumber from atst.forms.validators import IsNumber, PhoneNumber
from .forms import CacheableForm from .forms import BaseForm
from .fields import FormFieldWrapper from .fields import FormFieldWrapper
@ -18,7 +18,7 @@ class OfficerForm(FlaskForm):
invite = BooleanField("Invite to Task Order Builder") invite = BooleanField("Invite to Task Order Builder")
class EditTaskOrderOfficersForm(CacheableForm): class EditTaskOrderOfficersForm(BaseForm):
contracting_officer = FormFieldWrapper(OfficerForm) contracting_officer = FormFieldWrapper(OfficerForm)
contracting_officer_representative = FormFieldWrapper(OfficerForm) contracting_officer_representative = FormFieldWrapper(OfficerForm)

View File

@ -1,11 +1,11 @@
from wtforms.fields import StringField from wtforms.fields import StringField
from wtforms.validators import Length from wtforms.validators import Length
from .forms import CacheableForm from .forms import BaseForm
from atst.utils.localization import translate from atst.utils.localization import translate
class PortfolioForm(CacheableForm): class PortfolioForm(BaseForm):
name = StringField( name = StringField(
translate("forms.portfolio.name_label"), translate("forms.portfolio.name_label"),
validators=[ validators=[

View File

@ -15,7 +15,7 @@ from flask_wtf.file import FileAllowed
from atst.forms.validators import IsNumber, PhoneNumber, RequiredIf from atst.forms.validators import IsNumber, PhoneNumber, RequiredIf
from .forms import CacheableForm from .forms import BaseForm
from .data import ( from .data import (
SERVICE_BRANCHES, SERVICE_BRANCHES,
APP_MIGRATION, APP_MIGRATION,
@ -27,7 +27,7 @@ from .data import (
from atst.utils.localization import translate from atst.utils.localization import translate
class AppInfoForm(CacheableForm): class AppInfoForm(BaseForm):
portfolio_name = StringField( portfolio_name = StringField(
translate("forms.task_order.portfolio_name_label"), translate("forms.task_order.portfolio_name_label"),
description=translate("forms.task_order.portfolio_name_description"), description=translate("forms.task_order.portfolio_name_description"),
@ -88,7 +88,7 @@ class AppInfoForm(CacheableForm):
) )
class FundingForm(CacheableForm): class FundingForm(BaseForm):
performance_length = SelectField( performance_length = SelectField(
translate("forms.task_order.performance_length.label"), translate("forms.task_order.performance_length.label"),
choices=PERIOD_OF_PERFORMANCE_LENGTH, choices=PERIOD_OF_PERFORMANCE_LENGTH,
@ -134,7 +134,7 @@ class UnclassifiedFundingForm(FundingForm):
) )
class OversightForm(CacheableForm): class OversightForm(BaseForm):
ko_first_name = StringField( ko_first_name = StringField(
translate("forms.task_order.oversight_first_name_label") translate("forms.task_order.oversight_first_name_label")
) )
@ -220,11 +220,11 @@ class OversightForm(CacheableForm):
) )
class ReviewForm(CacheableForm): class ReviewForm(BaseForm):
pass pass
class SignatureForm(CacheableForm): class SignatureForm(BaseForm):
level_of_warrant = DecimalField( level_of_warrant = DecimalField(
translate("task_orders.sign.level_of_warrant_label"), translate("task_orders.sign.level_of_warrant_label"),
description=translate("task_orders.sign.level_of_warrant_description"), description=translate("task_orders.sign.level_of_warrant_description"),