dashboard: кастомизируемый дашборд из виджетов + шаблоны по умолчанию

Дашборд теперь собирается из виджетов (приветствие, метрики, мои задачи,
новости, быстрый доступ). Сотрудник настраивает состав и порядок под себя
(вкл/выкл + перемещение ↑↓), а для тех, кто не настраивал, действует набор
по умолчанию по типу локации (Офис/Аптека/Склад), задаётся в админке.

- core/dashboard.py: реестр виджетов + сборка раскладки
- core/models/dashboard.py: DashboardLayout (персональная), DashboardDefaults
  (синглтон по типу локации)
- core/views.py: dashboard_view через реестр + dashboard_customize_view
- templates/pages/dashboard_widgets/*: виджеты-партиалы; dashboard.html —
  цикл по виджетам; dashboard_customize.html — настройка (HTMX + ↑↓)
- admin: DashboardDefaults (чекбоксами по локации) + read-only раскладки;
  пункт меню «Дашборд по умолчанию»
- core/tests_dashboard.py: 11 тестов (логика раскладки + view)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 18:42:21 +03:00
parent b2f0c2a1e2
commit d07b9c6e97
16 changed files with 804 additions and 201 deletions
+5
View File
@@ -288,6 +288,11 @@ UNFOLD = {
"icon": "tune",
"link": reverse_lazy("admin:employees_employeedefaults_changelist"),
},
{
"title": "Дашборд по умолчанию",
"icon": "dashboard_customize",
"link": reverse_lazy("admin:core_dashboarddefaults_changelist"),
},
],
},
{