nav: новая структура меню — Управление, Поддержка, отдельный блок IT

Справочники и Настройки в Управление; IT-отдел и AD — только при доступе.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-22 14:22:18 +03:00
parent b0fb8c5218
commit 9e1505296a
2 changed files with 51 additions and 43 deletions
+8 -8
View File
@@ -9,7 +9,7 @@ class PortalSection:
key: str
path: str
label: str
nav: str # main | manage | support | none
nav: str # main | manage | support | it | none
perm: str | None = None # 'core.access_<key>' or None = any authenticated
@@ -43,21 +43,21 @@ PORTAL_SECTIONS: dict[str, PortalSection] = {
'tasks': PortalSection('tasks', '/tasks/', 'Задачи', 'main'),
'dislocation': PortalSection('dislocation', '/dislocation/', 'Дислокация', 'main'),
'documents': PortalSection('documents', '/documents/', 'Документы', 'main'),
'email': PortalSection('email', '/email/', 'Почта', 'main', 'core.access_email'),
'email': PortalSection('email', '/email/', 'Электронная почта', 'main', 'core.access_email'),
'chat': PortalSection('chat', '/chat/', 'Чат', 'main'),
'calendar': PortalSection('calendar', '/calendar/', 'Календарь', 'main'),
'databases': PortalSection('databases', '/databases/', 'Системные справочники', 'main', 'core.access_databases'),
'reports': PortalSection('reports', '/reports/', 'Отчёты', 'main', 'core.access_reports'),
'purchases': PortalSection('purchases', '/purchases/', 'Закупки', 'main', 'core.access_purchases'),
# Открыт всем; кадровые операции — по core.access_hr_portal (user_can_manage_hr_portal).
'hr_portal': PortalSection('hr_portal', '/hr-portal/', 'HR-портал', 'main'),
'settings': PortalSection('settings', '/settings/', 'Настройки', 'main'),
'accounting_portal': PortalSection('accounting_portal', '/accounting/', 'Операционный учёт', 'main'),
'profile': PortalSection('profile', '/profile/', 'Профиль', 'none'),
'structure': PortalSection('structure', '/structure/', 'Структура', 'manage', 'core.access_structure'),
'pharmacies': PortalSection('pharmacies', '/pharmacies/', 'Аптеки', 'manage', 'core.access_pharmacies'),
'pharmacy_detail': PortalSection('pharmacy_detail', '/pharmacies/', 'Карточка аптеки', 'none'),
'databases': PortalSection('databases', '/databases/', 'Системные справочники', 'manage', 'core.access_databases'),
'user_groups': PortalSection('user_groups', '/user-groups/', 'Группы пользователей', 'manage'),
'accounting_portal': PortalSection('accounting_portal', '/accounting/', 'Операционный учёт', 'main'),
'settings': PortalSection('settings', '/settings/', 'Настройки', 'manage'),
'rro': PortalSection('rro', '/rro/', 'РРО / ПРРО', 'none', 'core.access_rro'),
'utilities': PortalSection('utilities', '/utilities/', 'Коммунальные услуги', 'none', 'core.access_utilities'),
'internet_billing': PortalSection(
@@ -67,9 +67,9 @@ PORTAL_SECTIONS: dict[str, PortalSection] = {
'recruiting': PortalSection('recruiting', '/hr-portal/?tab=vacancies', 'Рекрутинг', 'none', 'core.access_recruiting'),
'timetrack': PortalSection('timetrack', '/timetrack/', 'Учёт рабочего времени', 'none', 'core.access_timetrack'),
'help': PortalSection('help', '/help/', 'Справка', 'support'),
'it_support': PortalSection('it_support', '/it-support/', 'IT-поддержка', 'support'),
'it_manager': PortalSection('it_manager', '/it-manager/', 'IT-отдел', 'support', 'core.access_it_manager'),
'ad_mapping': PortalSection('ad_mapping', '/ad-mapping/', 'Active Directory', 'support', 'core.access_ad_mapping'),
'it_support': PortalSection('it_support', '/it-support/', 'Поддержка IT', 'support'),
'it_manager': PortalSection('it_manager', '/it-manager/', 'IT-отдел', 'it', 'core.access_it_manager'),
'ad_mapping': PortalSection('ad_mapping', '/ad-mapping/', 'Active Directory', 'it', 'core.access_ad_mapping'),
}