mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-18 05:30:21 -04:00
Add a new endpoint for managing a folder, use it to rename folder
- Add a GET / POST view: manage template folder - Add a template for that view, where a user can rename their folder - Add an API client method for updating a folder - Test the new feature, including the test that service without permissions cannot manage a folder
This commit is contained in:
@@ -369,6 +369,27 @@ def add_template_folder(service_id, template_folder_id=None):
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/templates/folders/<template_folder_id>/manage", methods=['GET', 'POST'])
|
||||
def manage_template_folder(service_id, template_folder_id):
|
||||
if not current_service.has_permission('edit_folders'):
|
||||
abort(403)
|
||||
|
||||
form = TemplateFolderForm()
|
||||
if form.validate_on_submit():
|
||||
template_folder_api_client.update_template_folder(
|
||||
current_service.id, template_folder_id, name=form.name.data
|
||||
)
|
||||
return redirect(
|
||||
url_for('.choose_template', service_id=service_id, template_folder_id=template_folder_id)
|
||||
)
|
||||
|
||||
return render_template(
|
||||
'views/templates/manage-template-folder.html',
|
||||
form=form,
|
||||
template_folder_path=current_service.get_template_folder_path(template_folder_id),
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<service_id>/templates/add-<template_type>", methods=['GET', 'POST'])
|
||||
@main.route("/services/<service_id>/templates/folders/<template_folder_id>/add-<template_type>",
|
||||
methods=['GET', 'POST'])
|
||||
|
||||
@@ -172,6 +172,7 @@ class HeaderNavigation(Navigation):
|
||||
'letter_jobs',
|
||||
'link_service_to_organisation',
|
||||
'manage_org_users',
|
||||
'manage_template_folder',
|
||||
'manage_users',
|
||||
'monthly',
|
||||
'new_password',
|
||||
@@ -310,6 +311,7 @@ class MainNavigation(Navigation):
|
||||
'copy_template',
|
||||
'delete_service_template',
|
||||
'edit_service_template',
|
||||
'manage_template_folder',
|
||||
'send_messages',
|
||||
'send_one_off',
|
||||
'send_one_off_step',
|
||||
@@ -625,6 +627,7 @@ class CaseworkNavigation(Navigation):
|
||||
'link_service_to_organisation',
|
||||
'live_services',
|
||||
'manage_org_users',
|
||||
'manage_template_folder',
|
||||
'manage_users',
|
||||
'monthly',
|
||||
'new_password',
|
||||
@@ -857,6 +860,7 @@ class OrgNavigation(Navigation):
|
||||
'letter_jobs',
|
||||
'link_service_to_organisation',
|
||||
'live_services',
|
||||
'manage_template_folder',
|
||||
'manage_users',
|
||||
'monthly',
|
||||
'new_password',
|
||||
|
||||
@@ -43,5 +43,11 @@ class TemplateFolderAPIClient(NotifyAdminAPIClient):
|
||||
template_ids,
|
||||
))
|
||||
|
||||
def update_template_folder(self, service_id, template_folder_id, name):
|
||||
self.post(
|
||||
'/service/{}/template-folder/{}'.format(service_id, template_folder_id),
|
||||
{"name": name}
|
||||
)
|
||||
|
||||
|
||||
template_folder_api_client = TemplateFolderAPIClient()
|
||||
|
||||
@@ -65,6 +65,10 @@
|
||||
{% if current_user.has_permissions('manage_templates') %}
|
||||
<div class="column-one-third">
|
||||
<a href="{{ url_for('.add_template_by_type', service_id=current_service.id, template_folder_id=current_template_folder_id) }}" class="button align-with-heading">Add new template</a>
|
||||
|
||||
{% if can_manage_folders and template_folder_path %}
|
||||
<a href="{{ url_for('.manage_template_folder', service_id=current_service.id, template_folder_id=current_template_folder_id) }}" class="align-with-heading">Manage</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
31
app/templates/views/templates/manage-template-folder.html
Normal file
31
app/templates/views/templates/manage-template-folder.html
Normal file
@@ -0,0 +1,31 @@
|
||||
{% extends "withnav_template.html" %}
|
||||
{% from "components/textbox.html" import textbox %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
|
||||
{% block service_page_title %}
|
||||
Templates
|
||||
{% for folder in template_folder_path %}
|
||||
/
|
||||
{{ folder.name }}
|
||||
{% endfor %}
|
||||
- Manage folder
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<h1 class="heading-large">
|
||||
<a href="{{ url_for('.choose_template', service_id=current_service.id, template_type=template_type) }}">Templates</a>
|
||||
{% for folder in template_folder_path %}
|
||||
/
|
||||
<a href="{{ url_for('.choose_template', service_id=current_service.id, template_type=template_type, template_folder_id=folder.id) }}">{{ folder.name }}</a>
|
||||
{% endfor %}
|
||||
</h1>
|
||||
|
||||
|
||||
{% call form_wrapper() %}
|
||||
{{ textbox(form.name) }}
|
||||
{{ page_footer('Save') }}
|
||||
{% endcall %}
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user