{# # This file is part of Invenio. # Copyright (C) 2012, 2013, 2014, 2015 CERN. # # Invenio is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # Invenio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Invenio; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. #} {# # See http://flask.pocoo.org/docs/patterns/wtforms/ #} {% macro render_field(field, show_error_list=True, show_description=False) %}{% set fieldkwargs = kwargs %}{% block render_field scoped %} {% set label_size = fieldkwargs.get('label_size') %} {% set field_size = fieldkwargs.get('field_size') %} {% set with_label = fieldkwargs.pop('with_label', True) %} {%- if field.widget.input_type == 'hidden' -%} {{ field(**fieldkwargs)|safe }} {%- else -%}
{% if with_label %} {% set label_classes = "control-label" %} {% if label_size %} {% set label_classes = label_classes + ' col-md-' + label_size|string %} {% endif %} {{ field.label(class_=label_classes) }} {% endif %} {% set classes = fieldkwargs.get('class_', '') + ' form-control' %} {% do fieldkwargs.update({'class_': classes }) %} {% if field_size %}
{% endif %} {{ field(**fieldkwargs)|safe }} {% if show_error_list and field.errors %} {% for error in field.errors %} {{ error }} {% endfor %} {% endif %} {% if show_description and field.description %}
{{ field.description }}
{% endif %} {% if field_size %}
{% endif %}
{%- endif -%} {% endblock %}{% endmacro %} {# # See https://github.com/sublee/flask-autoindex/blob/master/flaskext/autoindex/templates/__autoindex__/macros.html #} {% macro th(key, label, args='', colspan=1) %}{% block th scoped %} {% set sort_by = request.args.get('sort_by') %} {% set order = request.args.get('order', 'asc') %} {%- if sort_by == key and order == 'asc' -%} {{ label }} {%- else -%} {{ label }} {%- endif -%} {%- if sort_by == key -%} {%- if order == 'asc' -%}  v {%- elif order == 'desc' -%}  ^ {%- endif -%} {%- endif -%} {% endblock %}{% endmacro %} {# # Field input wrapper. #} {% macro _filter_element(field) %}{% block _filter_element scoped %}
{{ field }}
{% endblock %}{% endmacro %} {# # Renders multiple input fields and clickable (jQuery) # elements for dynamic field manipulation. #} {% macro filter_field(field) %}{% block filter_field scoped %}
{{ field.label(class="control-label") }}
{% if field.raw_data %} {% for i in range(field.raw_data|count) %} {{ _filter_element(field) }} {% endfor %} {% else %} {{ _filter_element(field) }} {% endif %}
{% endblock %}{% endmacro %} {% macro filter_copy_element(field) %}{% block filter_copy_element scoped %} {% endblock %}{% endmacro %} {% macro render_filter_form(form) %}{% set form_kwargs = kwargs %}{% block render_filter_form scoped %}
{{ form.csrf_token }} {{ form.sort_by }} {{ form.order }}
{{ _("Filter") }} {% for field in form %} {% if not field.name in ['csrf_token', 'sort_by', 'order'] %} {{ filter_field(field) }} {% endif %} {% endfor %}
{% for field in form %} {% if not field.name in ['csrf', 'sort_by', 'order'] %} {{ filter_copy_element(field) }} {% endif %} {% endfor %} {% endblock %}{% endmacro %}