mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-09 09:19:48 -04:00
Merge pull request #3730 from alphagov/add-govuk-radios-4
Add GOVUK radios [part 4]
This commit is contained in:
@@ -426,26 +426,6 @@ class ForgivingIntegerField(GovukTextInputField):
|
|||||||
return super().__call__(value=value, **kwargs)
|
return super().__call__(value=value, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class OrganisationTypeField(RadioField):
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
*args,
|
|
||||||
include_only=None,
|
|
||||||
validators=None,
|
|
||||||
**kwargs
|
|
||||||
):
|
|
||||||
super().__init__(
|
|
||||||
*args,
|
|
||||||
choices=[
|
|
||||||
(value, label) for value, label in Organisation.TYPES
|
|
||||||
if not include_only or value in include_only
|
|
||||||
],
|
|
||||||
thing='the type of organisation',
|
|
||||||
validators=validators or [],
|
|
||||||
**kwargs
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class FieldWithNoneOption():
|
class FieldWithNoneOption():
|
||||||
|
|
||||||
# This is a special value that is specific to our forms. This is
|
# This is a special value that is specific to our forms. This is
|
||||||
@@ -951,6 +931,26 @@ class OnOffField(GovukRadiosField):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class OrganisationTypeField(GovukRadiosField):
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
*args,
|
||||||
|
include_only=None,
|
||||||
|
validators=None,
|
||||||
|
**kwargs
|
||||||
|
):
|
||||||
|
super().__init__(
|
||||||
|
*args,
|
||||||
|
choices=[
|
||||||
|
(value, label) for value, label in Organisation.TYPES
|
||||||
|
if not include_only or value in include_only
|
||||||
|
],
|
||||||
|
thing='the type of organisation',
|
||||||
|
validators=validators or [],
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# guard against data entries that aren't a role in permissions
|
# guard against data entries that aren't a role in permissions
|
||||||
def filter_by_permissions(valuelist):
|
def filter_by_permissions(valuelist):
|
||||||
if valuelist is None:
|
if valuelist is None:
|
||||||
@@ -1168,10 +1168,8 @@ class OrganisationOrganisationTypeForm(StripWhitespaceForm):
|
|||||||
|
|
||||||
|
|
||||||
class OrganisationCrownStatusForm(StripWhitespaceForm):
|
class OrganisationCrownStatusForm(StripWhitespaceForm):
|
||||||
crown_status = RadioField(
|
crown_status = GovukRadiosField(
|
||||||
(
|
'Is this organisation a crown body?',
|
||||||
'Is this organisation a crown body?'
|
|
||||||
),
|
|
||||||
choices=[
|
choices=[
|
||||||
('crown', 'Yes'),
|
('crown', 'Yes'),
|
||||||
('non-crown', 'No'),
|
('non-crown', 'No'),
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
{% extends "withoutnav_template.html" %}
|
{% extends "withoutnav_template.html" %}
|
||||||
{% from "components/radios.html" import radios %}
|
|
||||||
{% from "components/page-header.html" import page_header %}
|
{% from "components/page-header.html" import page_header %}
|
||||||
{% from "components/page-footer.html" import page_footer %}
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
{% from "components/form.html" import form_wrapper %}
|
{% from "components/form.html" import form_wrapper %}
|
||||||
@@ -20,7 +19,7 @@
|
|||||||
{{ form.name(param_extensions={"hint": {"text": "You can change this later"}}) }}
|
{{ form.name(param_extensions={"hint": {"text": "You can change this later"}}) }}
|
||||||
|
|
||||||
{% if not default_organisation_type %}
|
{% if not default_organisation_type %}
|
||||||
{{ radios(form.organisation_type) }}
|
{{ form.organisation_type }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{{ page_footer('Add service') }}
|
{{ page_footer('Add service') }}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{% extends "withoutnav_template.html" %}
|
{% extends "withoutnav_template.html" %}
|
||||||
{% from "components/page-header.html" import page_header %}
|
{% from "components/page-header.html" import page_header %}
|
||||||
{% from "components/page-footer.html" import page_footer %}
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
{% from "components/radios.html" import radios %}
|
|
||||||
{% from "components/form.html" import form_wrapper %}
|
{% from "components/form.html" import form_wrapper %}
|
||||||
|
|
||||||
{% block per_page_title %}
|
{% block per_page_title %}
|
||||||
@@ -26,8 +25,8 @@
|
|||||||
{{ page_header('New organisation') }}
|
{{ page_header('New organisation') }}
|
||||||
{% call form_wrapper() %}
|
{% call form_wrapper() %}
|
||||||
{{ form.name }}
|
{{ form.name }}
|
||||||
{{ radios(form.organisation_type) }}
|
{{ form.organisation_type }}
|
||||||
{{ radios(form.crown_status) }}
|
{{ form.crown_status }}
|
||||||
{{ page_footer('Save') }}
|
{{ page_footer('Save') }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{% from "components/radios.html" import radios %}
|
|
||||||
{% from "components/page-footer.html" import page_footer %}
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
{% from "components/page-header.html" import page_header %}
|
{% from "components/page-header.html" import page_header %}
|
||||||
{% from "components/form.html" import form_wrapper %}
|
{% from "components/form.html" import form_wrapper %}
|
||||||
@@ -17,7 +16,7 @@
|
|||||||
<div class="govuk-grid-row">
|
<div class="govuk-grid-row">
|
||||||
<div class="govuk-grid-column-five-sixths">
|
<div class="govuk-grid-column-five-sixths">
|
||||||
{% call form_wrapper() %}
|
{% call form_wrapper() %}
|
||||||
{{ radios(form.crown_status) }}
|
{{ form.crown_status }}
|
||||||
{{ page_footer('Save') }}
|
{{ page_footer('Save') }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{% from "components/radios.html" import radios %}
|
|
||||||
{% from "components/page-footer.html" import page_footer %}
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
{% from "components/page-header.html" import page_header %}
|
{% from "components/page-header.html" import page_header %}
|
||||||
{% from "components/form.html" import form_wrapper %}
|
{% from "components/form.html" import form_wrapper %}
|
||||||
@@ -15,7 +14,7 @@
|
|||||||
back_link=url_for('.organisation_settings', org_id=current_org.id)
|
back_link=url_for('.organisation_settings', org_id=current_org.id)
|
||||||
) }}
|
) }}
|
||||||
{% call form_wrapper() %}
|
{% call form_wrapper() %}
|
||||||
{{ radios(form.organisation_type) }}
|
{{ form.organisation_type }}
|
||||||
{{ page_footer('Save') }}
|
{{ page_footer('Save') }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -155,11 +155,11 @@ def test_create_new_organisation_validates(
|
|||||||
)
|
)
|
||||||
assert [
|
assert [
|
||||||
(error['data-error-label'], normalize_spaces(error.text))
|
(error['data-error-label'], normalize_spaces(error.text))
|
||||||
for error in page.select('.govuk-error-message, .error-message')
|
for error in page.select('.govuk-error-message')
|
||||||
] == [
|
] == [
|
||||||
('name', 'Error: Cannot be empty'),
|
('name', 'Error: Cannot be empty'),
|
||||||
('organisation_type', 'Select the type of organisation'),
|
('organisation_type', 'Error: Select the type of organisation'),
|
||||||
('crown_status', 'Select whether this organisation is a crown body'),
|
('crown_status', 'Error: Select whether this organisation is a crown body'),
|
||||||
]
|
]
|
||||||
assert mock_create_organisation.called is False
|
assert mock_create_organisation.called is False
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ def test_get_should_render_add_service_template(
|
|||||||
assert page.select_one('h1').text.strip() == 'About your service'
|
assert page.select_one('h1').text.strip() == 'About your service'
|
||||||
assert page.select_one('input[name=name]').get('value') is None
|
assert page.select_one('input[name=name]').get('value') is None
|
||||||
assert [
|
assert [
|
||||||
label.text.strip() for label in page.select('.multiple-choice label')
|
label.text.strip() for label in page.select('.govuk-radios__item label')
|
||||||
] == [
|
] == [
|
||||||
'Central government',
|
'Central government',
|
||||||
'Local government',
|
'Local government',
|
||||||
@@ -49,7 +49,7 @@ def test_get_should_render_add_service_template(
|
|||||||
'Other',
|
'Other',
|
||||||
]
|
]
|
||||||
assert [
|
assert [
|
||||||
radio['value'] for radio in page.select('.multiple-choice input')
|
radio['value'] for radio in page.select('.govuk-radios__item input')
|
||||||
] == [
|
] == [
|
||||||
'central',
|
'central',
|
||||||
'local',
|
'local',
|
||||||
@@ -193,8 +193,8 @@ def test_add_service_has_to_choose_org_type(
|
|||||||
},
|
},
|
||||||
_expected_status=200,
|
_expected_status=200,
|
||||||
)
|
)
|
||||||
assert normalize_spaces(page.select_one('.error-message').text) == (
|
assert normalize_spaces(page.select_one('.govuk-error-message').text) == (
|
||||||
'Select the type of organisation'
|
'Error: Select the type of organisation'
|
||||||
)
|
)
|
||||||
assert mock_create_service.called is False
|
assert mock_create_service.called is False
|
||||||
assert mock_create_service_template.called is False
|
assert mock_create_service_template.called is False
|
||||||
@@ -223,14 +223,14 @@ def test_get_should_only_show_nhs_org_types_radios_if_user_has_nhs_email(
|
|||||||
assert page.select_one('h1').text.strip() == 'About your service'
|
assert page.select_one('h1').text.strip() == 'About your service'
|
||||||
assert page.select_one('input[name=name]').get('value') is None
|
assert page.select_one('input[name=name]').get('value') is None
|
||||||
assert [
|
assert [
|
||||||
label.text.strip() for label in page.select('.multiple-choice label')
|
label.text.strip() for label in page.select('.govuk-radios__item label')
|
||||||
] == [
|
] == [
|
||||||
'NHS – central government agency or public body',
|
'NHS – central government agency or public body',
|
||||||
'NHS Trust or Clinical Commissioning Group',
|
'NHS Trust or Clinical Commissioning Group',
|
||||||
'GP practice',
|
'GP practice',
|
||||||
]
|
]
|
||||||
assert [
|
assert [
|
||||||
radio['value'] for radio in page.select('.multiple-choice input')
|
radio['value'] for radio in page.select('.govuk-radios__item input')
|
||||||
] == [
|
] == [
|
||||||
'nhs_central',
|
'nhs_central',
|
||||||
'nhs_local',
|
'nhs_local',
|
||||||
|
|||||||
Reference in New Issue
Block a user