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)
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())
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)
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)
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)
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)
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)
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)