Python 3
[wolnelektury.git] / src / ajaxable / templatetags / ajaxable_tags.py
index c262a92..d327e2e 100644 (file)
@@ -3,6 +3,7 @@
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from django import template
+from django.utils.encoding import force_text
 from django.utils.safestring import mark_safe
 
 from ajaxable.utils import placeholdized
@@ -22,18 +23,25 @@ def placeholdized_ul(form):
 @register.filter
 def pretty_field(field, template=None):
     if template is None:
-        template = '''
+        template = u'''
             <li>
               <span class="error">%(errors)s</span>
               <label class="nohide"><span class="label">%(label)s: </span>%(input)s</label>
+              <span class="helptext">%(helptext)s</span>
             </li>'''
-    return mark_safe(template % {'errors': field.errors, 'input': field, 'label': field.label})
+    return mark_safe(template % {
+        'errors': field.errors,
+        'input': field,
+        'label': ('*' if field.field.required else '') + force_text(field.label),
+        'helptext': force_text(field.help_text),
+    })
 
 
 @register.filter
 def pretty_checkbox(field):
-    return pretty_field(field, template='''
+    return pretty_field(field, template=u'''
         <li class="checkbox">
           <span class="error">%(errors)s</span>
           <label class="nohide">%(input)s<span class="label"> %(label)s</span></label>
+          <span class="helptext">%(helptext)s</span>
         </li>''')