from django import newforms as forms


class PrettyBaseForm (forms.BaseForm):

    class NormalRowFormatter(object):

        def _error_class(self, errors):
            if errors:
                return ' class="error"'
            else:
                return ''

        def __mod__(self, d):
            return u'<tr%s>' % self._error_class(d['errors']) \
                 + u'<th>%(label)s</th><td>%(field)s%(errors)s%(help_text)s</td></tr>' % d

    def as_table(self):
        return self._html_output(
            PrettyBaseForm.NormalRowFormatter(),
            u'<tr><td colspan="2">%s</td></tr>', # unused
            u'</td></tr>',
            u'<br />%s',
            False
        )