Add test for get_all_media()
[mediagoblin.git] / mediagoblin / templates / mediagoblin / utils / wtforms.html
index 4038de9855bd9e148e8b06d6c6395ab532a890c1..e2921258e76c25e78eeefc0827b068991a9da36a 100644 (file)
@@ -1,6 +1,6 @@
 {#
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #}
 
+{# Render the label for a field #}
+{% macro render_label(field) %}
+  {%- if field.label.text -%}
+    <label for="{{ field.label.field_id }}">{{ field.label.text }}</label>
+  {%- endif -%}
+{%- endmacro %}
+
+{# Render the label in a <p> for a field #}
+{% macro render_label_p(field) %}
+  {%- if field.label.text %}
+    <p class="form_field_label">
+      {{- render_label(field) -}}
+    </p>
+  {%- endif %}
+{%- endmacro %}
+
 {# Generically render a field #}
-{% macro render_field_div(field) %}
-  <div class="form_field_box">
-    <div class="form_field_label">{{ _(field.label.text) }}</div>
-    <div class="form_field_input">{{ field }}</div>
-    {%- if field.errors -%}
-      {% for error in field.errors %}
-        <div class="form_field_error">
-          {{ error }}
-        </div>
-      {% endfor %}
-    {%- endif %}
-    {% if field.description -%}
-      <div class="form_field_description">{{ _(field.description) }}</div>
-    {%- endif %}
-  </div>
+{% macro render_field_div(field, autofocus_first=False) %}
+  {% if field.type == 'BooleanField' %}
+    {{ render_bool(field) }}
+  {% else %}
+    {{- render_label_p(field) }}
+    <div class="form_field_input">
+      {% if autofocus_first %}
+        {{ field(autofocus=True, style="width:100%;") }}
+      {% else %}
+        {{ field(style="width:100%;") }}
+      {% endif %}
+      {%- if field.errors -%}
+        {% for error in field.errors %}
+          <p class="form_field_error">{{ error }}</p>
+        {% endfor %}
+      {%- endif %}
+      {%- if field.description %}
+        <p class="form_field_description">{{ field.description|safe }}</p>
+      {%- endif %}
+    </div>
+  {% endif %}
 {%- endmacro %}
 
 {# Auto-render a form as a series of divs #}
-{% macro render_divs(form) -%}
+{% macro render_divs(form, autofocus_first=False) -%}
   {% for field in form %}
-    {{ render_field_div(field) }}
+    {% if autofocus_first and loop.first %}
+      {{ render_field_div(field, True) }}
+    {% else %}
+      {{ render_field_div(field) }}
+    {% endif %}
   {% endfor %}
 {%- endmacro %}
 
 {# Auto-render a form as a table #}
 {% macro render_table(form) -%}
   {% for field in form %}
-    <tr>
-      <th>{{ _(field.label.text) }}</th>
-      <td>
-        {{field}}
-        {% if field.errors %}
-          <br />
-          <ul class="errors">
-            {% for error in field.errors %}
-              <li>{{error}}</li>
-            {% endfor %}
-          </ul>
-        {% endif %}
-      </td>
-    </tr>
+    render_field_as_table_row(field)
   {% endfor %}
 {%- endmacro %}
+
+{% macro render_form_as_table_row(form) %}
+  <tr>
+  {%- for field in form %}
+    <td class="form_field_input">
+      {{field}}
+    </td>
+  {%- endfor %}
+  </tr>
+  <tr>
+  {%- for field in form %}
+      {% for error in field.errors %}
+      <tr>
+        <td>
+          <p class="form_field_error">{{error}}</p>
+        </td>
+      </tr>
+      {%- endfor %}
+  {%- endfor %}
+{%- endmacro %}
+
+{% macro render_field_as_table_row(field) %}
+  <tr>
+    <th>{{ field.label.text }}</th>
+    <td>
+      {{field}}
+    </td>
+  </tr>
+  {% for error in field.errors %}
+  <tr>
+    <td>
+      <p class="form_field_error">{{error}}</p>
+    </td>
+  </tr>
+  {%- endfor %}
+{% endmacro %}
+
+{% macro render_fieldlist_as_table_rows(fieldlist) %}
+  {% for field in fieldlist -%}
+    {%- if field.type == 'FormField' %}
+        {{ render_form_as_table_row(field) }}
+    {%- else %}
+        {{ render_field_as_table_row(field) }}
+    {%- endif %}
+  {% endfor -%}
+{% endmacro %}
+
+{# Render a boolean field #}
+{% macro render_bool(field) %}
+  <div class="boolean">
+    <label for="{{ field.label.field_id }}">
+      {{ field }}</input>
+      {{ field.description|safe }}
+    </label>
+    {%- if field.errors -%}
+      {% for error in field.errors %}
+        <p class="form_field_error">{{ error }}</p>
+      {% endfor %}
+    {% endif %}
+  </div>
+{% endmacro %}
+