From 5e1ea82324fe1348e2a9456dbd235b17a18f4413 Mon Sep 17 00:00:00 2001 From: Benjamin Bertrand <benjamin.bertrand@esss.se> Date: Wed, 28 Nov 2018 13:52:23 +0100 Subject: [PATCH] Add button to delete Ansible group JIRA INFRA-678 #action In Progress --- app/network/views.py | 10 ++++++++++ app/templates/network/view_group.html | 20 ++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/network/views.py b/app/network/views.py index cf617b2..c6e5869 100644 --- a/app/network/views.py +++ b/app/network/views.py @@ -403,6 +403,16 @@ def view_ansible_group(name): return render_template("network/view_group.html", group=group) +@bp.route("/groups/delete", methods=["POST"]) +@login_groups_accepted("admin") +def delete_ansible_group(): + group = models.AnsibleGroup.query.get_or_404(request.form["group_id"]) + db.session.delete(group) + db.session.commit() + flash(f"Group {group.name} has been deleted", "success") + return redirect(url_for("network.list_ansible_groups")) + + @bp.route("/groups/edit/<name>", methods=("GET", "POST")) @login_groups_accepted("admin") def edit_ansible_group(name): diff --git a/app/templates/network/view_group.html b/app/templates/network/view_group.html index 1e41b74..c2a0843 100644 --- a/app/templates/network/view_group.html +++ b/app/templates/network/view_group.html @@ -1,5 +1,6 @@ {% extends "network/groups.html" %} -{% from "_helpers.html" import link_to_hosts, link_to_ansible_groups %} +{% from "_helpers.html" import link_to_hosts, link_to_ansible_groups, + delete_button_with_confirmation %} {% block title %}View Ansible group - CSEntry{% endblock %} @@ -17,7 +18,22 @@ <div class="col-sm-9"> <dl class="row"> <dt class="col-sm-3">Name</dt> - <dd class="col-sm-9">{{ group.name }}</dd> + <dd class="col-sm-9"> + <div class="row"> + <div class="col-sm-10"> + {{ group.name }} + </div> + {% if current_user.is_admin %} + <div class="col-sm-2 text-right"> + <form method="POST" action="/network/groups/delete"> + <input id="group_id" name="group_id" type="hidden" value="{{ group.id }}"> + {{ delete_button_with_confirmation("Delete group", "deleteConfirmation-%s" | format(group.id), + "Are you sure you want to delete the group %s?" | format(group.name)) }} + </form> + </div> + {% endif %} + </div> + </dd> <dt class="col-sm-3">Variables</dt> <dd class="col-sm-9"><pre>{{ group.vars | toyaml }}</pre></dd> <dt class="col-sm-3">Type</dt> -- GitLab