Перейти к основному содержимому

Filament-админка

Админка — основной интерфейс управления проектом. Она построена на Filament и описана в app/Providers/Filament/AppPanelProvider.php.

Panel config

Ключевые настройки:

  • path из config('systematika.admin_panel');
  • default panel;
  • login;
  • password reset;
  • SPA mode;
  • collapsible sidebar;
  • unsaved changes alerts;
  • custom brand logo;
  • Vite themes для filament/app.css и pure/style.less;
  • auto-discovery resources/pages.

Группы меню:

  • Обучение;
  • Программа;
  • Каталог;
  • Контент: Страница;
  • Контент: Каталог;
  • Сайт;
  • Параметры;
  • Администрирование;
  • Справочники;
  • Пользовательские поля.

Главные resources

ResourceНазначение
ProductResourceПродукты каталога, классификатор, карточка, страница
ProductOfferingResourceСезоны/offers продукта
TariffResourceТарифы и движения тарифов
OfferingResourceОфферы/составные предложения
SeriesResourceСерии продуктов
SubjectResourceПредметы и roadmap config
DifficultyLevelResourceУровни сложности, дерево уровней, темы
TopicResourceТемы программы
MiniGroupProgramResourceRoadmap-программы мини-групп
GroupDiscipline*ResourceУчебные группы/дисциплины/расписания
CatalogFilterResourceФильтры каталога
CatalogSeoPhraseResourceSEO-фразы каталога
BannerResourceБаннеры
LandingProxyPageResourceProxy pages
LandingRedirectResourceRedirect rules
LandingPageCacheEntryResourceCache entries
UserResourceПользователи
RoleResourceРоли и permissions
CustomFieldDefinitionResourceПользовательские поля

ProductResource

Главный resource каталога.

Вкладка Основное:

  • название;
  • тип продукта;
  • подтип продукта;
  • subject;
  • subsubject;
  • difficulty level;
  • active;
  • invisible in roadmap;
  • цели.

Вкладка Представление:

  • product page link;
  • comments count;
  • mark;
  • product card settings;
  • image;
  • title/subtitle/description;
  • footer text;
  • live preview карточки.

ProductOfferingResource

Управляет сезоном продукта.

Ключевые поля:

  • actual;
  • academic year;
  • status;
  • status movement start date;
  • start/end date;
  • tracks;
  • lesson duration;
  • tariff;
  • tariff movement start date;
  • schedule flags.

Важно: один продукт может иметь только один actual offering. Model event автоматически снимает actual с остальных.

LandingProxyPageResource

Управляет routes, которые создаются из БД.

Поля:

  • active;
  • layout type;
  • from path;
  • to path.

При изменении from_path resource автоматически предлагает to_path на базе https://systematika.org/v1/.

Custom admin UX

Есть дополнительные элементы:

  • CustomCheckboxList для permissions/roles;
  • custom edit page view для relation-manager-only сценариев;
  • TimezoneReceiver для корректного отображения дат/времени;
  • ManageSaleState для site setting распродажи;
  • EditProfile, который переиспользует Jetstream/Fortify forms.

Доступ

Доступ в Filament проверяется через User::canAccessPanel().

Перед выдачей доступа пользователю проверьте:

  • есть ли нужная роль;
  • есть ли permission, которую проверяет canAccessPanel();
  • не блокируют ли policies/resource permissions конкретные CRUD действия.