Exemplo n.º 1
0
    def test_direct_form_field_overrides(self):
        # Test that field overrides defined through DIRECT_FORM_FIELD_OVERRIDES
        # are applied

        SimplePageForm = get_form_for_model(SimplePage, form_class=WagtailAdminPageForm)
        simple_form = SimplePageForm()
        # plain TextFields should use AdminAutoHeightTextInput as the widget
        self.assertEqual(type(simple_form.fields['content'].widget), AdminAutoHeightTextInput)

        # This override should NOT be applied to subclasses of TextField such as
        # RichTextField - they should retain their default widgets
        EventPageForm = get_form_for_model(EventPage, form_class=WagtailAdminPageForm)
        event_form = EventPageForm()
        self.assertEqual(type(event_form.fields['body'].widget), HalloRichTextArea)
Exemplo n.º 2
0
    def test_direct_form_field_overrides(self):
        # Test that field overrides defined through DIRECT_FORM_FIELD_OVERRIDES
        # are applied

        SimplePageForm = get_form_for_model(SimplePage)
        simple_form = SimplePageForm()
        # plain TextFields should use AdminAutoHeightTextInput as the widget
        self.assertEqual(type(simple_form.fields['content'].widget), AdminAutoHeightTextInput)

        # This override should NOT be applied to subclasses of TextField such as
        # RichTextField - they should retain their default widgets
        EventPageForm = get_form_for_model(EventPage)
        event_form = EventPageForm()
        self.assertEqual(type(event_form.fields['body'].widget), RichTextArea)
Exemplo n.º 3
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(EventPage, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20),
                               date_to=date(2014, 7, 21))

        self.EndDatePanel = FieldPanel('date_to', classname='full-width')
Exemplo n.º 4
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.EndDatePanel = FieldPanel('date_to', classname='full-width').bind_to_model(EventPage)
Exemplo n.º 5
0
    def test_get_form_for_model_with_widget_overides_by_class(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            widgets={'date_from': forms.PasswordInput})
        form = EventPageForm()

        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), forms.PasswordInput)
Exemplo n.º 6
0
    def test_get_form_for_model_with_widget_overides_by_class(self):
        EventPageForm = get_form_for_model(
            EventPage, widgets={'date_from': forms.PasswordInput})
        form = EventPageForm()

        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget),
                         forms.PasswordInput)
Exemplo n.º 7
0
    def setUp(self):
        self.form_page = make_form_page()

        self.FormPageForm = get_form_for_model(FormPage,
                                               form_class=WagtailAdminPageForm)

        submissions_panel = FormSubmissionsPanel().bind_to_model(FormPage)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Exemplo n.º 8
0
    def setUp(self):
        self.form_page = make_form_page()

        self.FormPageForm = get_form_for_model(
            FormPage, form_class=WagtailAdminPageForm
        )

        submissions_panel = FormSubmissionsPanel().bind_to_model(FormPage)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Exemplo n.º 9
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.DatesPanel = FieldRowPanel([
            FieldPanel('date_from', classname='col4'),
            FieldPanel('date_to', classname='coltwo'),
        ]).bind_to_model(EventPage)
Exemplo n.º 10
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.DatesPanel = FieldRowPanel([
            FieldPanel('date_from', classname='col4'),
            FieldPanel('date_to', classname='coltwo'),
        ]).bind_to_model(EventPage)
Exemplo n.º 11
0
 def test_get_form_for_model(self):
     form = get_form_for_model(self.FakeClass,
                               fields=[],
                               exclude=[self.mock_exclude],
                               formsets=['baz'],
                               exclude_formsets=['quux'],
                               widgets=['bacon'])
     self.assertEqual(form.Meta.exclude, [self.mock_exclude])
     self.assertEqual(form.Meta.formsets, ['baz'])
     self.assertEqual(form.Meta.exclude_formsets, ['quux'])
     self.assertEqual(form.Meta.widgets, ['bacon'])
Exemplo n.º 12
0
 def test_get_form_for_model(self):
     form = get_form_for_model(self.FakeClass,
                               fields=[],
                               exclude=[self.mock_exclude],
                               formsets=['baz'],
                               exclude_formsets=['quux'],
                               widgets=['bacon'])
     self.assertEqual(form.Meta.exclude, [self.mock_exclude])
     self.assertEqual(form.Meta.formsets, ['baz'])
     self.assertEqual(form.Meta.exclude_formsets, ['quux'])
     self.assertEqual(form.Meta.widgets, ['bacon'])
Exemplo n.º 13
0
    def test_get_form_for_model_with_specific_fields(self):
        EventPageForm = get_form_for_model(EventPage, fields=['date_from'], formsets=['speakers'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Exemplo n.º 14
0
    def test_get_form_for_model_with_specific_fields(self):
        EventPageForm = get_form_for_model(EventPage, fields=['date_from'], formsets=['speakers'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Exemplo n.º 15
0
    def setUp(self):
        model = PageChooserModel
        self.chosen_page = Page.objects.get(pk=2)
        test_instance = model.objects.create(page=self.chosen_page)
        self.dotted_model = model._meta.app_label + '.' + model._meta.model_name

        self.page_chooser_panel_class = PageChooserPanel('page', model)

        form_class = get_form_for_model(model, widgets=self.page_chooser_panel_class.widget_overrides())
        form = form_class(instance=test_instance)
        form.errors['page'] = form.error_class(['errors'])

        self.page_chooser_panel = self.page_chooser_panel_class(instance=test_instance,
                                                                form=form)
Exemplo n.º 16
0
    def get_form_class(cls, model):

        # def clean(form):
        #     if form.__class__.__name__ == 'ProgramSectionPageForm':
        #         form.data['title'] = 'TEST - TITLE'
        #         form.data['slug'] = "{0}-{1}".format(form.data['start_time'], form.data['end_time'])
        #     return form.clean()

        if cls._form_class is None:
            cls._form_class = get_form_for_model(
                model,
                formsets=cls.required_formsets(), widgets=cls.widget_overrides())
            # cls._form_class.clean = clean
        return cls._form_class
Exemplo n.º 17
0
    def setUp(self):
        model = PageChooserModel
        self.chosen_page = Page.objects.get(pk=2)
        test_instance = model.objects.create(page=self.chosen_page)
        self.dotted_model = model._meta.app_label + '.' + model._meta.model_name

        self.page_chooser_panel_class = PageChooserPanel('page', model)

        form_class = get_form_for_model(model, widgets=self.page_chooser_panel_class.widget_overrides())
        form = form_class(instance=test_instance)
        form.errors['page'] = form.error_class(['errors'])

        self.page_chooser_panel = self.page_chooser_panel_class(instance=test_instance,
                                                                form=form)
Exemplo n.º 18
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(EventPage, exclude=['title'], exclude_formsets=['related_links'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # 'path' should still be excluded even though it isn't explicitly in the exclude list
        self.assertNotIn('path', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Exemplo n.º 19
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(EventPage, exclude=['title'], exclude_formsets=['related_links'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # 'path' should still be excluded even though it isn't explicitly in the exclude list
        self.assertNotIn('path', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Exemplo n.º 20
0
    def test_get_form_for_model(self):
        EventPageForm = get_form_for_model(EventPage)
        form = EventPageForm()

        # form should contain a title field (from the base Page)
        self.assertEqual(type(form.fields['title']), forms.CharField)
        # and 'date_from' from EventPage
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        # the widget should be overridden with AdminDateInput as per FORM_FIELD_OVERRIDES
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)

        # treebeard's 'path' field should be excluded
        self.assertNotIn('path', form.fields)

        # all child relations become formsets by default
        self.assertIn('speakers', form.formsets)
        self.assertIn('related_links', form.formsets)
Exemplo n.º 21
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            exclude=['title'], exclude_formsets=['related_links'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # 'path' is not excluded any more, as the excluded fields were overridden
        self.assertIn('path', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Exemplo n.º 22
0
    def test_get_form_for_model(self):
        EventPageForm = get_form_for_model(EventPage)
        form = EventPageForm()

        # form should contain a title field (from the base Page)
        self.assertEqual(type(form.fields['title']), forms.CharField)
        # and 'date_from' from EventPage
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        # the widget should be overridden with AdminDateInput as per FORM_FIELD_OVERRIDES
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)

        # treebeard's 'path' field should be excluded
        self.assertNotIn('path', form.fields)

        # all child relations become formsets by default
        self.assertIn('speakers', form.formsets)
        self.assertIn('related_links', form.formsets)
Exemplo n.º 23
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            exclude=['title'], exclude_formsets=['related_links'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # 'path' is not excluded any more, as the excluded fields were overridden
        self.assertIn('path', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Exemplo n.º 24
0
    def test_get_form_for_model_with_widget_overides_by_instance(self):
        EventPageForm = get_form_for_model(EventPage, widgets={'date_from': forms.PasswordInput()})
        form = EventPageForm()

        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), forms.PasswordInput)
Exemplo n.º 25
0
 def setup(self):
     self.form_class = get_form_for_model(
         model=models.Language, form_class=models.WagtailAdminLanguageForm)
Exemplo n.º 26
0
 def get_form_class(self):
     content_type = ContentType.objects.get_for_model(self.object)
     page_class = content_type.model_class()
     return get_form_for_model(page_class, fields=['go_live_at'], formsets=[])