Keep list of required fields on user model
This commit is contained in:
parent
2e89f38601
commit
891dcc5b31
@ -2,14 +2,16 @@ import pendulum
|
||||
from copy import deepcopy
|
||||
from wtforms.fields.html5 import DateField, EmailField, TelField
|
||||
from wtforms.fields import RadioField, StringField
|
||||
from wtforms.validators import Email, Required, Optional
|
||||
from wtforms.validators import Email, DataRequired, Optional
|
||||
|
||||
from .fields import SelectField
|
||||
from .forms import ValidatedForm
|
||||
from .data import SERVICE_BRANCHES
|
||||
from atst.models.user import User
|
||||
|
||||
from .validators import Name, DateRange, PhoneNumber
|
||||
|
||||
|
||||
USER_FIELDS = {
|
||||
"first_name": StringField("First Name", validators=[Name()]),
|
||||
"last_name": StringField("Last Name", validators=[Name()]),
|
||||
@ -66,19 +68,25 @@ def inherit_field(unbound_field, required=True):
|
||||
kwargs["validators"] = []
|
||||
|
||||
if required:
|
||||
kwargs["validators"].append(Required())
|
||||
kwargs["validators"].append(DataRequired())
|
||||
else:
|
||||
kwargs["validators"].append(Optional())
|
||||
|
||||
return unbound_field.field_class(*unbound_field.args, **kwargs)
|
||||
|
||||
|
||||
def inherit_user_field(field_name):
|
||||
required = field_name in User.REQUIRED_FIELDS
|
||||
return inherit_field(USER_FIELDS[field_name], required=required)
|
||||
|
||||
|
||||
class EditUserForm(ValidatedForm):
|
||||
first_name = inherit_field(USER_FIELDS["first_name"])
|
||||
last_name = inherit_field(USER_FIELDS["last_name"])
|
||||
email = inherit_field(USER_FIELDS["email"])
|
||||
phone_number = inherit_field(USER_FIELDS["phone_number"])
|
||||
service_branch = inherit_field(USER_FIELDS["service_branch"])
|
||||
citizenship = inherit_field(USER_FIELDS["citizenship"])
|
||||
designation = inherit_field(USER_FIELDS["designation"])
|
||||
date_latest_training = inherit_field(USER_FIELDS["date_latest_training"])
|
||||
|
||||
first_name = inherit_user_field("first_name")
|
||||
last_name = inherit_user_field("last_name")
|
||||
email = inherit_user_field("email")
|
||||
phone_number = inherit_user_field("phone_number")
|
||||
service_branch = inherit_user_field("service_branch")
|
||||
citizenship = inherit_user_field("citizenship")
|
||||
designation = inherit_user_field("designation")
|
||||
date_latest_training = inherit_user_field("date_latest_training")
|
||||
|
@ -164,19 +164,12 @@ class DetailsOfUseForm(ValidatedForm):
|
||||
|
||||
class InformationAboutYouForm(ValidatedForm):
|
||||
fname_request = inherit_field(USER_FIELDS["first_name"])
|
||||
|
||||
lname_request = inherit_field(USER_FIELDS["last_name"])
|
||||
|
||||
email_request = inherit_field(USER_FIELDS["email"])
|
||||
|
||||
phone_number = inherit_field(USER_FIELDS["phone_number"])
|
||||
|
||||
service_branch = inherit_field(USER_FIELDS["service_branch"])
|
||||
|
||||
citizenship = inherit_field(USER_FIELDS["citizenship"])
|
||||
|
||||
designation = inherit_field(USER_FIELDS["designation"])
|
||||
|
||||
date_latest_training = inherit_field(USER_FIELDS["date_latest_training"])
|
||||
|
||||
|
||||
|
@ -26,6 +26,18 @@ class User(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
designation = Column(String)
|
||||
date_latest_training = Column(Date)
|
||||
|
||||
REQUIRED_FIELDS = [
|
||||
"email",
|
||||
"dod_id",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"phone_number",
|
||||
"service_branch",
|
||||
"citizenship",
|
||||
"designation",
|
||||
"date_latest_training",
|
||||
]
|
||||
|
||||
@property
|
||||
def atat_permissions(self):
|
||||
return self.atat_role.permissions
|
||||
|
@ -13,9 +13,7 @@ def test_edit_user_form_requires_all_fields():
|
||||
form_data = ImmutableMultiDict(user_data)
|
||||
form = EditUserForm(form_data)
|
||||
assert not form.validate()
|
||||
assert form.errors == {
|
||||
'date_latest_training': ['This field is required.']
|
||||
}
|
||||
assert form.errors == {"date_latest_training": ["This field is required."]}
|
||||
|
||||
|
||||
def test_edit_user_form_valid_with_all_fields():
|
||||
|
Loading…
x
Reference in New Issue
Block a user