page: fix initial values for groups in visibility form (#37111)

This commit is contained in:
Lauréline Guérin 2019-10-22 10:01:29 +02:00
parent 3be27ce16b
commit 8f0bc9a059
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 22 additions and 5 deletions

View File

@ -65,15 +65,14 @@ class PageEditPictureForm(forms.ModelForm):
class PageVisibilityForm(forms.ModelForm):
groups = forms.MultipleChoiceField(
label=_('Groups'),
required=False,
choices=get_groups_as_choices)
class Meta:
model = Page
fields = ('public', 'groups')
def __init__(self, *args, **kwargs):
super(PageVisibilityForm, self).__init__(*args, **kwargs)
self.fields['groups'].queryset = Group.objects.order_by('name')
class PageSelectTemplateForm(forms.ModelForm):
class Meta:

View File

@ -12,6 +12,7 @@ from django.utils.timezone import now
from combo.data.models import Page, CellBase, TextCell, LinkCell
from combo.data.management.commands.import_site import Command as ImportSiteCommand
from combo.data.management.commands.export_site import Command as ExportSiteCommand
from combo.manager.forms import PageVisibilityForm
pytestmark = pytest.mark.django_db
@ -123,6 +124,23 @@ def test_page_visibility():
assert page.is_visible(user1)
assert not page.is_visible(user2)
def test_page_visibility_groups_init():
page = Page.objects.create()
group1 = Group.objects.create(name='foobar')
group2 = Group.objects.create(name='another group')
form = PageVisibilityForm(instance=page)
assert form['groups'].initial == []
page.groups.set([group1])
form = PageVisibilityForm(instance=page)
assert form['groups'].initial == [group1]
# test sorting
assert list(form.fields['groups'].queryset) == [group2, group1]
def test_import_export_pages():
page = Page(title=u'foo', slug='foo', order=0, description="Foo's page")
page.save()