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