Initial commit: InviteMe event registration app

This commit is contained in:
InviteMe Developer
2026-08-28 12:28:52 +03:00
commit b4e10b8448
23 changed files with 1718 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
{% extends "base.html" %}
{% block title %}Аналитика — InviteMe{% endblock %}
{% block content %}
<h1 class="mb-4">Аналитика мероприятия</h1>
<div class="row">
<div class="col-md-3">
<div class="card text-white bg-info mb-3">
<div class="card-body">
<h5 class="card-title">Всего гостей</h5>
<p class="card-text display-6">{{ total }}</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-white bg-success mb-3">
<div class="card-body">
<h5 class="card-title">Пришло</h5>
<p class="card-text display-6">{{ checked_in }}</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-white bg-secondary mb-3">
<div class="card-body">
<h5 class="card-title">Осталось</h5>
<p class="card-text display-6">{{ not_checked_in }}</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-white bg-primary mb-3">
<div class="card-body">
<h5 class="card-title">Посещаемость</h5>
<p class="card-text display-6">{{ attendance_percent }}%</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Быстрый поиск</h5>
<form action="{{ url_for('main.admin_guests') }}" method="GET" class="d-flex">
<input type="text" name="q" class="form-control me-2" placeholder="Фамилия или ФИО" required>
<button type="submit" class="btn btn-primary">Найти</button>
</form>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-body">
<h5 class="card-title">Действия</h5>
<a href="{{ url_for('main.admin_report') }}" class="btn btn-success">Выгрузить отчёт Excel</a>
<form action="{{ url_for('main.admin_send_invitations') }}" method="POST" class="d-inline">
<button type="submit" class="btn btn-outline-primary">Разослать приглашения</button>
</form>
</div>
</div>
</div>
</div>
<h3 class="mt-5">Последние входы</h3>
<table class="table table-striped">
<thead>
<tr>
<th>Время</th>
<th>ФИО</th>
<th>Отдел</th>
</tr>
</thead>
<tbody>
{% for check_in in recent_check_ins %}
<tr>
<td>{{ check_in.checked_in_at.strftime('%d.%m.%Y %H:%M:%S') }}</td>
<td>{{ check_in.guest.full_name }}</td>
<td>{{ check_in.guest.department }}</td>
</tr>
{% else %}
<tr>
<td colspan="3" class="text-muted">Пока никто не отмечен</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}