From e0074ebcaca86eebe8baf4c378fc3175aeb09a7e Mon Sep 17 00:00:00 2001 From: niphlod Date: Fri, 5 Jun 2015 22:10:33 +0200 Subject: [PATCH 1/2] fixes #994 we were overriding default classes for specific widgets --- gluon/sqlhtml.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 0a7b3cdb..87e5858e 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -1838,13 +1838,16 @@ class SQLFORM(FORM): operators = SELECT(*[OPTION(T(option), _value=option) for option in options], _class='form-control') _id = "%s_%s" % (value_id, name) if field_type in ['boolean', 'double', 'time', 'integer']: - value_input = SQLFORM.widgets[field_type].widget(field, field.default, _id=_id, _class='form-control') + widget_ = SQLFORM.widgets[field_type] + value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control') elif field_type == 'date': iso_format = {'_data-w2p_date_format' : '%Y-%m-%d'} - value_input = SQLFORM.widgets.date.widget(field, field.default, _id=_id, _class='form-control', **iso_format) + widget_ = SQLFORM.widgets.date + value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control', **iso_format) elif field_type == 'datetime': iso_format = {'_data-w2p_datetime_format' : '%Y-%m-%d %H:%M:%S'} - value_input = SQLFORM.widgets.datetime.widget(field, field.default, _id=_id, _class='form-control', **iso_format) + widget_ = SQLFORM.widgets.datetime + value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control', **iso_format) elif (field_type.startswith('reference ') or field_type.startswith('list:reference ')) and \ hasattr(field.requires, 'options'): @@ -1856,7 +1859,8 @@ class SQLFORM(FORM): elif field_type.startswith('reference ') or \ field_type.startswith('list:integer') or \ field_type.startswith('list:reference '): - value_input = SQLFORM.widgets.integer.widget(field, field.default, _id=_id, _class='form-control') + widget_ = SQLFORM.widgets.integer + value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control') else: value_input = INPUT( _type='text', _id=_id, From 509b0a6987706354256428dd817934be5384c935 Mon Sep 17 00:00:00 2001 From: niphlod Date: Sat, 6 Jun 2015 09:50:44 +0200 Subject: [PATCH 2/2] fixes is_in_set repr too --- gluon/sqlhtml.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 87e5858e..0c888074 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -859,14 +859,14 @@ def formstyle_bootstrap3_stacked(form, fields): label = '' elif isinstance(controls, (SELECT, TEXTAREA)): controls.add_class('form-control') - + elif isinstance(controls, SPAN): _controls = P(controls.components) elif isinstance(controls, UL): for e in controls.elements("input"): e.add_class('form-control') - + if isinstance(label, LABEL): label['_class'] = 'control-label' @@ -909,9 +909,9 @@ def formstyle_bootstrap3_inline_factory(col_label_size=3): label = '' elif isinstance(controls, (SELECT, TEXTAREA)): controls.add_class('form-control') - + elif isinstance(controls, SPAN): - _controls = P(controls.components, + _controls = P(controls.components, _class="form-control-static %s" % col_class) elif isinstance(controls, UL): for e in controls.elements("input"): @@ -1841,15 +1841,16 @@ class SQLFORM(FORM): widget_ = SQLFORM.widgets[field_type] value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control') elif field_type == 'date': - iso_format = {'_data-w2p_date_format' : '%Y-%m-%d'} + iso_format = {'_data-w2p_date_format': '%Y-%m-%d'} widget_ = SQLFORM.widgets.date value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control', **iso_format) elif field_type == 'datetime': - iso_format = {'_data-w2p_datetime_format' : '%Y-%m-%d %H:%M:%S'} + iso_format = {'_data-w2p_datetime_format': '%Y-%m-%d %H:%M:%S'} widget_ = SQLFORM.widgets.datetime value_input = widget_.widget(field, field.default, _id=_id, _class=widget_._class + ' form-control', **iso_format) elif (field_type.startswith('reference ') or field_type.startswith('list:reference ')) and \ + hasattr(field.requires, 'options') or \ hasattr(field.requires, 'options'): value_input = SELECT( *[OPTION(v, _value=k)