Skip to content

Commit

Permalink
Set widget types before render the form
Browse files Browse the repository at this point in the history
  • Loading branch information
Norman Rusch committed Feb 8, 2017
1 parent d0e9dba commit 9ffa83e
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
7 changes: 5 additions & 2 deletions barbeque/forms/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,14 @@ class FloppyformsLayoutMixin(object):
row_classname = 'form-row'
div_template_name = 'barbeque/forms/layout/div.html'

def __init__(self, *args, **kwargs):
super(FloppyformsLayoutMixin, self).__init__(*args, **kwargs)
def set_widget_types(self):
for name, field in self.fields.items():
widget = self.fields[name].widget
widget.widget_type = widget.__class__.__name__.lower()

def _render_as(self, *args, **kwargs):
self.set_widget_types()
return super()._render_as(*args, **kwargs)

def as_div(self):
return self._render_as(self.div_template_name)
1 change: 1 addition & 0 deletions barbeque/tests/test_forms_mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ class TestFloppyformsLayoutMixin:

def test_widget_type(self):
form = FloppyformsLayoutForm()
form.set_widget_types()
assert form.fields['name'].widget.widget_type == 'textinput'

@mock.patch('barbeque.tests.test_forms_mixins.FloppyformsLayoutForm._render_as')
Expand Down

0 comments on commit 9ffa83e

Please sign in to comment.