{# Approaches as "weight × reps" chips #} {% macro approach_chips(approaches) %}{% for approach in approaches %}{% if approach.weight %}{{ '%g'|format(approach.weight) }} кг{% else %}без веса{% endif %} × {{ approach.reps }}{% endfor %}{% endmacro %} {# One table for all trainings: a row per exercise. Search, sorting and paging come from DataTables (main.js) #} {% macro trainings_table(trainings) %} {% set ns = namespace(exercises=0) %} {% for training in trainings %}{% set ns.exercises = ns.exercises + training.exercises|length %}{% endfor %}

Тренировок: {{ trainings|length }}, упражнений: {{ ns.exercises }}

{% for training in trainings %} {% for exercise in training.exercises %} {# data-order: ISO date, so sorting by date is chronological #} {% else %} {# DataTables needs the same number of cells in every row (no colspan) #} {% endfor %} {% endfor %}
Дата Тренер Упражнение Подходы (вес × повторения)
{{ training.date.strftime('%d.%m.%Y') }} {{ training.trainer or '' }} {{ exercise.name }} {% if exercise.splitted_weight %} на руку {% endif %} {{ approach_chips(exercise.approaches) }}
{{ training.date.strftime('%d.%m.%Y') }} {{ training.trainer or '' }} Упражнения не записаны
{% endmacro %}