diff --git a/apps/common/widgets.py b/apps/common/widgets.py index 3a3aa6c459..66826ba3e2 100644 --- a/apps/common/widgets.py +++ b/apps/common/widgets.py @@ -3,6 +3,9 @@ import os from django.utils.translation import ugettext_lazy as _ from django.utils.safestring import mark_safe from django import forms +from django.forms.util import flatatt +from django.utils.html import escape, conditional_escape +from django.utils.encoding import StrAndUnicode, force_unicode class PlainWidget(forms.widgets.Widget): @@ -63,3 +66,21 @@ def two_state_template(state, famfam_ok_icon=u'tick', famfam_fail_icon=u'cross') return mark_safe(u'' % famfam_ok_icon) else: return mark_safe(u'' % famfam_fail_icon) + + +class TextAreaDiv(forms.widgets.Widget): + def __init__(self, attrs=None): + # The 'rows' and 'cols' attributes are required for HTML correctness. + default_attrs = {'class': 'text_area_div'} + #'cols': '40', 'rows': '10'} + if attrs: + default_attrs.update(attrs) + super(TextAreaDiv, self).__init__(default_attrs) + + def render(self, name, value, attrs=None): + if value is None: value = '' + final_attrs = self.build_attrs(attrs, name=name) + result = mark_safe(u'