from django.newforms.util import ErrorList
from django.newforms.widgets import RadioFieldRenderer, RadioSelect
from django.newforms.fields import BooleanField
from django.utils.safestring import mark_safe
from django.utils.encoding import force_unicode
class ImgErrorList(ErrorList):
def __unicode__(self):
return self.with_img()
def with_img(self):
if not self: return u''
return u'
%s
' % u''.join([u'
%s
' % e for e in self])
class InlineRadioRenderer(RadioFieldRenderer):
def render(self):
return mark_safe(u'%s
' % u''.join([u'%s' % force_unicode(w) for w in self]))
class YesNoRadioSelect(RadioSelect):
renderer = InlineRadioRenderer
choices = ((True, 'Yes'), (False, 'No'))
attrs = {'class': 'radio'}
class YesNoBooleanField(BooleanField):
widget = YesNoRadioSelect
def clean(self, value):
if value == 'False':
return False
return bool(value)