Projet

Général

Profil

0001-page-fix-initial-values-for-groups-in-visibility-for.patch

Lauréline Guérin, 22 octobre 2019 10:02

Télécharger (2,37 ko)

Voir les différences:

Subject: [PATCH] page: fix initial values for groups in visibility form
 (#37111)

 combo/manager/forms.py |  9 ++++-----
 tests/test_pages.py    | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+), 5 deletions(-)
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
-