fix optional and required validations in user forms
This commit is contained in:
parent
a7ef93dad4
commit
d60b798af0
@ -1,7 +1,8 @@
|
|||||||
import pendulum
|
import pendulum
|
||||||
|
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
|
from wtforms.validators import Email, Required, Optional
|
||||||
|
|
||||||
from .fields import SelectField
|
from .fields import SelectField
|
||||||
from .forms import ValidatedForm
|
from .forms import ValidatedForm
|
||||||
@ -10,12 +11,12 @@ from .data import SERVICE_BRANCHES
|
|||||||
from .validators import Alphabet, DateRange, PhoneNumber
|
from .validators import Alphabet, DateRange, PhoneNumber
|
||||||
|
|
||||||
USER_FIELDS = {
|
USER_FIELDS = {
|
||||||
"first_name": StringField("First Name", validators=[Required(), Alphabet()]),
|
"first_name": StringField("First Name", validators=[Alphabet()]),
|
||||||
"last_name": StringField("Last Name", validators=[Required(), Alphabet()]),
|
"last_name": StringField("Last Name", validators=[Alphabet()]),
|
||||||
"email": EmailField(
|
"email": EmailField(
|
||||||
"E-mail Address",
|
"E-mail Address",
|
||||||
description="Enter your preferred contact e-mail address",
|
description="Enter your preferred contact e-mail address",
|
||||||
validators=[Required(), Email()],
|
validators=[Email()],
|
||||||
),
|
),
|
||||||
"phone_number": TelField(
|
"phone_number": TelField(
|
||||||
"Phone Number",
|
"Phone Number",
|
||||||
@ -59,12 +60,27 @@ USER_FIELDS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def inherit_field(unbound_field, required=True):
|
||||||
|
kwargs = deepcopy(unbound_field.kwargs)
|
||||||
|
if not "validators" in kwargs:
|
||||||
|
kwargs["validators"] = []
|
||||||
|
|
||||||
|
if required:
|
||||||
|
kwargs["validators"].append(Required())
|
||||||
|
else:
|
||||||
|
kwargs["validators"].append(Optional())
|
||||||
|
|
||||||
|
return unbound_field.field_class(*unbound_field.args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class EditUserForm(ValidatedForm):
|
class EditUserForm(ValidatedForm):
|
||||||
first_name = USER_FIELDS["first_name"]
|
first_name = inherit_field(USER_FIELDS["first_name"])
|
||||||
last_name = USER_FIELDS["last_name"]
|
last_name = inherit_field(USER_FIELDS["last_name"])
|
||||||
email = USER_FIELDS["email"]
|
email = inherit_field(USER_FIELDS["email"])
|
||||||
phone_number = USER_FIELDS["phone_number"]
|
phone_number = inherit_field(USER_FIELDS["phone_number"], required=False)
|
||||||
service_branch = USER_FIELDS["service_branch"]
|
service_branch = inherit_field(USER_FIELDS["service_branch"], required=False)
|
||||||
citizenship = USER_FIELDS["citizenship"]
|
citizenship = inherit_field(USER_FIELDS["citizenship"], required=False)
|
||||||
designation = USER_FIELDS["designation"]
|
designation = inherit_field(USER_FIELDS["designation"], required=False)
|
||||||
date_latest_training = USER_FIELDS["date_latest_training"]
|
date_latest_training = inherit_field(
|
||||||
|
USER_FIELDS["date_latest_training"], required=False
|
||||||
|
)
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import pendulum
|
import pendulum
|
||||||
from wtforms.fields.html5 import DateField, EmailField, IntegerField, TelField
|
from wtforms.fields.html5 import DateField, EmailField, IntegerField
|
||||||
from wtforms.fields import BooleanField, RadioField, StringField, TextAreaField
|
from wtforms.fields import BooleanField, RadioField, StringField, TextAreaField
|
||||||
from wtforms.validators import Email, Length, Optional, InputRequired, DataRequired
|
from wtforms.validators import Email, Length, Optional, InputRequired, DataRequired
|
||||||
|
|
||||||
from .fields import SelectField
|
from .fields import SelectField
|
||||||
from .forms import ValidatedForm
|
from .forms import ValidatedForm
|
||||||
from .edit_user import USER_FIELDS
|
from .edit_user import USER_FIELDS, inherit_field
|
||||||
from .data import (
|
from .data import (
|
||||||
SERVICE_BRANCHES,
|
SERVICE_BRANCHES,
|
||||||
ASSISTANCE_ORG_TYPES,
|
ASSISTANCE_ORG_TYPES,
|
||||||
DATA_TRANSFER_AMOUNTS,
|
DATA_TRANSFER_AMOUNTS,
|
||||||
COMPLETION_DATE_RANGES,
|
COMPLETION_DATE_RANGES,
|
||||||
)
|
)
|
||||||
from .validators import Alphabet, DateRange, PhoneNumber, IsNumber
|
from .validators import DateRange, IsNumber
|
||||||
from atst.domain.requests import Requests
|
from atst.domain.requests import Requests
|
||||||
|
|
||||||
|
|
||||||
@ -162,36 +162,22 @@ class DetailsOfUseForm(ValidatedForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def inherit_field(unbound_field, append_validators=[]):
|
|
||||||
if "validators" in unbound_field.kwargs:
|
|
||||||
unbound_field.kwargs["validators"] += append_validators
|
|
||||||
return unbound_field.field_class(*unbound_field.args, **unbound_field.kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class InformationAboutYouForm(ValidatedForm):
|
class InformationAboutYouForm(ValidatedForm):
|
||||||
fname_request = USER_FIELDS["first_name"]
|
fname_request = inherit_field(USER_FIELDS["first_name"])
|
||||||
|
|
||||||
lname_request = USER_FIELDS["last_name"]
|
lname_request = inherit_field(USER_FIELDS["last_name"])
|
||||||
|
|
||||||
email_request = EmailField("E-mail Address", validators=[InputRequired(), Email()])
|
email_request = EmailField("E-mail Address", validators=[InputRequired(), Email()])
|
||||||
|
|
||||||
phone_number = inherit_field(
|
phone_number = inherit_field(USER_FIELDS["phone_number"])
|
||||||
USER_FIELDS["phone_number"], append_validators=[InputRequired()]
|
|
||||||
)
|
|
||||||
|
|
||||||
service_branch = USER_FIELDS["service_branch"]
|
service_branch = inherit_field(USER_FIELDS["service_branch"])
|
||||||
|
|
||||||
citizenship = inherit_field(
|
citizenship = inherit_field(USER_FIELDS["citizenship"])
|
||||||
USER_FIELDS["citizenship"], append_validators=[InputRequired()]
|
|
||||||
)
|
|
||||||
|
|
||||||
designation = inherit_field(
|
designation = inherit_field(USER_FIELDS["designation"])
|
||||||
USER_FIELDS["designation"], append_validators=[InputRequired()]
|
|
||||||
)
|
|
||||||
|
|
||||||
date_latest_training = inherit_field(
|
date_latest_training = inherit_field(USER_FIELDS["date_latest_training"])
|
||||||
USER_FIELDS["date_latest_training"], append_validators=[InputRequired()]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class WorkspaceOwnerForm(ValidatedForm):
|
class WorkspaceOwnerForm(ValidatedForm):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user