0001-page-fix-initial-values-for-groups-in-visibility-for.patch
combo/manager/forms.py | ||
---|---|---|
65 | 65 | |
66 | 66 | |
67 | 67 |
class PageVisibilityForm(forms.ModelForm): |
68 |
groups = forms.MultipleChoiceField( |
|
69 |
label=_('Groups'), |
|
70 |
required=False, |
|
71 |
choices=get_groups_as_choices) |
|
72 | ||
73 | 68 |
class Meta: |
74 | 69 |
model = Page |
75 | 70 |
fields = ('public', 'groups') |
76 | 71 | |
72 |
def __init__(self, *args, **kwargs): |
|
73 |
super(PageVisibilityForm, self).__init__(*args, **kwargs) |
|
74 |
self.fields['groups'].queryset = Group.objects.order_by('name') |
|
75 | ||
77 | 76 | |
78 | 77 |
class PageSelectTemplateForm(forms.ModelForm): |
79 | 78 |
class Meta: |
tests/test_pages.py | ||
---|---|---|
12 | 12 |
from combo.data.models import Page, CellBase, TextCell, LinkCell |
13 | 13 |
from combo.data.management.commands.import_site import Command as ImportSiteCommand |
14 | 14 |
from combo.data.management.commands.export_site import Command as ExportSiteCommand |
15 |
from combo.manager.forms import PageVisibilityForm |
|
15 | 16 | |
16 | 17 |
pytestmark = pytest.mark.django_db |
17 | 18 | |
... | ... | |
123 | 124 |
assert page.is_visible(user1) |
124 | 125 |
assert not page.is_visible(user2) |
125 | 126 | |
127 | ||
128 |
def test_page_visibility_groups_init(): |
|
129 |
page = Page.objects.create() |
|
130 |
group1 = Group.objects.create(name='foobar') |
|
131 |
group2 = Group.objects.create(name='another group') |
|
132 | ||
133 |
form = PageVisibilityForm(instance=page) |
|
134 |
assert form['groups'].initial == [] |
|
135 | ||
136 |
page.groups.set([group1]) |
|
137 |
form = PageVisibilityForm(instance=page) |
|
138 |
assert form['groups'].initial == [group1] |
|
139 | ||
140 |
# test sorting |
|
141 |
assert list(form.fields['groups'].queryset) == [group2, group1] |
|
142 | ||
143 | ||
126 | 144 |
def test_import_export_pages(): |
127 | 145 |
page = Page(title=u'foo', slug='foo', order=0, description="Foo's page") |
128 | 146 |
page.save() |
129 |
- |