Select Git revision
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
macros.html 6.98 KiB
{% macro render_field(field, label_visible=true) -%}
{{ field(id=field.id, title=field.description, **kwargs) }}
{% if field.errors %}
{% for e in field.errors %}
<p class="help-block">{{ e }}</p>
{% endfor %}
{% endif %}
{%- endmacro %}
{% macro render_stringfield(field) -%}
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="{{ field.id }}" name="{{ field.id }}" class="mdl-textfield__input" type="text" {% if field.data is not none %}value="{{ field.data }}"{% endif %} />
<label class="mdl-textfield__label" for="{{ field.id }}">{{ field.label.text }}</label>
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
</div>
{%- endmacro %}
{% macro render_integerfield(field) -%}
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="{{ field.id }}" name="{{ field.id }}" class="mdl-textfield__input" type="text" {% if field.data is not none %}value="{{ field.data }}"{% endif %} />
<label class="mdl-textfield__label" for="{{ field.id }}">{{ field.label.text }}</label>
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
</div>
{%- endmacro %}
{% macro render_passwordfield(field) -%}
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="{{ field.id }}" name="{{ field.id }}" class="mdl-textfield__input" type="password" />
<label class="mdl-textfield__label" for="{{ field.id }}">{{ field.label.text }}</label>
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
</div>
{%- endmacro %}
{% macro render_booleanfield(field) -%}
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="{{ field.id }}">
<input type="checkbox" id="{{ field.id }}" name="{{ field.id }}" class="mdl-checkbox__input" />
<span class="mdl-checkbox__label">{{ field.label.text }}</span>
</label>
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
{%- endmacro %}
{% macro render_csrftokenfield(field, kwargs) -%}
{{ field(title=field.description, **kwargs) }}
{%- endmacro %}
{% macro render_selectmultiplefield(field) -%}
<button id="{{ field.id }}-button" class="mdl-button mdl-js-button mdl-button--colored mdl-shadow--2dp mdl-color--grey-100 " type="button">
{{ field.label.text }}
</button>
<select id="{{ field.id }}" name="{{ field.id }}" multiple class="mdl-menu mdl-js-menu mdl-menu--top-left" for="{{ field.id }}-button">
{% for name, text in field.choices %}
<option value="{{ name }}"
{% if field.data is not none and name in field.data %}
selected
{% endif %}
class="mdl-menu__item">
{{ text }}
</option>
{% endfor %}
</select>
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
{%- endmacro %}
{% macro render_datefield(field) -%}
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input id="{{ field.id }}" name="{{ field.id }}" class="mdl-textfield__input" type="text"{% if field.data is not none %} value="{{ field.data.strftime("%d.%m.%Y") }}"{% endif %} />
<label class="mdl-textfield__label" for="{{ field.id }}">{{ field.label.text }}</label>
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
</div>
{%- endmacro %}
{% macro render_hiddenfield(field) -%}
<input id="{{ field.id }}" name="{{ field.id }}" type="hidden"{% if field.data is not none %} value="{{ field.data }}"{% endif %} />
{% if field.errors %}
{% for e in field.errors %}
<div class="mdl-card__supporting-text">
{{ e }}
</div>
{% endfor %}
{% endif %}
{%- endmacro %}
{% macro render_form(form, action_url="", title=None, action_text="Submit", class_="mdl-card mdl-shadow--2dp mdl-cell mdl-cell--4-col mdl-cell--4-col-tablet mdl-cell--4-col-phone", title_class="mdl-card__title", title_text_class="mdl-card__title-text", content_class="mdl-card__supporting-text", action_class="mdl-card__actions", btn_class="mdl-button mdl-js-button mdl-button--raised mdl-button-colored", btn_value="", btn_list=None) -%}
<div class="{{ class_ }}">
<form method="POST" action="{{ action_url }}">
<div class="{{ title_class }}">
<h3 class="{{ title_text_class}}">{{ title if title is not none else action_text }}</h3>
</div>
<div class="{{ content_class }}">
{% for f in form %}
{% if f.type == "StringField" %}
{{ render_stringfield(f) }}
{% elif f.type == "PasswordField" %}
{{ render_passwordfield(f) }}
{% elif f.type == "IntegerField" %}
{{ render_integerfield(f) }}
{% elif f.type == "BooleanField" %}
{{ render_booleanfield(f) }}
{% elif f.type == "CSRFTokenField" %}
{{ render_csrftokenfield(f, kwargs) }}
{% elif f.type == "SelectMultipleField" %}
{{ render_selectmultiplefield(f) }}
{% elif f.type == "DateField" %}
{{ render_datefield(f) }}
{% elif f.type == "HiddenField" %}
{{ render_hiddenfield(f) }}
{% else %}
{{ f.type }}
{{ render_field(f) }}
{% endif %}
{% endfor %}
</div>
<div class="{{ action_class }}">
{% if btn_list != none %}
{%for this_btn_class, action_text, btn_value in btn_list %}
<button type="submit" class="{{ btn_class }} {{ this_btn_class }}" name="submit" value="{{ btn_value }}">{{ action_text }}</button>
{% endfor %}
{% else %}
<button type="submit" class="{{ btn_class }}" value="{{ btn_value }}">{{ action_text }}</button>
{% endif %}
</div>
</form>
</div>
{%- endmacro %}