diff --git a/wagtail/wagtailusers/forms.py b/wagtail/wagtailusers/forms.py
index cdcb561c5..06ae6bbbf 100644
--- a/wagtail/wagtailusers/forms.py
+++ b/wagtail/wagtailusers/forms.py
@@ -179,7 +179,7 @@ class GroupForm(forms.ModelForm):
# be clobbered by this form.
try:
untouchable_permissions = self.instance.permissions.exclude(pk__in=self.registered_permissions)
- except AttributeError:
+ except ValueError:
# this form is not bound; we're probably creating a new group
untouchable_permissions = Permission.objects.none()
group = super(GroupForm, self).save()
diff --git a/wagtail/wagtailusers/templates/wagtailusers/groups/create.html b/wagtail/wagtailusers/templates/wagtailusers/groups/create.html
index dd9f34806..5ea5fd4bd 100644
--- a/wagtail/wagtailusers/templates/wagtailusers/groups/create.html
+++ b/wagtail/wagtailusers/templates/wagtailusers/groups/create.html
@@ -1,5 +1,6 @@
{% extends "wagtailadmin/base.html" %}
{% load image_tags %}
+{% load wagtailusers_tags %}
{% load i18n %}
{% block titletag %}{% trans "Add group" %}{% endblock %}
{% block bodyclass %}menu-groups{% endblock %}
@@ -13,9 +14,17 @@
{% endblock %}
+{% block extra_js %}
+ {% include "wagtailadmin/pages/_editor_js.html" %}
+
+
+{% endblock %}
diff --git a/wagtail/wagtailusers/templatetags/wagtailusers_tags.py b/wagtail/wagtailusers/templatetags/wagtailusers_tags.py
index 074700460..cee2f722e 100644
--- a/wagtail/wagtailusers/templatetags/wagtailusers_tags.py
+++ b/wagtail/wagtailusers/templatetags/wagtailusers_tags.py
@@ -30,7 +30,7 @@ def format_permissions(permission_bound_field):
permissions = permission_bound_field.field._queryset
# get a distinct list of the content types that these permissions relate to
content_type_ids = set(permissions.values_list('content_type_id', flat=True))
- initial = permission_bound_field.form.initial['permissions']
+ initial = permission_bound_field.form.initial.get('permissions', [])
object_perms = []
other_perms = []
diff --git a/wagtail/wagtailusers/views/groups.py b/wagtail/wagtailusers/views/groups.py
index 1c6347239..796b678f3 100644
--- a/wagtail/wagtailusers/views/groups.py
+++ b/wagtail/wagtailusers/views/groups.py
@@ -80,19 +80,30 @@ def index(request):
@permission_required(change_user_perm)
def create(request):
+ GroupPagePermissionFormSet = inlineformset_factory(
+ Group,
+ GroupPagePermission,
+ formset=BaseGroupPagePermissionFormSet,
+ extra=0
+ )
if request.POST:
form = GroupForm(request.POST)
- if form.is_valid():
+ formset = GroupPagePermissionFormSet(request.POST)
+ if form.is_valid() and formset.is_valid():
group = form.save()
+ formset.instance = group
+ formset.save()
messages.success(request, _("Group '{0}' created.").format(group))
return redirect('wagtailusers_groups_index')
else:
messages.error(request, _("The group could not be created due to errors."))
else:
form = GroupForm()
+ formset = GroupPagePermissionFormSet()
return render(request, 'wagtailusers/groups/create.html', {
'form': form,
+ 'formset': formset,
})