#!/usr/bin/env python
# encoding: utf-8
"""
gaetk2.forms.__init__ - Use WTforms but with custom widgets
Created by Maximillian Dornseif on 2017-12-23.
Copyright (c) 2017. MIT Licensed.
"""
import logging
from gaetk2.forms import widgets
logger = logging.getLogger(__name__)
widget_mapping = {
# Multi Types
'SelectMultipleField': widgets.Select(multiple=True),
'SelectField': widgets.Select(),
'QuerySelectMultipleField': widgets.Select(multiple=True),
'QuerySelectField': widgets.Select(),
# 'RadioField': widgets.RadioGroup(),
# Input Types
'DateField': widgets.DateInput(),
'TextField': widgets.TextInput(),
'StringField': widgets.TextInput(),
'PasswordField': widgets.PasswordInput(),
'BooleanField': widgets.CheckboxInput(),
# 'FileField': widgets.FileInput(),
# 'SubmitField': widgets.SubmitInput(),
}
[docs]def wtfbootstrap3(form):
"""changes a WTForms.Form Instance to use html5/bootstrap Widgets."""
logger.error('wtfbootstrap3 %s', form)
for field in form:
logger.error('wtfbootstrap3.filed %r', field)
if not hasattr(field.widget, '__webwidget__'):
if field.type in widget_mapping:
field.widget = widget_mapping[field.type]
else:
logger.critical('unstyled field %s' % field.type)
return form