0.5.9-collections-crud+spa-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
All checks were successful
Deploy on push / deploy (push) Successful in 6s
This commit is contained in:
44
CHANGELOG.md
44
CHANGELOG.md
@@ -1,5 +1,49 @@
|
||||
# Changelog
|
||||
|
||||
## [0.5.9] - 2025-06-30
|
||||
|
||||
### Новая функциональность CRUD коллекций
|
||||
|
||||
- **НОВОЕ**: Полноценное управление коллекциями в админ-панели:
|
||||
- **Новая вкладка "Коллекции"**: Отдельная секция в админ-панели для управления коллекциями
|
||||
- **Полная CRUD функциональность**: Создание, редактирование, удаление коллекций
|
||||
- **Подробная таблица**: ID, название, slug, описание, создатель, количество публикаций, даты создания и публикации
|
||||
- **Клик для редактирования**: Нажатие на строку открывает модалку редактирования коллекции
|
||||
- **Удаление с подтверждением**: Тонкая кнопка "×" для удаления с модальным окном подтверждения
|
||||
- **Кнопка создания**: Возможность создания новых коллекций прямо из интерфейса
|
||||
|
||||
- **Серверная часть**:
|
||||
- **GraphQL схема**: Новые queries, mutations и input types для коллекций
|
||||
- **Резолверы**: Полный набор резолверов для CRUD операций (create_collection, update_collection, delete_collection, get_collections_all)
|
||||
- **Авторизация**: Требуется роль editor или admin для создания/редактирования/удаления коллекций
|
||||
- **Валидация прав**: Создатель коллекции или admin/editor могут редактировать коллекции
|
||||
- **Cascading delete**: При удалении коллекции удаляются все связи с публикациями
|
||||
- **Подсчет публикаций**: Автоматический подсчет количества публикаций в коллекции
|
||||
|
||||
- **Архитектурные улучшения**:
|
||||
- **Модель Collection**: Добавлен relationship для created_by_author
|
||||
- **Базы данных**: Включены таблицы Collection и ShoutCollection в создание схемы
|
||||
- **Type safety**: Полная типизация для TypeScript в админ-панели
|
||||
- **Переиспользование паттернов**: Следование существующим паттернам для единообразия
|
||||
|
||||
### Исправления SPA роутинга
|
||||
|
||||
- **КРИТИЧНО ИСПРАВЛЕНО**: Проблема с роутингом админ-панели:
|
||||
- **Проблема**: Переходы на `/login`, `/admin` и другие маршруты возвращали "Not Found" вместо корректного отображения SPA
|
||||
- **Причина**: Сервер искал физические файлы для каждого маршрута вместо делегирования клиентскому роутеру
|
||||
- **Решение**:
|
||||
- Добавлен SPA fallback обработчик `spa_handler()` в `main.py`
|
||||
- Все неизвестные GET маршруты теперь возвращают `index.html`
|
||||
- Клиентский роутер SolidJS получает управление и корректно обрабатывает маршрутизацию
|
||||
- Разделены статические ресурсы (`/assets`) и SPA маршруты
|
||||
- **Результат**: Админ-панель корректно работает на всех маршрутах (`/`, `/login`, `/admin`, `/admin/collections`)
|
||||
|
||||
- **Архитектурные улучшения**:
|
||||
- **Правильное разделение обязанностей**: Сервер обслуживает API и статику, клиент управляет роутингом
|
||||
- **Добавлен FileResponse импорт**: Для корректной отдачи HTML файлов
|
||||
- **Оптимизированная конфигурация маршрутов**: Четкое разделение между API, статикой и SPA fallback
|
||||
- **Совместимость с SolidJS Router**: Полная поддержка клиентского роутинга
|
||||
|
||||
## [0.5.8] - 2025-06-30
|
||||
|
||||
### Улучшения интерфейса публикаций
|
||||
|
Reference in New Issue
Block a user