From 2543478dc3e1d4ba995056dfedb274757a425471 Mon Sep 17 00:00:00 2001 From: Nick Smith Date: Fri, 11 Jul 2014 11:46:51 +0100 Subject: [PATCH] Implement group delete functionality --- .../wagtailusers/groups/confirm_delete.html | 33 +++++++++++++++++++ .../templates/wagtailusers/groups/edit.html | 6 +++- wagtail/wagtailusers/urls/groups.py | 1 + wagtail/wagtailusers/views/groups.py | 14 ++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html diff --git a/wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html b/wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html new file mode 100644 index 000000000..c86ab250f --- /dev/null +++ b/wagtail/wagtailusers/templates/wagtailusers/groups/confirm_delete.html @@ -0,0 +1,33 @@ +{% extends "wagtailadmin/base.html" %} +{% load i18n %} +{% block titletag %}{% trans "Delete group" %}{% endblock %} +{% block bodyclass %}menu-groups{% endblock %} + +{% block content %} + {% trans "Delete group" as del_str %} + {% include "wagtailadmin/shared/header.html" with title=del_str subtitle=group.name icon="group" %} + +
+
+

+ {% blocktrans with group_user_count=group.user_set.count group_name=group.name %}The group '{{ group_name }}' has {{ group_user_count }} users assigned.{% endblocktrans %} +

+

+ {% if group.user_set.count %} + If you delete the group, those users will lose the permissions + granted to them by membership of this group, but retain + permissions they have through membership of other groups. + {% else %} + It is probably safe to delete. + {% endif %} +

+
+
+

{% trans "Are you sure you want to delete this group?" %}

+
+ {% csrf_token %} + +
+
+
+{% endblock %} diff --git a/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html b/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html index 54b4b1d9b..7ef34d89d 100644 --- a/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html +++ b/wagtail/wagtailusers/templates/wagtailusers/groups/edit.html @@ -16,7 +16,11 @@ {% include "wagtailadmin/shared/field_as_li.html" with field=form.name %} {% format_permissions permission_bound_field=form.permissions %} {% include "wagtailusers/groups/includes/page_permissions_formset.html" with formset=formset only %} -
  • +
  • + {% if perms.auth.delete_group %} + {% trans "Delete group" %} + {% endif %} +
  • diff --git a/wagtail/wagtailusers/urls/groups.py b/wagtail/wagtailusers/urls/groups.py index 4899eea12..be3ba3db9 100644 --- a/wagtail/wagtailusers/urls/groups.py +++ b/wagtail/wagtailusers/urls/groups.py @@ -5,4 +5,5 @@ urlpatterns = [ url(r'^$', groups.index, name='wagtailusers_groups_index'), url(r'^new/$', groups.create, name='wagtailusers_groups_create'), url(r'^(\d+)/$', groups.edit, name='wagtailusers_groups_edit'), + url(r'^(\d+)/delete/$', groups.delete, name='wagtailusers_groups_delete'), ] diff --git a/wagtail/wagtailusers/views/groups.py b/wagtail/wagtailusers/views/groups.py index 008a8cb0b..07a475c77 100644 --- a/wagtail/wagtailusers/views/groups.py +++ b/wagtail/wagtailusers/views/groups.py @@ -133,3 +133,17 @@ def edit(request, group_id): 'form': form, 'formset': formset, }) + + +@permission_required('auth.delete_group') +def delete(request, group_id): + group = get_object_or_404(Group, id=group_id) + + if request.POST: + group.delete() + messages.success(request, _("Group '{0}' deleted.").format(group.name)) + return redirect('wagtailusers_groups_index') + + return render(request, "wagtailusers/groups/confirm_delete.html", { + 'group': group, + })