diff --git a/app/assets/stylesheets/components/pill.scss b/app/assets/stylesheets/components/pill.scss index be3619984..0877d6752 100644 --- a/app/assets/stylesheets/components/pill.scss +++ b/app/assets/stylesheets/components/pill.scss @@ -58,6 +58,11 @@ } } + + &-centered-item { + text-align: center; + } + } .pill-separate { diff --git a/app/main/views/templates.py b/app/main/views/templates.py index c417576f4..a9e74658f 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -43,26 +43,7 @@ page_headings = { } -@main.route("/services//templates", methods=['GET']) -@login_required -@user_has_permissions( - 'view_activity', - 'send_texts', - 'send_emails', - 'manage_templates', - 'manage_api_keys', - admin_override=True, - any_=True, -) -def choose_template(service_id): - return render_template( - 'views/templates/choose.html', - templates=service_api_client.get_service_templates(service_id)['data'], - search_form=SearchTemplatesForm(), - ) - - -@main.route("/services//templates/") +@main.route("/services//templates/") @login_required @user_has_permissions( 'view_activity', @@ -73,7 +54,7 @@ def choose_template(service_id): admin_override=True, any_=True ) 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, str(template_id))['data'] return render_template( 'views/templates/template.html', template=get_template( @@ -92,6 +73,51 @@ def view_template(service_id, template_id): ) +@main.route("/services//templates") +@main.route("/services//templates/") +@login_required +@user_has_permissions( + 'view_activity', + 'send_texts', + 'send_emails', + 'manage_templates', + 'manage_api_keys', + admin_override=True, + any_=True, +) +def choose_template(service_id, template_type='all'): + templates = service_api_client.get_service_templates(service_id)['data'] + + has_multiple_template_types = len({ + template['template_type'] for template in templates + }) > 1 + + template_nav_items = [ + (label, key, url_for('.choose_template', service_id=current_service['id'], template_type=key), '') + for label, key in filter(None, [ + ('All', 'all'), + ('Text message', 'sms'), + ('Email', 'email'), + ('Letter', 'letter') if current_service['can_send_letters'] else None, + ]) + ] + + templates_on_page = [ + template for template in templates + if template_type in ['all', template['template_type']] + ] + + return render_template( + 'views/templates/choose.html', + templates=templates_on_page, + show_search_box=(len(templates_on_page) > 7), + show_template_nav=has_multiple_template_types and (len(templates) > 2), + template_nav_items=template_nav_items, + template_type=template_type, + search_form=SearchTemplatesForm(), + ) + + @main.route("/services//templates/.") @login_required @user_has_permissions('view_activity', admin_override=True) diff --git a/app/templates/components/pill.html b/app/templates/components/pill.html index efd895069..bcbb5408b 100644 --- a/app/templates/components/pill.html +++ b/app/templates/components/pill.html @@ -3,19 +3,22 @@ {% macro pill( items=[], current_value=None, - big_number_args={'smaller': True} + big_number_args={'smaller': True}, + show_count=True ) %}