Allow editing of an organisation’s details

Adds a user interface for updating all the columns added in
https://github.com/alphagov/notifications-api/pull/2368

Sorry for the mega commit 😓
This commit is contained in:
Chris Hill-Scott
2019-02-19 17:26:16 +00:00
parent 307e959fd6
commit 936883bf7b
19 changed files with 1247 additions and 126 deletions

View File

@@ -0,0 +1,28 @@
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% extends "org_template.html" %}
{% block org_page_title %}
Data sharing and financial agreement
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Data sharing and financial agreement</h1>
<div class="grid-row">
<div class="column-five-sixths">
{% call form_wrapper() %}
{{ radios(
form.agreement_signed,
option_hints={
'yes': 'Users will be told their organisation has already signed the agreement',
'no': 'Users will be prompted to sign the agreement before they can go live',
'unknown': 'Users wont be prompted to sign the agreement'
}
) }}
{{ page_footer('Save') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,21 @@
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% extends "org_template.html" %}
{% block org_page_title %}
Crown organisation
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Crown organisation</h1>
<div class="grid-row">
<div class="column-five-sixths">
{% call form_wrapper() %}
{{ radios(form.crown_status) }}
{{ page_footer('Save') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,31 @@
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/list-entry.html" import list_entry %}
{% from "components/form.html" import form_wrapper %}
{% extends "org_template.html" %}
{% block org_page_title %}
Known email domains
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Known email domains</h1>
<div class="grid-row">
<div class="column-five-sixths">
<p>
If a users email addresses ends with one of these domains then
any services they create will be associated with this organisation.
</p>
{% call form_wrapper() %}
{{ list_entry(
form.domains,
item_name='domain',
autocomplete=False,
hint='For example cabinet-office.gov.uk'
) }}
{{ page_footer('Save') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,21 @@
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% extends "org_template.html" %}
{% block org_page_title %}
Organisation type
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Organisation type</h1>
<div class="grid-row">
<div class="column-five-sixths">
{% call form_wrapper() %}
{{ radios(form.organisation_type) }}
{{ page_footer('Save') }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -1,5 +1,5 @@
{% extends "org_template.html" %}
{% from "components/table.html" import mapping_table, row, text_field, edit_field with context %}
{% from "components/table.html" import mapping_table, optional_text_field, row, text_field, edit_field with context %}
{% block org_page_title %}
Organisation settings
@@ -24,4 +24,92 @@
}}
{% endcall %}
{% endcall %}
</div>
{% if current_user.platform_admin %}
<h2 class="heading-medium">Platform admin settings</h2>
<div class="bottom-gutter-3-2 dashboard-table body-copy-table">
{% call mapping_table(
caption='Platform admin settings',
field_headings=['Label', 'Value', 'Action'],
field_headings_visible=False,
caption_visible=False
) %}
{% call row() %}
{{ text_field('Organisation type') }}
{{ optional_text_field({
'central': 'Central government',
'local': 'Local government',
'nhs': 'NHS',
}.get(current_org.organisation_type)) }}
{{ edit_field(
'Change',
url_for('.edit_organisation_type', org_id=current_org.id)
)
}}
{% endcall %}
{% call row() %}
{{ text_field('Crown organisation') }}
{{ optional_text_field(
{
True: 'Yes',
False: 'No',
}.get(current_org.crown),
default='Not sure'
) }}
{{ edit_field(
'Change',
url_for('.edit_organisation_crown_status', org_id=current_org.id)
)
}}
{% endcall %}
{% call row() %}
{{ text_field('Data sharing and financial agreement') }}
{{ text_field(
{
True: 'Signed',
False: 'Not signed',
None: 'Not signed (but we have some service-specific agreements in place)'
}.get(current_org.agreement_signed)
) }}
{{ edit_field(
'Change',
url_for('.edit_organisation_agreement', org_id=current_org.id)
)
}}
{% endcall %}
{% call row() %}
{{ text_field('Default email branding') }}
{{ text_field(email_branding) }}
{{ edit_field(
'Change',
url_for('.edit_organisation_email_branding', org_id=current_org.id)
)
}}
{% endcall %}
{% call row() %}
{{ text_field('Default letter branding') }}
{{ optional_text_field(
letter_branding,
default='No branding'
) }}
{{ edit_field(
'Change',
url_for('.edit_organisation_letter_branding', org_id=current_org.id)
)
}}
{% endcall %}
{% call row() %}
{{ text_field('Known email domains') }}
{{ optional_text_field(current_org.domains or None, default='None') }}
{{ edit_field(
'Change',
url_for('.edit_organisation_domains', org_id=current_org.id)
)
}}
{% endcall %}
{% endcall %}
</div>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,23 @@
{% extends "org_template.html" %}
{% from "components/form.html" import form_wrapper %}
{% block org_page_title %}
Preview email branding
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Preview email branding</h1>
<div class="grid-row">
<div class="column-full">
<iframe src="{{ url_for('main.email_template', branding_style=form.branding_style.data) }}" class="branding-preview"></iframe>
{% call form_wrapper(action=action) %}
<div class="form-group">
{{ form.hidden_tag() }}
<div class="page-footer">
<button type="submit" class="button">Save</button>
</div>
</div>
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,22 @@
{% extends "org_template.html" %}
{% from "components/form.html" import form_wrapper %}
{% from "components/page-footer.html" import page_footer %}
{% block per_page_title %}
Preview letter branding
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Preview letter branding</h1>
<div class="grid-row">
<div class="column-full">
<iframe src="{{ url_for('main.letter_template', branding_style=form.branding_style.data) }}" class="branding-preview"></iframe>
{% call form_wrapper(action=action) %}
<div class="form-group">
{{ form.hidden_tag() }}
{{ page_footer('Save') }}
</div>
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,30 @@
{% extends "org_template.html" %}
{% from "components/radios.html" import radios %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/live-search.html" import live_search %}
{% from "components/form.html" import form_wrapper %}
{% block org_page_title %}
Default email branding
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Default email branding</h1>
{% call form_wrapper(data_kwargs={'preview-type': 'email'}) %}
<div class="grid-row">
<div class="column-full preview-pane">
</div>
</div>
<div class="grid-row">
<div class="column-full">
{{ live_search(target_selector='.multiple-choice', show=True, form=search_form, label='Search branding styles by name') }}
{{ radios(form.branding_style) }}
</div>
</div>
<div class="js-stick-at-bottom-when-scrolling">
{{ page_footer('Preview') }}
</div>
{% endcall %}
{% endblock %}

View File

@@ -0,0 +1,30 @@
{% extends "org_template.html" %}
{% from "components/radios.html" import radios %}
{% from "components/live-search.html" import live_search %}
{% from "components/page-footer.html" import page_footer %}
{% from "components/form.html" import form_wrapper %}
{% block org_page_title %}
Default letter branding
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">Default letter branding</h1>
{% call form_wrapper(data_kwargs={'preview-type': 'letter'}) %}
<div class="grid-row">
<div class="column-full preview-pane">
</div>
</div>
<div class="grid-row">
<div class="column-full">
{{ live_search(target_selector='.multiple-choice', show=True, form=search_form, label='Search by name') }}
{{ radios(form.branding_style, hide_legend=True) }}
</div>
</div>
<div class="js-stick-at-bottom-when-scrolling">
{{ page_footer('Preview') }}
</div>
{% endcall %}
{% endblock %}

View File

@@ -1,10 +1,10 @@
{% extends "views/platform-admin/_base_template.html" %}
{% extends "withnav_template.html" %}
{% from "components/form.html" import form_wrapper %}
{% block service_page_title %}
Preview email branding
{% endblock %}
{% block platform_admin_content %}
{% block maincolumn_content %}
<h1 class="heading-large">Preview email branding</h1>
<div class="grid-row">
@@ -15,7 +15,6 @@
{{ form.hidden_tag() }}
<div class="page-footer">
<button type="submit" class="button">Save</button>
<a class="page-footer-back-link" href="{{ url_for('main.service_settings', service_id=service_id) }}">Back to service settings</a>
</div>
</div>
{% endcall %}