Merge pull request #1170 from alphagov/feat-add-who-updated-providers

Show who updated providers and provider history data
This commit is contained in:
imdadahad
2017-03-08 16:43:07 +00:00
committed by GitHub
7 changed files with 275 additions and 124 deletions

View File

@@ -19,16 +19,16 @@ def view_providers():
email_providers = [email for email in providers if email['notification_type'] == 'email']
sms_providers = [sms for sms in providers if sms['notification_type'] == 'sms']
return render_template(
'views/providers.html',
'views/providers/providers.html',
email_providers=email_providers,
sms_providers=sms_providers
)
@main.route("/provider/<provider_id>", methods=['GET', 'POST'])
@main.route("/provider/<provider_id>/edit", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
def view_provider(provider_id):
def edit_provider(provider_id):
provider = provider_client.get_provider_by_id(provider_id)['provider_details']
form = ProviderForm(active=provider['active'], priority=provider['priority'])
@@ -36,4 +36,12 @@ def view_provider(provider_id):
provider_client.update_provider(provider_id, form.priority.data)
return redirect(url_for('.view_providers'))
return render_template('views/provider.html', form=form, provider=provider)
return render_template('views/providers/edit-provider.html', form=form, provider=provider)
@main.route("/provider/<provider_id>")
@login_required
@user_has_permissions(admin_override=True)
def view_provider(provider_id):
versions = provider_client.get_provider_versions(provider_id)
return render_template('views/providers/provider.html', provider_versions=versions['data'])

View File

@@ -21,6 +21,11 @@ class ProviderClient(NotifyAdminAPIClient):
url='/provider-details/{}'.format(provider_id)
)
def get_provider_versions(self, provider_id):
return self.get(
url='/provider-details/{}/versions'.format(provider_id)
)
def update_provider(self, provider_id, priority):
data = {
"priority": priority

View File

@@ -1,68 +0,0 @@
{% extends "withoutnav_template.html" %}
{% from "components/table.html" import list_table, field, text_field, link_field, right_aligned_field_heading, hidden_field_heading %}
{% block per_page_title %}
Providers
{% endblock %}
{% block maincolumn_content %}
<div class="grid-row">
<div class="column-two-thirds">
<h1 class="heading-large">Providers</h1>
<h2 class="heading-medium">SMS</h2>
{% call(item, row_number) list_table(
sms_providers,
caption="SMS providers",
caption_visible=False,
empty_message='No email providers',
field_headings=['Provider', 'Priority', 'Active', 'Last Updated', ''],
field_headings_visible=True
) %}
{{ text_field(item.display_name) }}
{{ text_field(item.priority) }}
{{ text_field(item.active) }}
{% if item.updated_at %}
{{ text_field(item.updated_at|format_datetime_short) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{{ link_field('change', url_for('main.view_provider', provider_id=item.id)) }}
{% endcall %}
<h2 class="heading-medium">Email</h2>
{% call(item, row_number) list_table(
email_providers,
caption="Email providers",
caption_visible=False,
empty_message='No email providers',
field_headings=['Provider', 'Priority', 'Active', ''],
field_headings_visible=True
) %}
{{ text_field(item.display_name) }}
{{ text_field(item.priority) }}
{{ text_field(item.active) }}
{{ link_field('change', url_for('main.view_provider', provider_id=item.id)) }}
{% endcall %}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,52 @@
{% extends "withoutnav_template.html" %}
{% from "components/table.html" import list_table, field, text_field, link_field, right_aligned_field_heading, hidden_field_heading %}
{% from "components/page-footer.html" import page_footer %}
{% block per_page_title %}
Provider versions
{% endblock %}
{% block maincolumn_content %}
<div class="grid-row">
<div class="column-two-thirds">
<h1 class="heading-large">{{ provider_versions[0].display_name }}</h1>
{% call(item, row_number) list_table(
provider_versions,
caption='',
caption_visible=False,
empty_message='No history for this provider',
field_headings=['Version', 'Last Updated', 'Updated By', 'Priority', 'Active'],
field_headings_visible=True
) %}
{{ text_field(item.version) }}
{% if item.updated_at %}
{{ text_field(item.updated_at|format_datetime_short) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{% if item.created_by %}
{{ text_field(item.created_by.name) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{{ text_field(item.priority) }}
{{ text_field(item.active) }}
{% endcall %}
{{ page_footer(
back_link=url_for('main.view_providers'),
back_link_text="Back to providers"
) }}
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,84 @@
{% extends "withoutnav_template.html" %}
{% from "components/table.html" import list_table, field, text_field, link_field, right_aligned_field_heading, hidden_field_heading %}
{% from "components/show-more.html" import show_more %}
{% block per_page_title %}
Providers
{% endblock %}
{% block maincolumn_content %}
<div class="grid-row">
<div class="column-two-thirds">
<h1 class="heading-large">Providers</h1>
<h2 class="heading-medium">SMS</h2>
{% call(item, row_number) list_table(
sms_providers,
caption="SMS providers",
caption_visible=False,
empty_message='No email providers',
field_headings=['Provider', 'Priority', 'Active', 'Last Updated', 'Updated By'],
field_headings_visible=True
) %}
{{ link_field(item.display_name, url_for('main.view_provider', provider_id=item.id)) }}
{{ text_field(item.priority) }}
{{ text_field(item.active) }}
{% if item.updated_at %}
{{ text_field(item.updated_at|format_datetime_short) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{% if item.created_by %}
{{ text_field(item.created_by.name) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{{ link_field('change', url_for('main.edit_provider', provider_id=item.id)) }}
{% endcall %}
<h2 class="heading-medium">Email</h2>
{% call(item, row_number) list_table(
email_providers,
caption="Email providers",
caption_visible=False,
empty_message='No email providers',
field_headings=['Provider', 'Priority', 'Active', 'Last Updated', 'Updated By'],
field_headings_visible=True
) %}
{{ link_field(item.display_name, url_for('main.view_provider', provider_id=item.id)) }}
{{ text_field(item.priority) }}
{{ text_field(item.active) }}
{% if item.updated_at %}
{{ text_field(item.updated_at|format_datetime_short) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{% if item.created_by %}
{{ text_field(item.created_by.name) }}
{% else %}
{{ text_field('None') }}
{% endif %}
{{ link_field('change', url_for('main.edit_provider', provider_id=item.id)) }}
{% endcall %}
</div>
</div>
{% endblock %}