def process_folder_management_form(form, current_folder_id): current_service.get_template_folder_with_user_permission_or_403( current_folder_id, current_user) new_folder_id = None if form.is_add_template_op: return _add_template_by_type( form.add_template_by_template_type.data, current_folder_id, ) if form.is_add_folder_op: new_folder_id = template_folder_api_client.create_template_folder( current_service.id, name=form.get_folder_name(), parent_id=current_folder_id) if form.is_move_op: # if we've just made a folder, we also want to move there move_to_id = new_folder_id or form.move_to.data current_service.move_to_folder( ids_to_move=form.templates_and_folders.data, move_to=move_to_id) return redirect(request.url)
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 delete_template_folder(service_id, template_folder_id): template_folder = current_service.get_template_folder_with_user_permission_or_403( template_folder_id, current_user) if len( current_service.get_template_folders_and_templates( template_type="all", template_folder_id=template_folder_id)) > 0: flash(_l("You must empty this folder before you can delete it"), "info") return redirect( url_for( ".choose_template", service_id=service_id, template_type="all", template_folder_id=template_folder_id, )) if request.method == "POST": try: template_folder_api_client.delete_template_folder( current_service.id, template_folder_id) return redirect( url_for( ".choose_template", service_id=service_id, template_folder_id=template_folder["parent_id"], )) except HTTPError as e: msg = _l("Folder is not empty") if e.status_code == 400 and msg in e.message: flash(_("You must empty this folder before you can delete it"), "info") return redirect( url_for( ".choose_template", service_id=service_id, template_type="all", template_folder_id=template_folder_id, )) else: abort(500, e) else: flash( "{} ‘{}’ {}".format( _l("Are you sure you want to delete the"), template_folder["name"], _l("folder?"), ), "delete", ) return manage_template_folder(service_id, template_folder_id)
def delete_template_folder(service_id, template_folder_id): template_folder = current_service.get_template_folder_with_user_permission_or_403( template_folder_id, current_user) if len( current_service.get_template_folders_and_templates( template_type="all", template_folder_id=template_folder_id)) > 0: flash("You must empty this folder before you can delete it", 'info') return redirect( url_for('.choose_template', service_id=service_id, template_type="all", template_folder_id=template_folder_id)) if request.method == 'POST': try: template_folder_api_client.delete_template_folder( current_service.id, template_folder_id) return redirect( url_for('.choose_template', service_id=service_id, template_folder_id=template_folder['parent_id'])) except HTTPError as e: msg = "Folder is not empty" if e.status_code == 400 and msg in e.message: flash("You must empty this folder before you can delete it", 'info') return redirect( url_for('.choose_template', service_id=service_id, template_type="all", template_folder_id=template_folder_id)) else: abort(500, e) else: flash( "Are you sure you want to delete the ‘{}’ folder?".format( template_folder['name']), 'delete') return manage_template_folder(service_id, template_folder_id)