Refactor service name code to reduce duplication

This makes the code shareable between:
- the broadcast tour pages
- the broadcast settings platform admin page
- the regular service navigation

On the training mode tour pages we don’t want to confuse people with the
organisation name or _Switch service_ links, so those are omitted and
the code is therefore slightly different.
This commit is contained in:
Chris Hill-Scott
2021-05-19 09:39:38 +01:00
parent 766df5d1ca
commit 016f38db9b
5 changed files with 53 additions and 52 deletions

View File

@@ -1,3 +1,37 @@
{% macro navigation_service_name(service) %}
<div class="navigation-service-name govuk-!-font-weight-bold">
{{ service.name }}
{% if not service.active %}
<span class="navigation-service-type navigation-service-type--suspended">Suspended</span>
{% elif service.has_permission('broadcast') %}
{{ broadcast_service_name_tag(
service.trial_mode,
service.broadcast_channel,
service.allowed_broadcast_provider,
) }}
{% endif %}
</div>
{% endmacro %}
{% macro broadcast_service_name_tag(trial_mode, broadcast_channel, allowed_broadcast_provider, left_margin=True) %}
{% set margin_class = "" if left_margin else "govuk-!-margin-left-0" %}
{% if trial_mode %}
<span class="navigation-service-type navigation-service-type--training {{margin_class}}">Training
{% elif broadcast_channel == 'severe' %}
<span class="navigation-service-type navigation-service-type--live {{margin_class}}">Live
{% elif broadcast_channel == 'test' %}
<span class="navigation-service-type navigation-service-type--live {{margin_class}}">{{ broadcast_channel|title }}
{% if allowed_broadcast_provider == "all" %}
(all networks)
{% else %}
({{ allowed_broadcast_provider|format_mobile_network }})
{% endif %}
{% elif broadcast_channel == 'government' %}
<span class="navigation-service-type navigation-service-type--government {{margin_class}}">Government
{% endif %}
</span>
{% endmacro %}
<div class="navigation-service">
{% if current_service.organisation_id %}
{% if current_user.platform_admin or
@@ -5,27 +39,6 @@
<a href="{{ url_for('.organisation_dashboard', org_id=current_service.organisation_id) }}" class="govuk-link govuk-link--no-visited-state navigation-organisation-link">{{ current_service.organisation_name }}</a>
{% endif %}
{% endif %}
<div class="navigation-service-name govuk-!-font-weight-bold">
{{ current_service.name }}
{% if not current_service.active %}
<span class="navigation-service-type navigation-service-type--suspended">Suspended</span>
{% elif current_service.has_permission('broadcast') %}
{% if current_service.trial_mode %}
<span class="navigation-service-type navigation-service-type--training">Training
{% elif current_service.broadcast_channel == 'severe' %}
<span class="navigation-service-type navigation-service-type--live">Live
{% elif current_service.broadcast_channel == 'test' %}
<span class="navigation-service-type navigation-service-type--live">{{ current_service.broadcast_channel|title }}
{% if current_service.allowed_broadcast_provider == "all" %}
(all networks)
{% else %}
({{ current_service.allowed_broadcast_provider }})
{% endif %}
{% elif current_service.broadcast_channel == 'government' %}
<span class="navigation-service-type navigation-service-type--government">Government
{% endif %}
</span>
{% endif %}
</div>
{{ navigation_service_name(current_service) }}
<a href="{{ url_for('main.choose_account') }}" class="govuk-link govuk-link--no-visited-state navigation-service-switch">Switch service</a>
</div>