Загрузка данных
{% extends "base.html" %} {% block title %}Отчёты{% endblock %} {% block content %} <div class="d-flex justify-content-between align-items-center mb-3"> <h4 class="mb-0">Отчёты</h4> <a class="btn btn-success" href="{{ url_for('reports.export_excel', mentor_id=selected_mentor, date_from=date_from, date_to=date_to) }}"> <i class="bi bi-file-earmark-excel"></i> Скачать Excel </a> </div> <form method="get" class="card stat-card mb-3"> <div class="card-body d-flex gap-3 align-items-end flex-wrap"> {% if current_user.is_admin %} <div style="min-width:220px"> <label class="form-label small mb-1">Наставник</label> <select name="mentor_id" class="form-select"> <option value="">Все наставники</option> {% for m in mentors %} <option value="{{ m.id }}" {% if selected_mentor == m.id %}selected{% endif %}>{{ m.full_name }}</option> {% endfor %} </select> </div> {% endif %} <div> <label class="form-label small mb-1">С</label> <input type="date" name="date_from" class="form-control" value="{{ date_from }}"> </div> <div> <label class="form-label small mb-1">По</label> <input type="date" name="date_to" class="form-control" value="{{ date_to }}"> </div> <button class="btn btn-primary">Применить</button> </div> </form> <div class="card stat-card"> <div class="table-responsive"> <table class="table table-hover mb-0 align-middle"> <thead class="table-light"> <tr> <th>Стажёр</th> <th>Наставник</th> <th class="text-center">Всего</th> <th class="text-center text-success">Присут.</th> <th class="text-center text-warning">Опозд.</th> <th class="text-center text-danger">Отсут.</th> <th class="text-center text-info">Уваж.</th> <th class="text-center">Посещаемость</th> </tr> </thead> <tbody> {% for row in rows %} {% set s = row.stats %} <tr> <td class="fw-semibold">{{ row.intern.full_name }}</td> <td>{{ row.intern.mentor.full_name if row.intern.mentor else '—' }}</td> <td class="text-center">{{ s.total }}</td> <td class="text-center">{{ s.present }}</td> <td class="text-center">{{ s.late }}</td> <td class="text-center">{{ s.absent }}</td> <td class="text-center">{{ s.excused }}</td> <td class="text-center fw-bold">{{ s.rate }}%</td> </tr> {% else %} <tr><td colspan="8" class="text-center text-muted py-4">Нет данных</td></tr> {% endfor %} </tbody> </table> </div> </div> {% endblock %}