Extend inline chooser panel templates to group create views

This commit is contained in:
Nick Smith 2014-07-07 17:03:06 +01:00
parent bc9ed8086d
commit c92b78fdfa
4 changed files with 24 additions and 4 deletions

View file

@ -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()

View file

@ -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 @@
<div class="nice-padding">
<ul class="fields">
{% include "wagtailadmin/shared/field_as_li.html" with field=form.name %}
{% include "wagtailadmin/shared/field_as_li.html" with field=form.permissions %}
{% format_permissions permission_bound_field=form.permissions %}
{% include "wagtailusers/groups/includes/page_permissions_formset.html" with formset=formset only %}
<li><input type="submit" value='{% trans "Add group" %}' /></li>
</ul>
</div>
</form>
{% endblock %}
{% block extra_js %}
{% include "wagtailadmin/pages/_editor_js.html" %}
<script type="text/javascript">
{% include "wagtailusers/groups/includes/page_permissions_formset.js" with formset=formset only %}
</script>
{% endblock %}

View file

@ -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 = []

View file

@ -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,
})