{% import six %} {% from formhandler_utils import URLUpdate, SET, ADD, POP, XOR %} {% set u = URLUpdate(handler.request.uri) %} {% set _ = globals().get %} {% set metadata, datasets = (meta, data) if isinstance(data, dict) else ({'data': meta}, {'data': data}) %} {% set static = '/{}/formhandler-static/node_modules'.format(YAMLURL) %}
{% for key, dataset in datasets.items() %}
{% if _('heading', False) %}

{{ key }}

{% end %}
{% if _('pagination', False) %} {% set page = 1 + meta['offset'] // meta['limit'] %} {% set last_page = (meta['count'] + meta['limit'] - 1) // meta['limit'] if 'count' in meta else page if len(data) < meta['limit'] else None %} {% set lo = max(page - 2, 1) %} {% set hi = min(last_page, page + 2) if last_page is not None else page + 2 %} {% end %} {% if _('filters', False) %} {% set filter_cols = metadata[key].get('filters', []) %} {% set exclude_cols = metadata[key].get('excluded', []) %} {% for col, op, vals in filter_cols %} {{ col }} {{ op or '=' }} {{ ', '.join(six.text_type(val) for val in vals) }} {% end %} {% for col in exclude_cols %} {{ col }} {% end %} {% if len(filter_cols) or len(exclude_cols) %} × {% end %} {% end %}
{% set _sort, _c = u.args.get('_sort', []), u.args.get('_c', []) %} {% set _filters = {(col, op): val for col, op, val in meta['filters']} %} {% set coltype = {} %} {% for col in dataset.columns %} {% set dtype = dataset[col].dtype.name %} {% set filtername, filters = ('Text', [ ('Equals', ''), ('Does not equal', '!'), ('Matches', '~'), ('Does not match', '!~'), ]) if dtype == 'object' else ('Number', [ ('Equals', ''), ('Does not equal', '!'), ('Greater than', '>'), ('Less than', '<'), ]) if 'int' in dtype or 'float' in dtype else ('Date', [ # TBD ]) if 'datetime' in dtype else ('Other', [ ]) %} {% set coltype[col] = filtername.lower() %} {% end %} {% for index, row in dataset.iterrows() %} {% for col in dataset.columns %} {% end %} {% end %}
{{ row[col] }}
{% end %}