Working with records lists

Tabbli provides generic macroses which you can use for building most common interfaces.

{% set result = DB(request)
    .get_collection(
        'students', 
        records_per_page=20, 
        use_page_number_param='page').get_filtered_records() %}
{% from "BASE:macroses/collections.html" import 
    filters_block, paginator with context %}

<div class="row">
    <div class="col-lg-3">
        <form method="get">
            {{ filters_block(result.filters) }}
            
            <button type="submit" class="btn btn-primary">
                Search
            </button>
        </form>
    </div>
    <div class="col-lg-9">
        {% for rec in result.records %}
            <div class="card mb-4">
                <div class="card-body">
                    <a href="/students/{{ rec.key }}/">{{ rec }}</a>
                    
                    <p>
                        {% with r_dict=rec.get_dict(include_related=['classes']) %}
                        <ul>
                            {% for c_dict in r_dict.properties.classes %}
                            <li>{{c_dict.name.en}} : {{c_dict.properties.teacher.name.en}}</li>
                            {% endfor %}
                        </ul>
                        {% endwith %}
                    </p>
                </div>
            </div>
        {% else %}
            <div class="alert alert-info">No records found</div>
        {% endfor %}
        
        {% if result.show_paginator %}
            {{ paginator(result) }}
        {% endif %}
    </div>
</div>

Last updated