page: fix initial values for groups in visibility form (#37111)
This commit is contained in:
parent
3be27ce16b
commit
8f0bc9a059
|
@ -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:
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue