Модуль панели и отчётов
Этот документ описывает blueprints tickets_dashboard и reports, которые заменили устаревший модуль analytics.
Назначение
Blueprint tickets_dashboard собирает статистику по инцидентам и отображает её на странице /dashboard. Здесь же можно открыть доску статусов и краткую сводку в формате PDF через маршрут /briefing.
Blueprint reports предоставляет форму /reports/ и обработчик /reports/generate для выгрузки PDF или CSV с выбранными параметрами.
Ключевые компоненты
app/tickets_dashboard.pyопределяетdashboard_bpсо следующими маршрутами:/dashboard– основная оперативная панель;/kanban– представление инцидентов по статусам;/briefing– печатная сводка или PDF в зависимости от параметров;/admin/statusи/admin/status/data– системные проверки.app/reports.pyсодержитreports_bpс маршрутами генерации отчётов.- Vue-компоненты в каталоге
static/js/components/dashboard/строят графики и обновляют данные. templates/dashboard.html,templates/briefing.htmlиtemplates/report_form.htmlзадают разметку страниц.utils/analytics.pyвключает функции вродеfind_time_clusters.- Пользовательские настройки расположения блоков сохраняются в JSON-поле
dashboard_configмоделиUser. Редактирование выполняется прямо на оперативной панели. Кнопка «Редактировать блоки» включает сетку, где элементы можно перемещать и менять по размеру. После настройки нажмите «Сохранить» для отправки конфигурации на/api/v1/user/dashboard-config.
Пример структуры:
json [ {"name": "kpis", "x": 0, "y": 0, "w": 2, "h": 1}, {"name": "trend", "x": 0, "y": 1, "w": 2, "h": 2}, {"name": "recent", "x": 2, "y": 0, "w": 1, "h": 3} ]
Интеграция
Оба blueprint регистрируются в create_app и требуют авторизации. Представления обращаются к моделям CrisisTicket, Region, EmergencyType и Status для получения данных.
Админ-панель
Маршрут /admin/ открывает упрощённую панель администратора. На странице показываются три карточки с общими показателями: всего тикетов, открытых тикетов и зарегистрированных пользователей. Ниже располагается сетка быстрых действий со ссылками на список пользователей, менеджер резервных копий, утилиты и справочники.
Пример вывода:
Всего тикетов: 150
Открытых: 7
Пользователей: 5
[Пользователи] [Резервные копии] [Утилиты и скрипты] [Справочники]
Виджет «Горячие точки»
Алгоритм find_time_clusters отслеживает периоды повышенной активности. Полученные кластеры отображаются на панели в секции «Горячие точки». Данные загружаются через /api/v1/tickets/clusters и показывают диапазон времени и число инцидентов.