0a51001791
Co-authored-by: Cursor <cursoragent@cursor.com>
81 lines
3.2 KiB
HTML
81 lines
3.2 KiB
HTML
{% extends "admin/layout.html" %}
|
|
{% from "macros.html" import format_size %}
|
|
|
|
{% block title %}Админка — PhotoHost{% endblock %}
|
|
{% block admin_title %}Обзор{% endblock %}
|
|
{% block admin_subtitle %}<p class="admin-main__subtitle">Статистика и последние действия</p>{% endblock %}
|
|
|
|
{% block admin_content %}
|
|
<div class="admin-stats admin-stats--cards">
|
|
<div class="admin-stat-card">
|
|
<span class="admin-stat-card__value">{{ stats.users }}</span>
|
|
<span class="admin-stat-card__label">Пользователей</span>
|
|
</div>
|
|
<div class="admin-stat-card">
|
|
<span class="admin-stat-card__value">{{ stats.photos }}</span>
|
|
<span class="admin-stat-card__label">Фотографий</span>
|
|
</div>
|
|
<div class="admin-stat-card">
|
|
<span class="admin-stat-card__value">{{ stats.admins }}</span>
|
|
<span class="admin-stat-card__label">Администраторов</span>
|
|
</div>
|
|
<div class="admin-stat-card">
|
|
<span class="admin-stat-card__value">{{ stats.groups }}</span>
|
|
<span class="admin-stat-card__label">Групп</span>
|
|
</div>
|
|
<div class="admin-stat-card admin-stat-card--accent">
|
|
<span class="admin-stat-card__value">{{ format_size(stats.storage) }}</span>
|
|
<span class="admin-stat-card__label">Хранилище</span>
|
|
</div>
|
|
</div>
|
|
|
|
{% if current_version %}
|
|
<p class="admin-version-bar">
|
|
Версия Git: <strong>{{ current_version }}</strong>
|
|
· <a href="{{ url_for('admin.deploy') }}">Управление версиями</a>
|
|
{% if not deploy_enabled %}<span class="badge badge--muted">deploy off</span>{% endif %}
|
|
</p>
|
|
{% endif %}
|
|
|
|
<div class="admin-grid">
|
|
<div class="admin-panel admin-panel--elevated">
|
|
<h2 class="admin-panel__title">Новые пользователи</h2>
|
|
<div class="admin-table-wrap">
|
|
<table class="admin-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Логин</th>
|
|
<th>Email</th>
|
|
<th>Дата</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for user in recent_users %}
|
|
<tr>
|
|
<td>{{ user.username }}{% if user.is_admin %} <span class="badge badge--admin">admin</span>{% endif %}</td>
|
|
<td>{{ user.email }}</td>
|
|
<td>{{ user.created_at.strftime('%d.%m.%Y') }}</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr><td colspan="3">Нет пользователей</td></tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="admin-panel admin-panel--elevated">
|
|
<h2 class="admin-panel__title">Последние фото</h2>
|
|
<div class="admin-mini-gallery">
|
|
{% for photo in recent_photos %}
|
|
<a href="{{ photo.url }}" target="_blank" class="admin-mini-gallery__item">
|
|
<img src="{{ photo.url }}" alt="{{ photo.original_name }}">
|
|
</a>
|
|
{% else %}
|
|
<p class="admin-empty">Нет фотографий</p>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|