mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-02 17:48:50 -04:00
Refactor go-live readyness into service model
All this info is info about the service. So it’s better to put it on the service model because: - encapsulation - later reuse
This commit is contained in:
@@ -180,30 +180,7 @@ def service_name_change_confirm(service_id):
|
|||||||
@user_has_permissions('manage_service')
|
@user_has_permissions('manage_service')
|
||||||
def request_to_go_live(service_id):
|
def request_to_go_live(service_id):
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/service-settings/request-to-go-live.html',
|
'views/service-settings/request-to-go-live.html'
|
||||||
has_team_members=(
|
|
||||||
user_api_client.get_count_of_users_with_permission(
|
|
||||||
service_id, 'manage_service'
|
|
||||||
) > 1
|
|
||||||
),
|
|
||||||
has_templates=(
|
|
||||||
service_api_client.count_service_templates(service_id) > 0
|
|
||||||
),
|
|
||||||
has_email_templates=(
|
|
||||||
service_api_client.count_service_templates(service_id, template_type='email') > 0
|
|
||||||
),
|
|
||||||
has_sms_templates=(
|
|
||||||
service_api_client.count_service_templates(service_id, template_type='sms') > 0
|
|
||||||
),
|
|
||||||
has_email_reply_to_address=bool(
|
|
||||||
service_api_client.get_reply_to_email_addresses(service_id)
|
|
||||||
),
|
|
||||||
shouldnt_use_govuk_as_sms_sender=(
|
|
||||||
current_service.organisation_type in {'local', 'nhs'}
|
|
||||||
),
|
|
||||||
sms_sender_is_govuk=get_default_sms_sender(
|
|
||||||
service_api_client.get_sms_senders(service_id)
|
|
||||||
) in {'GOVUK', 'None'},
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ from itertools import chain
|
|||||||
from flask import request, session
|
from flask import request, session
|
||||||
from flask_login import AnonymousUserMixin, UserMixin
|
from flask_login import AnonymousUserMixin, UserMixin
|
||||||
|
|
||||||
|
from app.utils import get_default_sms_sender
|
||||||
|
|
||||||
roles = {
|
roles = {
|
||||||
'send_messages': ['send_texts', 'send_emails', 'send_letters'],
|
'send_messages': ['send_texts', 'send_emails', 'send_letters'],
|
||||||
'manage_templates': ['manage_templates'],
|
'manage_templates': ['manage_templates'],
|
||||||
@@ -302,7 +304,54 @@ class Service(dict):
|
|||||||
def has_permission(self, permission):
|
def has_permission(self, permission):
|
||||||
return permission in self.permissions
|
return permission in self.permissions
|
||||||
|
|
||||||
|
@property
|
||||||
def has_jobs(self):
|
def has_jobs(self):
|
||||||
# Can’t import at top-level because app isn’t yet initialised
|
# Can’t import at top-level because app isn’t yet initialised
|
||||||
from app import job_api_client
|
from app import job_api_client
|
||||||
return job_api_client.has_jobs(self.id)
|
return job_api_client.has_jobs(self.id)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_team_members(self):
|
||||||
|
from app import user_api_client
|
||||||
|
return user_api_client.get_count_of_users_with_permission(
|
||||||
|
self.id, 'manage_service'
|
||||||
|
) > 1
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_templates(self):
|
||||||
|
from app import service_api_client
|
||||||
|
return service_api_client.count_service_templates(
|
||||||
|
self.id
|
||||||
|
) > 0
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_email_templates(self):
|
||||||
|
from app import service_api_client
|
||||||
|
return service_api_client.count_service_templates(
|
||||||
|
self.id, template_type='email'
|
||||||
|
) > 0
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_sms_templates(self):
|
||||||
|
from app import service_api_client
|
||||||
|
return service_api_client.count_service_templates(
|
||||||
|
self.id, template_type='sms'
|
||||||
|
) > 0
|
||||||
|
|
||||||
|
@property
|
||||||
|
def has_email_reply_to_address(self):
|
||||||
|
from app import service_api_client
|
||||||
|
return bool(service_api_client.get_reply_to_email_addresses(
|
||||||
|
self.id
|
||||||
|
))
|
||||||
|
|
||||||
|
@property
|
||||||
|
def shouldnt_use_govuk_as_sms_sender(self):
|
||||||
|
return self.organisation_type in {'local', 'nhs'}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sms_sender_is_govuk(self):
|
||||||
|
from app import service_api_client
|
||||||
|
return get_default_sms_sender(
|
||||||
|
service_api_client.get_sms_senders(self.id)
|
||||||
|
) in {'GOVUK', 'None'}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}" {{ main_navigation.is_selected('templates') }}>Templates</a></li>
|
<li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}" {{ main_navigation.is_selected('templates') }}>Templates</a></li>
|
||||||
{% if not current_user.has_permissions('view_activity') %}
|
{% if not current_user.has_permissions('view_activity') %}
|
||||||
<li><a href="{{ url_for('.view_notifications', service_id=current_service.id, status='sending,delivered,failed') }}" {{ casework_navigation.is_selected('sent-messages') }}>Sent messages</a></li>
|
<li><a href="{{ url_for('.view_notifications', service_id=current_service.id, status='sending,delivered,failed') }}" {{ casework_navigation.is_selected('sent-messages') }}>Sent messages</a></li>
|
||||||
{% if current_service.has_jobs() %}
|
{% if current_service.has_jobs %}
|
||||||
<li><a href="{{ url_for('.view_jobs', service_id=current_service.id) }}" {{ casework_navigation.is_selected('uploaded-files') }}>Uploaded files</a></li>
|
<li><a href="{{ url_for('.view_jobs', service_id=current_service.id) }}" {{ casework_navigation.is_selected('uploaded-files') }}>Uploaded files</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -16,30 +16,30 @@
|
|||||||
<h1 class="heading-large">Before you request to go live</h1>
|
<h1 class="heading-large">Before you request to go live</h1>
|
||||||
{% call task_list_wrapper() %}
|
{% call task_list_wrapper() %}
|
||||||
{{ task_list_item(
|
{{ task_list_item(
|
||||||
has_team_members,
|
current_service.has_team_members,
|
||||||
'<a href="{}">Add a team member who can manage settings, team and usage</a>
|
'<a href="{}">Add a team member who can manage settings, team and usage</a>
|
||||||
'.format(
|
'.format(
|
||||||
url_for('main.manage_users', service_id=current_service.id)
|
url_for('main.manage_users', service_id=current_service.id)
|
||||||
)|safe,
|
)|safe,
|
||||||
) }}
|
) }}
|
||||||
{{ task_list_item(
|
{{ task_list_item(
|
||||||
has_templates,
|
current_service.has_templates,
|
||||||
'<a href="{}">Add templates with examples of the content you plan to send
|
'<a href="{}">Add templates with examples of the content you plan to send
|
||||||
</a>'.format(
|
</a>'.format(
|
||||||
url_for('main.choose_template', service_id=current_service.id)
|
url_for('main.choose_template', service_id=current_service.id)
|
||||||
)|safe,
|
)|safe,
|
||||||
) }}
|
) }}
|
||||||
{% if has_email_templates %}
|
{% if current_service.has_email_templates %}
|
||||||
{{ task_list_item(
|
{{ task_list_item(
|
||||||
has_email_reply_to_address,
|
current_service.has_email_reply_to_address,
|
||||||
'<a href="{}">Add an email reply-to address</a>'.format(
|
'<a href="{}">Add an email reply-to address</a>'.format(
|
||||||
url_for('main.service_email_reply_to', service_id=current_service.id)
|
url_for('main.service_email_reply_to', service_id=current_service.id)
|
||||||
)|safe,
|
)|safe,
|
||||||
) }}
|
) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if has_sms_templates and shouldnt_use_govuk_as_sms_sender %}
|
{% if current_service.has_sms_templates and current_service.shouldnt_use_govuk_as_sms_sender %}
|
||||||
{{ task_list_item(
|
{{ task_list_item(
|
||||||
not sms_sender_is_govuk,
|
not current_service.sms_sender_is_govuk,
|
||||||
'<a href="{}">Change your text message sender name</a>'.format(
|
'<a href="{}">Change your text message sender name</a>'.format(
|
||||||
url_for('main.service_sms_senders', service_id=current_service.id)
|
url_for('main.service_sms_senders', service_id=current_service.id)
|
||||||
)|safe
|
)|safe
|
||||||
|
|||||||
Reference in New Issue
Block a user