mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 11:23:48 -05: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')
|
||||
def request_to_go_live(service_id):
|
||||
return render_template(
|
||||
'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'},
|
||||
'views/service-settings/request-to-go-live.html'
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ from itertools import chain
|
||||
from flask import request, session
|
||||
from flask_login import AnonymousUserMixin, UserMixin
|
||||
|
||||
from app.utils import get_default_sms_sender
|
||||
|
||||
roles = {
|
||||
'send_messages': ['send_texts', 'send_emails', 'send_letters'],
|
||||
'manage_templates': ['manage_templates'],
|
||||
@@ -302,7 +304,54 @@ class Service(dict):
|
||||
def has_permission(self, permission):
|
||||
return permission in self.permissions
|
||||
|
||||
@property
|
||||
def has_jobs(self):
|
||||
# Can’t import at top-level because app isn’t yet initialised
|
||||
from app import job_api_client
|
||||
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>
|
||||
{% 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>
|
||||
{% 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>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
@@ -16,30 +16,30 @@
|
||||
<h1 class="heading-large">Before you request to go live</h1>
|
||||
{% call task_list_wrapper() %}
|
||||
{{ 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>
|
||||
'.format(
|
||||
url_for('main.manage_users', service_id=current_service.id)
|
||||
)|safe,
|
||||
) }}
|
||||
{{ task_list_item(
|
||||
has_templates,
|
||||
current_service.has_templates,
|
||||
'<a href="{}">Add templates with examples of the content you plan to send
|
||||
</a>'.format(
|
||||
url_for('main.choose_template', service_id=current_service.id)
|
||||
)|safe,
|
||||
) }}
|
||||
{% if has_email_templates %}
|
||||
{% if current_service.has_email_templates %}
|
||||
{{ 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(
|
||||
url_for('main.service_email_reply_to', service_id=current_service.id)
|
||||
)|safe,
|
||||
) }}
|
||||
{% 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(
|
||||
not sms_sender_is_govuk,
|
||||
not current_service.sms_sender_is_govuk,
|
||||
'<a href="{}">Change your text message sender name</a>'.format(
|
||||
url_for('main.service_sms_senders', service_id=current_service.id)
|
||||
)|safe
|
||||
|
||||
Reference in New Issue
Block a user