mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 18:37:33 -04:00
Merge remote-tracking branch 'origin/all-pages-everywhere'
This commit is contained in:
+11
-3
@@ -37,7 +37,7 @@ from app.utils import (
|
|||||||
get_help_argument,
|
get_help_argument,
|
||||||
get_template
|
get_template
|
||||||
)
|
)
|
||||||
from app.template_previews import TemplatePreview
|
from app.template_previews import TemplatePreview, get_page_count_for_letter
|
||||||
|
|
||||||
|
|
||||||
def get_page_headings(template_type):
|
def get_page_headings(template_type):
|
||||||
@@ -83,15 +83,19 @@ def get_example_letter_address(key):
|
|||||||
@user_has_permissions('send_texts', 'send_emails', 'send_letters')
|
@user_has_permissions('send_texts', 'send_emails', 'send_letters')
|
||||||
def send_messages(service_id, template_id):
|
def send_messages(service_id, template_id):
|
||||||
|
|
||||||
|
template = service_api_client.get_service_template(service_id, template_id)['data']
|
||||||
|
|
||||||
template = get_template(
|
template = get_template(
|
||||||
service_api_client.get_service_template(service_id, template_id)['data'],
|
template,
|
||||||
current_service,
|
current_service,
|
||||||
show_recipient=True,
|
show_recipient=True,
|
||||||
|
expand_emails=True,
|
||||||
letter_preview_url=url_for(
|
letter_preview_url=url_for(
|
||||||
'.view_letter_template_preview',
|
'.view_letter_template_preview',
|
||||||
service_id=service_id,
|
service_id=service_id,
|
||||||
template_id=template_id,
|
template_id=template_id,
|
||||||
filetype='png',
|
filetype='png',
|
||||||
|
page_count=get_page_count_for_letter(template),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -150,15 +154,19 @@ def send_test(service_id, template_id):
|
|||||||
|
|
||||||
file_name = current_app.config['TEST_MESSAGE_FILENAME']
|
file_name = current_app.config['TEST_MESSAGE_FILENAME']
|
||||||
|
|
||||||
|
template = service_api_client.get_service_template(service_id, template_id)['data']
|
||||||
|
|
||||||
template = get_template(
|
template = get_template(
|
||||||
service_api_client.get_service_template(service_id, template_id)['data'],
|
template,
|
||||||
current_service,
|
current_service,
|
||||||
show_recipient=True,
|
show_recipient=True,
|
||||||
|
expand_emails=True,
|
||||||
letter_preview_url=url_for(
|
letter_preview_url=url_for(
|
||||||
'.view_letter_template_preview',
|
'.view_letter_template_preview',
|
||||||
service_id=service_id,
|
service_id=service_id,
|
||||||
template_id=template_id,
|
template_id=template_id,
|
||||||
filetype='png',
|
filetype='png',
|
||||||
|
page_count=get_page_count_for_letter(template),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from notifications_python_client.errors import HTTPError
|
|||||||
|
|
||||||
from app.main import main
|
from app.main import main
|
||||||
from app.utils import user_has_permissions, get_template
|
from app.utils import user_has_permissions, get_template
|
||||||
from app.template_previews import TemplatePreview
|
from app.template_previews import TemplatePreview, get_page_count_for_letter
|
||||||
from app.main.forms import (
|
from app.main.forms import (
|
||||||
ChooseTemplateType,
|
ChooseTemplateType,
|
||||||
SMSTemplateForm,
|
SMSTemplateForm,
|
||||||
@@ -74,10 +74,6 @@ def choose_template(service_id):
|
|||||||
)
|
)
|
||||||
def view_template(service_id, template_id):
|
def view_template(service_id, template_id):
|
||||||
template = service_api_client.get_service_template(service_id, template_id)['data']
|
template = service_api_client.get_service_template(service_id, template_id)['data']
|
||||||
page_count = None
|
|
||||||
if template['template_type'] == 'letter':
|
|
||||||
page_count, _, _ = TemplatePreview.from_database_object(template, filetype='json')
|
|
||||||
page_count = json.loads(page_count.decode('utf-8'))['count']
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'views/templates/template.html',
|
'views/templates/template.html',
|
||||||
template=get_template(
|
template=get_template(
|
||||||
@@ -91,7 +87,7 @@ def view_template(service_id, template_id):
|
|||||||
filetype='png',
|
filetype='png',
|
||||||
),
|
),
|
||||||
show_recipient=True,
|
show_recipient=True,
|
||||||
page_count=page_count,
|
page_count=get_page_count_for_letter(template),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from flask import current_app
|
from flask import current_app, json
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from app import current_service
|
from app import current_service
|
||||||
@@ -32,3 +32,14 @@ class TemplatePreview:
|
|||||||
template.values,
|
template.values,
|
||||||
page=page,
|
page=page,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_page_count_for_letter(template, values=None):
|
||||||
|
|
||||||
|
if template['template_type'] != 'letter':
|
||||||
|
return None
|
||||||
|
|
||||||
|
page_count, _, _ = TemplatePreview.from_database_object(template, values, filetype='json')
|
||||||
|
page_count = json.loads(page_count.decode('utf-8'))['count']
|
||||||
|
|
||||||
|
return page_count
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from functools import partial
|
|||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
from notifications_utils.template import LetterPreviewTemplate
|
from notifications_utils.template import LetterPreviewTemplate
|
||||||
|
|
||||||
from app.template_previews import TemplatePreview
|
from app.template_previews import TemplatePreview, get_page_count_for_letter
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('partial_call, expected_page_argument', [
|
@pytest.mark.parametrize('partial_call, expected_page_argument', [
|
||||||
@@ -65,3 +65,32 @@ def test_from_database_object_makes_request(
|
|||||||
headers = {'Authorization': 'Token my-secret-key'}
|
headers = {'Authorization': 'Token my-secret-key'}
|
||||||
|
|
||||||
request_mock.assert_called_once_with(expected_url, json=data, headers=headers)
|
request_mock.assert_called_once_with(expected_url, json=data, headers=headers)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('template_type', [
|
||||||
|
'email', 'sms'
|
||||||
|
])
|
||||||
|
def test_page_count_returns_none_for_non_letter_templates(template_type):
|
||||||
|
assert get_page_count_for_letter({'template_type': template_type}) is None
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('partial_call, expected_template_preview_args', [
|
||||||
|
(
|
||||||
|
partial(get_page_count_for_letter),
|
||||||
|
({'template_type': 'letter'}, None)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
partial(get_page_count_for_letter, values={'foo': 'bar'}),
|
||||||
|
({'template_type': 'letter'}, {'foo': 'bar'})
|
||||||
|
),
|
||||||
|
])
|
||||||
|
def test_page_count_unpacks_from_json_response(
|
||||||
|
mocker,
|
||||||
|
partial_call,
|
||||||
|
expected_template_preview_args,
|
||||||
|
):
|
||||||
|
mock_template_preview = mocker.patch('app.template_previews.TemplatePreview.from_database_object')
|
||||||
|
mock_template_preview.return_value = (b'{"count": 99}', 200, {})
|
||||||
|
|
||||||
|
assert partial_call({'template_type': 'letter'}) == 99
|
||||||
|
mock_template_preview.assert_called_once_with(*expected_template_preview_args, filetype='json')
|
||||||
|
|||||||
Reference in New Issue
Block a user