1 | ##
|
---|
2 | ## DivForm class
|
---|
3 | ##
|
---|
4 | ## Author: Michal Ludvig <michal@logix.cz>
|
---|
5 | ## http://www.logix.cz/michal
|
---|
6 | ##
|
---|
7 |
|
---|
8 | from django import newforms as forms
|
---|
9 |
|
---|
10 | class DivErrorList(forms.util.ErrorList):
|
---|
11 | """
|
---|
12 | Helper class that wraps error lists into <div> tags for DivForm
|
---|
13 | """
|
---|
14 | def as_div(self):
|
---|
15 | if not self: return u''
|
---|
16 | return u'<div class="errorlist">%s</div>' % ''.join([u'<div class="error">%s</div>' % e for e in self])
|
---|
17 |
|
---|
18 | def __str__(self):
|
---|
19 | return self.as_div()
|
---|
20 |
|
---|
21 | def __unicode__(self):
|
---|
22 | return self.as_div()
|
---|
23 |
|
---|
24 |
|
---|
25 | class DivForm(forms.Form):
|
---|
26 | """
|
---|
27 | DivForm class that can be used instead of forms.Form
|
---|
28 | to get output fields wrapped in <div> tags instead of
|
---|
29 | those ugly table or <p> tags.
|
---|
30 | """
|
---|
31 | def as_div(self):
|
---|
32 | return self._html_output(u'<div class="form_row"><div class="label">%(label)s</div><div class="field">%(field)s</div><div class="errors">%(errors)s</div><div class="help">%(help_text)s</div></div>',
|
---|
33 | u'<div class="error">%s</div>', '</div>', u'%s', False,
|
---|
34 | DivErrorList)
|
---|
35 |
|
---|
36 | def __str__(self):
|
---|
37 | return self.as_div()
|
---|
38 |
|
---|
39 | def __unicode__(self):
|
---|
40 | return self.as_div()
|
---|