mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-10 16:24:49 +00:00
Extend inline chooser panel templates to group create views
This commit is contained in:
parent
bc9ed8086d
commit
c92b78fdfa
4 changed files with 24 additions and 4 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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 %}
|
||||
|
|
|
|||
|
|
@ -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 = []
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
})
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue