2016-05-24 15:52:44 +01:00
|
|
|
{% extends "withoutnav_template.html" %}
|
2016-12-28 14:44:53 +00:00
|
|
|
{% from "components/textbox.html" import textbox %}
|
2017-01-03 10:45:06 +00:00
|
|
|
{% from "components/checkbox.html" import checkbox %}
|
2016-12-28 14:44:53 +00:00
|
|
|
{% from "components/page-footer.html" import page_footer %}
|
2016-05-31 11:08:22 +01:00
|
|
|
{% from "components/big-number.html" import big_number, big_number_with_status %}
|
2016-05-25 16:51:09 +01:00
|
|
|
{% from "components/message-count-label.html" import message_count_label %}
|
2016-11-14 16:42:08 +00:00
|
|
|
{% from "components/table.html" import mapping_table, field, stats_fields, row_group, row, right_aligned_field_heading, hidden_field_heading, text_field %}
|
|
|
|
|
|
|
|
|
|
{% macro stats_fields(channel, data) -%}
|
|
|
|
|
|
|
|
|
|
{% call field(border=False) %}
|
|
|
|
|
<span class="heading-medium">{{ channel.title() }}</span>
|
|
|
|
|
{% endcall %}
|
|
|
|
|
|
|
|
|
|
{% call field(align='right', border=False) %}
|
2016-11-15 11:12:19 +00:00
|
|
|
{{ big_number(data[channel]['sending'], smaller=True) }}
|
2016-11-14 16:42:08 +00:00
|
|
|
{% endcall %}
|
|
|
|
|
|
|
|
|
|
{% call field(align='right', border=False) %}
|
|
|
|
|
{{ big_number(data[channel]['delivered'], smaller=True) }}
|
|
|
|
|
{% endcall %}
|
|
|
|
|
|
|
|
|
|
{% call field(align='right', status='error' if data[channel]['failed'], border=False) %}
|
|
|
|
|
{{ big_number(data[channel]['failed'], smaller=True) }}
|
|
|
|
|
{% endcall %}
|
|
|
|
|
|
|
|
|
|
{%- endmacro %}
|
2016-05-24 15:52:44 +01:00
|
|
|
|
2016-09-12 11:33:30 +01:00
|
|
|
{% macro services_table(services, caption) %}
|
2016-11-14 14:46:26 +00:00
|
|
|
{% call(item, row_number) mapping_table(
|
2016-09-12 11:33:30 +01:00
|
|
|
caption=caption,
|
2016-09-12 11:38:16 +01:00
|
|
|
caption_visible=True,
|
2016-09-12 11:33:30 +01:00
|
|
|
field_headings=[
|
2016-11-14 14:46:26 +00:00
|
|
|
'Service',
|
|
|
|
|
hidden_field_heading('Type'),
|
|
|
|
|
right_aligned_field_heading('Sending'),
|
|
|
|
|
right_aligned_field_heading('Delivered'),
|
|
|
|
|
right_aligned_field_heading('Failed')
|
2016-09-12 11:33:30 +01:00
|
|
|
],
|
|
|
|
|
field_headings_visible=True
|
|
|
|
|
) %}
|
2016-11-14 14:46:26 +00:00
|
|
|
|
|
|
|
|
{% for service in services %}
|
|
|
|
|
|
|
|
|
|
{% call row_group() %}
|
|
|
|
|
|
|
|
|
|
{% call row() %}
|
|
|
|
|
{% call field(border=False) %}
|
|
|
|
|
<a href="{{ url_for('main.service_dashboard', service_id=service['id']) }}" class="browse-list-link">{{ service['name'] }}</a>
|
|
|
|
|
{% endcall %}
|
|
|
|
|
|
2016-11-14 16:42:08 +00:00
|
|
|
{{ stats_fields('email', service['stats']) }}
|
2016-11-14 14:46:26 +00:00
|
|
|
{% endcall %}
|
|
|
|
|
|
|
|
|
|
{% call row() %}
|
2016-11-14 17:15:05 +00:00
|
|
|
{% if not service['active'] %}
|
|
|
|
|
{% call field(status='default') %}
|
|
|
|
|
<span class="heading-medium">archived</span>
|
|
|
|
|
{% endcall %}
|
|
|
|
|
{% elif service['research_mode'] %}
|
2016-11-14 14:46:26 +00:00
|
|
|
{% call field(border=False) %}
|
|
|
|
|
<span class="research-mode">research mode</span>
|
|
|
|
|
{% endcall %}
|
|
|
|
|
{% elif not service['restricted'] %}
|
|
|
|
|
{% call field(status='error') %}
|
2016-11-14 17:15:05 +00:00
|
|
|
<span class="heading-medium">Live</span>
|
2016-11-14 14:46:26 +00:00
|
|
|
{% endcall %}
|
|
|
|
|
{% else %}
|
|
|
|
|
{{ text_field('') }}
|
|
|
|
|
{% endif %}
|
|
|
|
|
|
2016-11-14 16:42:08 +00:00
|
|
|
{{ stats_fields('sms', service['stats']) }}
|
2016-11-14 14:46:26 +00:00
|
|
|
{% endcall %}
|
|
|
|
|
|
2016-09-12 11:33:30 +01:00
|
|
|
{% endcall %}
|
2016-11-14 14:46:26 +00:00
|
|
|
|
|
|
|
|
{% endfor %}
|
|
|
|
|
|
2016-09-12 11:33:30 +01:00
|
|
|
{% endcall %}
|
|
|
|
|
{% endmacro %}
|
|
|
|
|
|
|
|
|
|
|
2017-02-13 10:45:15 +00:00
|
|
|
{% block per_page_title %}
|
|
|
|
|
Platform admin
|
2016-05-24 15:52:44 +01:00
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
|
|
{% block maincolumn_content %}
|
|
|
|
|
|
|
|
|
|
<h1 class="heading-large">
|
|
|
|
|
Platform admin
|
|
|
|
|
</h1>
|
|
|
|
|
|
2017-01-03 10:45:06 +00:00
|
|
|
<details>
|
|
|
|
|
<summary>Apply filters</summary>
|
|
|
|
|
<form autocomplete="off" method="get">
|
|
|
|
|
{{ textbox(form.start_date, hint="Enter start date in format YYYY-MM-DD") }}
|
|
|
|
|
{{ textbox(form.end_date, hint="Enter end date in format YYYY-MM-DD") }}
|
|
|
|
|
{{ checkbox(form.include_from_test_key) }}
|
|
|
|
|
</br>
|
|
|
|
|
<input type="submit" class="button">
|
|
|
|
|
</form>
|
|
|
|
|
</details>
|
2016-12-06 12:38:12 +00:00
|
|
|
|
|
|
|
|
<div class="grid-row bottom-gutter">
|
|
|
|
|
<div class="column-half">
|
|
|
|
|
{{ big_number_with_status(
|
2017-01-23 11:59:37 +00:00
|
|
|
global_stats.email.delivered + global_stats.email.failed,
|
2016-12-06 12:38:12 +00:00
|
|
|
message_count_label(global_stats.email.delivered, 'email'),
|
|
|
|
|
global_stats.email.failed,
|
|
|
|
|
global_stats.email.failure_rate,
|
|
|
|
|
global_stats.email.failure_rate|float > 3,
|
|
|
|
|
) }}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="column-half">
|
|
|
|
|
{{ big_number_with_status(
|
2017-01-23 11:59:37 +00:00
|
|
|
global_stats.sms.delivered + global_stats.sms.failed,
|
2016-12-06 12:38:12 +00:00
|
|
|
message_count_label(global_stats.sms.delivered, 'sms'),
|
|
|
|
|
global_stats.sms.failed,
|
|
|
|
|
global_stats.sms.failure_rate,
|
|
|
|
|
global_stats.sms.failure_rate|float > 3,
|
|
|
|
|
) }}
|
2016-05-25 16:51:09 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2016-12-06 12:38:12 +00:00
|
|
|
{{ services_table(live_services, 'Live services') }}
|
|
|
|
|
|
|
|
|
|
{{ services_table(trial_mode_services, 'Trial mode services') }}
|
|
|
|
|
|
2016-05-24 15:52:44 +01:00
|
|
|
{% endblock %}
|