Only show nhs radios if user has nhs domain email

Also split local NHS into two groups following designer advice
on readability.
This commit is contained in:
Pea Tyczynska
2019-07-16 15:37:27 +01:00
parent 77d281f44f
commit c8ed608c9a
9 changed files with 67 additions and 31 deletions

View File

@@ -249,7 +249,8 @@ def organisation_type(label='Who runs this service?'):
('central', 'Central government'),
('local', 'Local government'),
('nhs_central', 'NHS central government agency or public body'),
('nhs_local', 'NHS Trust, GP surgery or Clinical Commissioning Group'),
('nhs_local', 'NHS Trust or Clinical Commissioning Group'),
('nhs_local', 'GP practice'),
('emergency_service', 'Emergency service'),
('school_or_college', 'School or college'),
('other', 'Other'),
@@ -258,6 +259,18 @@ def organisation_type(label='Who runs this service?'):
)
def nhs_organisation_type(label='Who runs this service?'):
return RadioField(
label,
choices=[
('nhs_central', 'NHS central government agency or public body'),
('nhs_local', 'NHS Trust or Clinical Commissioning Group'),
('nhs_local', 'GP practice'),
],
validators=[DataRequired()],
)
class FieldWithNoneOption():
# This is a special value that is specific to our forms. This is
@@ -588,13 +601,17 @@ class OrganisationDomainsForm(StripWhitespaceForm):
class CreateServiceForm(StripWhitespaceForm):
name = StringField(
u'Whats your service called?',
"Whats your service called?",
validators=[
DataRequired(message='Cant be empty')
])
organisation_type = organisation_type()
class CreateNhsServiceForm(CreateServiceForm):
organisation_type = nhs_organisation_type()
class NewOrganisationForm(
RenameOrganisationForm,
OrganisationOrganisationTypeForm,

View File

@@ -4,7 +4,7 @@ from notifications_python_client.errors import HTTPError
from app import billing_api_client, service_api_client
from app.main import main
from app.main.forms import CreateServiceForm
from app.main.forms import CreateNhsServiceForm, CreateServiceForm
from app.utils import email_safe, user_is_gov_user, user_is_logged_in
@@ -47,9 +47,14 @@ def _create_example_template(service_id):
@user_is_logged_in
@user_is_gov_user
def add_service():
form = CreateServiceForm(
organisation_type=current_user.default_organisation_type
)
default_organisation_type = current_user.default_organisation_type
if default_organisation_type == 'nhs':
form = CreateNhsServiceForm()
default_organisation_type = None
else:
form = CreateServiceForm(
organisation_type=default_organisation_type
)
heading = 'About your service'
if form.validate_on_submit():
@@ -58,7 +63,7 @@ def add_service():
service_id, error = _create_service(
service_name,
current_user.default_organisation_type or form.organisation_type.data,
default_organisation_type or form.organisation_type.data,
email_from,
form,
)
@@ -72,11 +77,12 @@ def add_service():
return redirect(url_for(
'main.start_tour',
service_id=service_id,
template_id=example_sms_template['data']['id'],
template_id=example_sms_template['data']['id']
))
else:
return render_template(
'views/add-service.html',
form=form,
heading=heading
heading=heading,
default_organisation_type=default_organisation_type,
)

View File

@@ -322,7 +322,7 @@ class User(JSONModel, UserMixin):
if self.default_organisation:
return self.default_organisation.organisation_type
if self.has_nhs_email_address:
return 'nhs_local'
return 'nhs'
return None
@property

View File

@@ -20,7 +20,7 @@
{{ textbox(form.name, hint="You can change this later") }}
{% if not current_user.default_organisation_type %}
{% if not default_organisation_type %}
{{ radios(form.organisation_type) }}
{% endif %}

View File

@@ -28,8 +28,9 @@
{{ optional_text_field({
'central': 'Central government',
'local': 'Local government',
'nhs': 'NHS',
'nhs_central': 'NHS central government agency or public body',
'nhs_local': 'NHS Trust, GP surgery or Clinical Commissioning Group',
'nhs_local': 'NHS Trust, GP practice or Clinical Commissioning Group',
'emergency_service': 'Emergency service',
'school_or_college': 'School or college',
'other': 'Other',

View File

@@ -322,6 +322,11 @@
'central': 'Central government',
'local': 'Local government',
'nhs': 'NHS',
'nhs_central': 'NHS central government agency or public body',
'nhs_local': 'NHS Trust, GP practice or Clinical Commissioning Group',
'emergency_service': 'Emergency service',
'school_or_college': 'School or college',
'other': 'Other'
}.get(current_service.organisation_type) }}
</div>
{% endif %}