Ejemplo 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=TuiuiuAdminPageForm)
        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=TuiuiuAdminPageForm)
        event_form = EventPageForm()
        self.assertEqual(type(event_form.fields['body'].widget),
                         HalloRichTextArea)
Ejemplo n.º 2
0
    def setUp(self):
        self.form_page = make_form_page()

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

        submissions_panel = FormSubmissionsPanel().bind_to_model(FormPage)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Ejemplo n.º 3
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(EventPage,
                                                form_class=TuiuiuAdminPageForm,
                                                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)
Ejemplo n.º 4
0
    def test_get_form_for_model_with_widget_overides_by_instance(self):
        EventPageForm = get_form_for_model(
            EventPage,
            form_class=TuiuiuAdminPageForm,
            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)
Ejemplo n.º 5
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(EventPage,
                                                form_class=TuiuiuAdminPageForm,
                                                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)
Ejemplo n.º 6
0
    def test_get_form_for_model_with_specific_fields(self):
        EventPageForm = get_form_for_model(EventPage,
                                           form_class=TuiuiuAdminPageForm,
                                           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)
Ejemplo n.º 7
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(EventPage,
                                           form_class=TuiuiuAdminPageForm,
                                           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)
Ejemplo n.º 8
0
    def test_get_form_for_model(self):
        EventPageForm = get_form_for_model(EventPage,
                                           form_class=TuiuiuAdminPageForm)
        form = EventPageForm()

        # form should be a subclass of TuiuiuAdminModelForm
        self.assertTrue(issubclass(EventPageForm, TuiuiuAdminModelForm))
        # 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)