Projet

Général

Profil

0001-templates-add-as_template-to-render-form-with-extend.patch

Frédéric Péters, 26 décembre 2018 15:33

Télécharger (3,38 ko)

Voir les différences:

Subject: [PATCH] templates: add |as_template to render form with extended
 markup (#29355)

 gadjo/templates/gadjo/form.html | 65 +++++++++++++++++++--------------
 gadjo/templatetags/gadjo.py     |  6 +++
 2 files changed, 44 insertions(+), 27 deletions(-)
gadjo/templates/gadjo/form.html
1 1
{% load i18n %}
2
{{ form.non_field_errors }}
2
{% if form.errors %}
3
  <div class="errornotice">
4
    <p>{% trans "There were errors processing your form.  See below for details." %}</p>
5
    {% for field in form %}
6
      {% if field.is_hidden and field.errors %}
7
        <p>
8
          {% for error in field.errors %}
9
          {% blocktrans with name=field.name %}(Hidden field {{name}}) {{ error }}{% endblocktrans %}
10
          {% if not forloop.last %}<br>{% endif %}
11
          {% endfor %}
12
        </p>
13
      {% endif %}
14
    {% endfor %}
15
  </div>
16
{% endif %}
3 17
{% for field in form %}
4 18
  {% if field.is_hidden %}
5
    {% if field.errors %}
6
      <ul class="errorlist">
19
    {{ field }}
20
  {% else %}
21
  <div class="widget
22
              {{ field.css_classes }}
23
              {% if field.errors %}widget-with-error{% endif %}
24
              {% if field.required %}widget-required{% else %}widget-optional{% endif %}"
25
       id="{{field.id_for_label}}_p">
26
    <div class="title">
27
      {{ field.label_tag }}
28
      {% if field.field.required %}<span class="required">*</span>{% endif %}
29
    </div>
30
    <div class="content">
31
      {% if field.errors %}
32
      <div class="error">
7 33
        {% for error in field.errors %}
8
        <li>
9
          {% blocktrans with name=field.name %}(Hidden field {{name}}) {{ error }}{% endblocktrans %}
10
        </li>
34
        {{ error }}{% if not forloop.last %}<br>{% endif %}
11 35
        {% endfor %}
12
      </ul>
13
    {% endif %}
14
    {{ field }}
15
  {% endif %}
16
{% endfor %}
17
{% for field in form %}
18
  {% if not field.is_hidden %}
19
  <p {% if field.css_classes %}class="{{ field.css_classes }}"{% endif %}>
20
     {{ field.label_tag }}
21
     {% if field.errors %}
22
       <ul class="errorlist">
23
         {% for error in field.errors %}
24
           <li>{{ error }}</li>
25
         {% endfor %}
26
       </ul>
27
     {% endif %}
28
     {{ field }}
29
     {% if field.help_text %}
30
       <span class="helptext">{{ field.help_text }}</span>
31
     {% endif %}
32
  </p>
36
      </div>
37
      {% endif %}
38
      {{ field }}
39
      {% if field.help_text %}
40
      <div class="hint">{{ field.help_text|safe }}</div>
41
      {% endif %}
42
    </div>
43
  </div>
33 44
  {% endif %}
34 45
{% endfor %}
gadjo/templatetags/gadjo.py
116 116
        raise TemplateSyntaxError("Malformed arguments to '%s'" % tag)
117 117
    removals = [parser.compile_filter(bit) for bit in bits]
118 118
    return QuerystringNode(updates, removals)
119

  
120

  
121
@register.filter
122
def as_template(form):
123
    form_template = template.loader.get_template('gadjo/form.html')
124
    return form_template.render({'form': form})
119
-