mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 10:28:41 -04:00
Moved usage to it's own route to not confuse with dashboard
This commit is contained in:
@@ -85,13 +85,32 @@ def organization_dashboard(org_id):
|
|||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"views/organizations/organization/index.html",
|
"views/organizations/organization/index.html",
|
||||||
services=services,
|
|
||||||
years=get_tuples_of_financial_years(
|
years=get_tuples_of_financial_years(
|
||||||
partial(url_for, ".organization_dashboard", org_id=current_organization.id),
|
partial(url_for, ".organization_dashboard", org_id=current_organization.id),
|
||||||
start=current_financial_year - 2,
|
start=current_financial_year - 2,
|
||||||
end=current_financial_year,
|
end=current_financial_year,
|
||||||
),
|
),
|
||||||
selected_year=year,
|
selected_year=year,
|
||||||
|
messages_sent=total_messages_sent,
|
||||||
|
messages_remaining=total_messages_remaining,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@main.route("/organizations/<uuid:org_id>/usage", methods=["GET"])
|
||||||
|
@user_has_permissions()
|
||||||
|
def organization_usage(org_id):
|
||||||
|
year, current_financial_year = requested_and_current_financial_year(request)
|
||||||
|
services = current_organization.services_and_usage(financial_year=year)["services"]
|
||||||
|
|
||||||
|
return render_template(
|
||||||
|
"views/organizations/organization/usage.html",
|
||||||
|
services=services,
|
||||||
|
years=get_tuples_of_financial_years(
|
||||||
|
partial(url_for, ".organization_usage", org_id=current_organization.id),
|
||||||
|
start=current_financial_year - 2,
|
||||||
|
end=current_financial_year,
|
||||||
|
),
|
||||||
|
selected_year=year,
|
||||||
search_form=SearchByNameForm() if len(services) > 7 else None,
|
search_form=SearchByNameForm() if len(services) > 7 else None,
|
||||||
**{
|
**{
|
||||||
f"total_{key}": sum(service[key] for service in services)
|
f"total_{key}": sum(service[key] for service in services)
|
||||||
@@ -100,8 +119,6 @@ def organization_dashboard(org_id):
|
|||||||
download_link=url_for(
|
download_link=url_for(
|
||||||
".download_organization_usage_report", org_id=org_id, selected_year=year
|
".download_organization_usage_report", org_id=org_id, selected_year=year
|
||||||
),
|
),
|
||||||
messages_sent=total_messages_sent,
|
|
||||||
messages_remaining=total_messages_remaining,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -339,6 +339,9 @@ class OrgNavigation(Navigation):
|
|||||||
"dashboard": {
|
"dashboard": {
|
||||||
"organization_dashboard",
|
"organization_dashboard",
|
||||||
},
|
},
|
||||||
|
"usage": {
|
||||||
|
"organization_usage",
|
||||||
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"edit_organization_billing_details",
|
"edit_organization_billing_details",
|
||||||
"edit_organization_domains",
|
"edit_organization_domains",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<nav id="nav-org-nav" aria-label="Organization navigation" class="nav margin-bottom-4">
|
<nav id="nav-org-nav" aria-label="Organization navigation" class="nav margin-bottom-4">
|
||||||
<ul class="usa-sidenav">
|
<ul class="usa-sidenav">
|
||||||
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('dashboard') }}" href="{{ url_for('.organization_dashboard', org_id=current_org.id) }}">Usage</a></li>
|
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('dashboard') }}" href="{{ url_for('.organization_dashboard', org_id=current_org.id) }}">Dashboard</a></li>
|
||||||
|
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('usage') }}" href="{{ url_for('.organization_usage', org_id=current_org.id) }}">Usage</a></li>
|
||||||
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('team-members') }}" href="{{ url_for('.manage_org_users', org_id=current_org.id) }}">Team members</a></li>
|
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('team-members') }}" href="{{ url_for('.manage_org_users', org_id=current_org.id) }}">Team members</a></li>
|
||||||
{% if current_user.platform_admin %}
|
{% if current_user.platform_admin %}
|
||||||
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('settings') }}" href="{{ url_for('.organization_settings', org_id=current_org.id) }}">Settings</a></li>
|
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('settings') }}" href="{{ url_for('.organization_settings', org_id=current_org.id) }}">Settings</a></li>
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
{% from "components/page-header.html" import page_header %}
|
{% from "components/page-header.html" import page_header %}
|
||||||
{% from "components/big-number.html" import big_number %}
|
|
||||||
{% from "components/live-search.html" import live_search %}
|
|
||||||
{% from "components/pill.html" import pill %}
|
|
||||||
{% from "components/table.html" import list_table, field, row_heading %}
|
|
||||||
{% extends "withnav_template.html" %}
|
{% extends "withnav_template.html" %}
|
||||||
|
|
||||||
{% block org_page_title %}
|
{% block org_page_title %}
|
||||||
@@ -54,87 +50,4 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="totalMessageTable" class="margin-bottom-3"></div>
|
<div id="totalMessageTable" class="margin-bottom-3"></div>
|
||||||
|
|
||||||
<div class="grid-row margin-bottom-3">
|
|
||||||
<div class="grid-col-6">
|
|
||||||
<h2 class="font-heading-md">Emails</h2>
|
|
||||||
<div class="keyline-block">
|
|
||||||
{{ big_number(
|
|
||||||
total_emails_sent,
|
|
||||||
label='sent',
|
|
||||||
smaller=True
|
|
||||||
) }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="grid-col-6">
|
|
||||||
<h2 class="font-heading-md">Text messages</h2>
|
|
||||||
<div class="keyline-block">
|
|
||||||
{{ big_number(
|
|
||||||
total_sms_cost,
|
|
||||||
'spent',
|
|
||||||
currency="$",
|
|
||||||
smaller=True
|
|
||||||
) }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{% if search_form %}
|
|
||||||
<div>
|
|
||||||
{{ live_search(
|
|
||||||
target_selector='.organization-service',
|
|
||||||
show=True,
|
|
||||||
form=search_form,
|
|
||||||
label='Search by service'
|
|
||||||
) }}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<h2 class="font-heading-md {% if search_form %}visually-hidden{% endif %}">By service</h2>
|
|
||||||
|
|
||||||
{% for service in services %}
|
|
||||||
<div class="keyline-block organization-service">
|
|
||||||
<h3 class="live-search-relevant">
|
|
||||||
<a href="{{ url_for('main.usage', service_id=service.service_id) }}" class="usa-link browse-list-link">{{ service.service_name }}</a>
|
|
||||||
</h3>
|
|
||||||
<div class="grid-row">
|
|
||||||
<div class="grid-col-6">
|
|
||||||
{{ big_number(
|
|
||||||
service.emails_sent,
|
|
||||||
label=service.emails_sent|message_count_label('email'),
|
|
||||||
smallest=True
|
|
||||||
) }}
|
|
||||||
</div>
|
|
||||||
<div class="grid-col-6">
|
|
||||||
{% if service.sms_cost %}
|
|
||||||
{{ big_number(
|
|
||||||
service.sms_cost,
|
|
||||||
'spent on text messages',
|
|
||||||
currency="$",
|
|
||||||
smallest=True
|
|
||||||
) }}
|
|
||||||
{% else %}
|
|
||||||
{{ big_number(
|
|
||||||
service.sms_billable_units,
|
|
||||||
'free {}'.format(service.sms_billable_units|message_count_label('sms')),
|
|
||||||
smallest=True
|
|
||||||
) }}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
<div class="keyline-block"></div>
|
|
||||||
{% if not services %}
|
|
||||||
<p class="usa-body usa-hint">
|
|
||||||
{{ current_org.name }} has no live services on Notify.gov
|
|
||||||
</p>
|
|
||||||
<div class="keyline-block"></div>
|
|
||||||
{% else %}
|
|
||||||
<div class="js-stick-at-bottom-when-scrolling">
|
|
||||||
<p>
|
|
||||||
<a href="{{ download_link }}" download="download" class="usa-link">Download this report (<abbr title="Comma separated values">CSV</abbr>)</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
{% from "components/page-header.html" import page_header %}
|
||||||
|
{% from "components/big-number.html" import big_number %}
|
||||||
|
{% from "components/live-search.html" import live_search %}
|
||||||
|
{% from "components/pill.html" import pill %}
|
||||||
|
{% from "components/table.html" import list_table, field, row_heading %}
|
||||||
|
{% extends "withnav_template.html" %}
|
||||||
|
|
||||||
|
{% block org_page_title %}
|
||||||
|
Usage
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block maincolumn_content %}
|
||||||
|
|
||||||
|
{{ page_header('Usage', size='medium') }}
|
||||||
|
|
||||||
|
<div class="margin-bottom-3">
|
||||||
|
{{ pill(years, selected_year, big_number_args={'smallest': True}) }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid-row margin-bottom-3">
|
||||||
|
<div class="grid-col-6">
|
||||||
|
<h2 class="font-heading-md">Emails</h2>
|
||||||
|
<div class="keyline-block">
|
||||||
|
{{ big_number(
|
||||||
|
total_emails_sent,
|
||||||
|
label='sent',
|
||||||
|
smaller=True
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="grid-col-6">
|
||||||
|
<h2 class="font-heading-md">Text messages</h2>
|
||||||
|
<div class="keyline-block">
|
||||||
|
{{ big_number(
|
||||||
|
total_sms_cost,
|
||||||
|
'spent',
|
||||||
|
currency="$",
|
||||||
|
smaller=True
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if search_form %}
|
||||||
|
<div>
|
||||||
|
{{ live_search(
|
||||||
|
target_selector='.organization-service',
|
||||||
|
show=True,
|
||||||
|
form=search_form,
|
||||||
|
label='Search by service'
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<h2 class="font-heading-md {% if search_form %}visually-hidden{% endif %}">By service</h2>
|
||||||
|
|
||||||
|
{% for service in services %}
|
||||||
|
<div class="keyline-block organization-service">
|
||||||
|
<h3 class="live-search-relevant">
|
||||||
|
<a href="{{ url_for('main.usage', service_id=service.service_id) }}" class="usa-link browse-list-link">{{ service.service_name }}</a>
|
||||||
|
</h3>
|
||||||
|
<div class="grid-row">
|
||||||
|
<div class="grid-col-6">
|
||||||
|
{{ big_number(
|
||||||
|
service.emails_sent,
|
||||||
|
label=service.emails_sent|message_count_label('email'),
|
||||||
|
smallest=True
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
<div class="grid-col-6">
|
||||||
|
{% if service.sms_cost %}
|
||||||
|
{{ big_number(
|
||||||
|
service.sms_cost,
|
||||||
|
'spent on text messages',
|
||||||
|
currency="$",
|
||||||
|
smallest=True
|
||||||
|
) }}
|
||||||
|
{% else %}
|
||||||
|
{{ big_number(
|
||||||
|
service.sms_billable_units,
|
||||||
|
'free {}'.format(service.sms_billable_units|message_count_label('sms')),
|
||||||
|
smallest=True
|
||||||
|
) }}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
<div class="keyline-block"></div>
|
||||||
|
{% if not services %}
|
||||||
|
<p class="usa-body usa-hint">
|
||||||
|
{{ current_org.name }} has no live services on Notify.gov
|
||||||
|
</p>
|
||||||
|
<div class="keyline-block"></div>
|
||||||
|
{% else %}
|
||||||
|
<div class="js-stick-at-bottom-when-scrolling">
|
||||||
|
<p>
|
||||||
|
<a href="{{ download_link }}" download="download" class="usa-link">Download this report (<abbr title="Comma separated values">CSV</abbr>)</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user