def manage_template_folder(service_id, template_folder_id): template_folder = current_service.get_template_folder_with_user_permission_or_403(template_folder_id, current_user) form = TemplateFolderForm( name=template_folder['name'], users_with_permission=template_folder.get('users_with_permission', None), all_service_users=[user for user in current_service.active_users if user.id != current_user.id] ) if form.validate_on_submit(): if current_user.has_permissions("manage_service") and form.users_with_permission.all_service_users: users_with_permission = form.users_with_permission.data + [current_user.id] else: users_with_permission = None template_folder_api_client.update_template_folder( current_service.id, template_folder_id, name=form.name.data, users_with_permission=users_with_permission ) 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), current_service_id=current_service.id, template_folder_id=template_folder_id, template_type="all", )
def choose_template(service_id, template_type="all", template_folder_id=None): template_folder = current_service.get_template_folder(template_folder_id) user_has_template_folder_permission = current_user.has_template_folder_permission( template_folder) template_list = TemplateList(current_service, template_type, template_folder_id, current_user) templates_and_folders_form = TemplateAndFoldersSelectionForm( all_template_folders=current_service.get_user_template_folders( current_user), template_list=template_list, template_type=template_type, allow_adding_letter_template=current_service.has_permission("letter"), allow_adding_copy_of_template=(current_service.all_templates or len(current_user.service_ids) > 1), ) option_hints = {template_folder_id: "current folder"} if request.method == "POST" and templates_and_folders_form.validate_on_submit( ): if not current_user.has_permissions("manage_templates"): abort(403) try: return process_folder_management_form(templates_and_folders_form, template_folder_id) except HTTPError as e: flash(e.message) if "templates_and_folders" in templates_and_folders_form.errors: flash(_("Select at least one template or folder")) initial_state = request.args.get("initial_state") if request.method == "GET" and initial_state: templates_and_folders_form.op = initial_state sending_view = request.args.get("view") == "sending" return render_template( "views/templates/choose.html", current_template_folder_id=template_folder_id, template_folder_path=current_service.get_template_folder_path( template_folder_id), template_list=template_list, show_search_box=current_service.count_of_templates_and_folders > 7, show_template_nav=(current_service.has_multiple_template_types and (len(current_service.all_templates) > 2)), sending_view=sending_view, template_nav_items=get_template_nav_items(template_folder_id, sending_view), template_type=template_type, search_form=SearchByNameForm(), templates_and_folders_form=templates_and_folders_form, move_to_children=templates_and_folders_form.move_to.children(), user_has_template_folder_permission=user_has_template_folder_permission, option_hints=option_hints, )
def conversation_reply( service_id, notification_id, from_folder=None, ): return render_template( 'views/templates/choose-reply.html', templates_and_folders=TemplateList(current_service, template_folder_id=from_folder, user=current_user, template_type='sms'), template_folder_path=current_service.get_template_folder_path( from_folder), search_form=SearchByNameForm(), notification_id=notification_id, template_type='sms')
def choose_template(service_id, template_type='all', template_folder_id=None): template_folder = current_service.get_template_folder(template_folder_id) user_has_template_folder_permission = current_user.has_template_folder_permission( template_folder) template_list = TemplateList(current_service, template_type, template_folder_id, current_user) templates_and_folders_form = TemplateAndFoldersSelectionForm( all_template_folders=current_service.get_user_template_folders( current_user), template_list=template_list, template_type=template_type, available_template_types=current_service.available_template_types, allow_adding_copy_of_template=(current_service.all_templates or len(current_user.service_ids) > 1), ) option_hints = {template_folder_id: 'current folder'} if request.method == 'POST' and templates_and_folders_form.validate_on_submit( ): if not current_user.has_permissions('manage_templates'): abort(403) try: return process_folder_management_form(templates_and_folders_form, template_folder_id) except HTTPError as e: flash(e.message) elif templates_and_folders_form.trying_to_add_unavailable_template_type: return redirect( url_for( '.action_blocked', service_id=current_service.id, notification_type=templates_and_folders_form. add_template_by_template_type.data, return_to='add_new_template', )) if 'templates_and_folders' in templates_and_folders_form.errors: flash('Select at least one template or folder') initial_state = request.args.get('initial_state') if request.method == 'GET' and initial_state: templates_and_folders_form.op = initial_state return render_template( 'views/templates/choose.html', current_template_folder_id=template_folder_id, template_folder_path=current_service.get_template_folder_path( template_folder_id), template_list=template_list, show_search_box=current_service.count_of_templates_and_folders > 7, show_template_nav=(current_service.has_multiple_template_types and (len(current_service.all_templates) > 2)), template_nav_items=get_template_nav_items(template_folder_id), template_type=template_type, search_form=SearchByNameForm(), templates_and_folders_form=templates_and_folders_form, move_to_children=templates_and_folders_form.move_to.children(), user_has_template_folder_permission=user_has_template_folder_permission, option_hints=option_hints)