Navbar
Navbar собирает AdminNavbarService. Всегда есть встроенный пункт темы,
затем свои кнопки, dropdown из групп страниц и user menu.
Встроенный пункт темы
django_chassis.navbar.theme поставляет переключатель темы. Его не нужно
регистрировать самому — сервис navbar вставляет его сам.
Свои кнопки и пункты user menu
Объявите классы на сайте:
from django_chassis.components import AdminNavbarButton, AdminUserMenuItem
class ReportsButton(AdminNavbarButton):
slug = 'reports'
label = 'Reports'
icon_class = 'fa-solid fa-chart-line'
def get_url(self, request):
return '/admin/pages/reports/'
class CustomAdminSite(ChassisAdminSiteMixin, AdminSite):
navbar_button_classes = (ReportsButton,)
user_menu_item_classes = ()
Модуль пользователей добавляет пункты Профиль и Изменить пароль, пока
не задано include_users_module = False. См.
Пользователи и доступ.
Slug должны быть уникальными. Сервис проверяет это до рендера.
Доступные контракты:
AdminNavbarButton— одна ссылка в navbarAdminNavbarDropdown— родитель с дочерними пунктамиAdminUserMenuItem— пункт в меню авторизованного пользователяAdminNavbarItem— общая база
Группы страниц как dropdown
AdminPage с navbar_group = AdminPageGroupOption(...) попадает в dropdown
navbar. Personal-страницы в группу войти не могут.
from django_chassis.options import AdminPageGroupOption
reports = AdminPageGroupOption(slug='reports', label='Reports', icon_class='fa-solid fa-chart-line', order=10)
| Параметр | Тип | По умолчанию |
|---|---|---|
slug | str | обязательный |
label | локализованная строка | обязательный |
icon_class | класс Font Awesome | обязательный |
order | int | 0 |
Тот же тип option используется как dashboard_group для секций действий
dashboard. См. Свои страницы.
Бренд
Изменено в 1.0.1По умолчанию сайт использует иконку из документации
(admin/chassis/icon.svg) как логотип входа и favicon. Переопределите:
chassis_brand_namechassis_brand_logo_static_path
Или переопределите get_chassis_brand() / get_chassis_brand_badge(), чтобы
вернуть BrandDTO / BrandBadgeDTO.