Fixed Copyright Headers
[mediagoblin.git] / mediagoblin / templates / mediagoblin / utils / wtforms.html
1 {#
2 # GNU MediaGoblin -- federated, autonomous media hosting
3 # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
4 #
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Affero General Public License for more details.
14 #
15 # You should have received a copy of the GNU Affero General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #}
18
19 {# Render the label for a field #}
20 {% macro render_label(field) %}
21 {%- if field.label.text -%}
22 <label for="{{ field.label.field_id }}">{{ field.label.text }}</label>
23 {%- endif -%}
24 {%- endmacro %}
25
26 {# Render the label in a <p> for a field #}
27 {% macro render_label_p(field) %}
28 {%- if field.label.text %}
29 <p class="form_field_label">
30 {{- render_label(field) -}}
31 </p>
32 {%- endif %}
33 {%- endmacro %}
34
35 {# Generically render a field #}
36 {% macro render_field_div(field, autofocus_first=False) %}
37 {% if field.type == 'BooleanField' %}
38 {{ render_bool(field) }}
39 {% else %}
40 {{- render_label_p(field) }}
41 <div class="form_field_input">
42 {% if autofocus_first %}
43 {{ field(autofocus=True) }}
44 {% else %}
45 {{ field }}
46 {% endif %}
47 {%- if field.errors -%}
48 {% for error in field.errors %}
49 <p class="form_field_error">{{ error }}</p>
50 {% endfor %}
51 {%- endif %}
52 {%- if field.description %}
53 <p class="form_field_description">{{ field.description|safe }}</p>
54 {%- endif %}
55 </div>
56 {% endif %}
57 {%- endmacro %}
58
59 {# Auto-render a form as a series of divs #}
60 {% macro render_divs(form, autofocus_first=False) -%}
61 {% for field in form %}
62 {% if autofocus_first and loop.first %}
63 {{ render_field_div(field, True) }}
64 {% else %}
65 {{ render_field_div(field) }}
66 {% endif %}
67 {% endfor %}
68 {%- endmacro %}
69
70 {# Auto-render a form as a table #}
71 {% macro render_table(form) -%}
72 {% for field in form %}
73 render_field_as_table_row(field)
74 {% endfor %}
75 {%- endmacro %}
76
77 {% macro render_form_as_table_row(form) %}
78 <tr>
79 {%- for field in form %}
80 <td class="form_field_input">
81 {{field}}
82 </td>
83 {%- endfor %}
84 </tr>
85 <tr>
86 {%- for field in form %}
87 {% for error in field.errors %}
88 <tr>
89 <td>
90 <p class="form_field_error">{{error}}</p>
91 </td>
92 </tr>
93 {%- endfor %}
94 {%- endfor %}
95 {%- endmacro %}
96
97 {% macro render_field_as_table_row(field) %}
98 <tr>
99 <th>{{ field.label.text }}</th>
100 <td>
101 {{field}}
102 </td>
103 </tr>
104 {% for error in field.errors %}
105 <tr>
106 <td>
107 <p class="form_field_error">{{error}}</p>
108 </td>
109 </tr>
110 {%- endfor %}
111 {% endmacro %}
112
113 {% macro render_fieldlist_as_table_rows(fieldlist) %}
114 {% for field in fieldlist -%}
115 {%- if field.type == 'FormField' %}
116 {{ render_form_as_table_row(field) }}
117 {%- else %}
118 {{ render_field_as_table_row(field) }}
119 {%- endif %}
120 {% endfor -%}
121 {% endmacro %}
122
123 {# Render a boolean field #}
124 {% macro render_bool(field) %}
125 <div class="boolean">
126 <label for="{{ field.label.field_id }}">
127 {{ field }}</input>
128 {{ field.description|safe }}
129 </label>
130 {%- if field.errors -%}
131 {% for error in field.errors %}
132 <p class="form_field_error">{{ error }}</p>
133 {% endfor %}
134 {% endif %}
135 </div>
136 {% endmacro %}
137