Документация

Модуль панели и отчётов

Этот документ описывает 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 и показывают диапазон времени и число инцидентов.