Commit Graph
39 Commits
Author SHA1 Message Date
mirivladandQwen-Coder 90a49b0f37 Fix: Имя переменной $course_assignment вместо $assignment
✅ Исправлено Route Model Binding
✅ Параметр {course_assignment} в маршруте
✅ Переменная $course_assignment в контроллере
✅ Обновлены все view файлы

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 08:40:37 +08:00
mirivladandQwen-Coder fefe12367d Feat: Назначения с несколькими курсами
✅ tags-input для курсов (чёрные бейджи)
✅ CourseSearchController API
✅ Массовое создание назначений (курсы × получатели)
✅ Обновлён create.blade.php

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 16:31:02 +08:00
mirivladandQwen-Coder 81828de9a3 Feat: Назначения курсов с tags-input
✅ CourseAssignmentController (index, create, store)
✅ create.blade.php с тремя tags-input (пользователи/группы/организации)
✅ Разные цвета бейджей (зелёный/голубой/синий)
✅ UserSearchController API
✅ index.blade.php список назначений

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 16:06:02 +08:00
mirivladandQwen-Coder 2e1fdee017 Feat: searchable-select для организации в пользователях
✅ edit.blade.php — выбор организации через searchable-select
✅ create.blade.php — выбор организации через searchable-select
✅ Контроллер не передаёт $organizations

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 15:43:14 +08:00
mirivladandQwen-Coder 3dfe1e5a2c Fix: Сохранение и загрузка групп пользователя
✅ $user->load('groups') для eager loading
✅ Проверка !empty(trim()) для groups поля
✅ Не очищаем группы если поле пустое
✅ Загрузка существующих тегов при инициализации

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 14:12:16 +08:00
mirivladandQwen-Coder 11c5dcaf48 Feat: Tags Input компонент для групп (WordPress style)
✅ Новый компонент x-tags-input
✅ Поле ввода + бейджи ниже
✅ Typeahead поиск групп
✅ Крестик для удаления
✅ Синие бейджи как в WordPress
✅ Отдельный компонент (не влияет на searchable-select)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 12:23:05 +08:00
mirivladandQwen-Coder 1f99664d19 Feat: Searchable Select для групп пользователя
✅ TomSelect с мультивыбором (теги как в WordPress)
✅ API /api/groups/search для поиска групп
✅ Обновлён edit.blade.php пользователя
✅ Обновлён show.blade.php пользователя
✅ Компонент поддерживает multiple=true

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 12:07:07 +08:00
mirivladandQwen-Coder 7782c59f5b Fix: UX улучшения по замечаниям
✅ 1. Ссылка 'Все пользователи' в просмотре организации
✅ 2. Кнопка '+' для группы с предустановленной организацией
✅ 3. Упрощён выбор типа группы (по умолчанию организация)
✅ 4. Исправлена ошибка GroupPolicy::update()
✅ 5. Управление группами в редактировании пользователя
✅ Показ всех доступных групп (общие + организации)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 11:28:03 +08:00
mirivladandQwen-Coder c3ed5a0edb Fix: Общая группа теперь создаётся
✅ required_if валидация для organization_id
✅ JavaScript убирает required при выборе общей группы
✅ Очищает значение при переключении на общую группу

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 11:12:50 +08:00
mirivladandQwen-Coder 4503c217eb Feat: Универсальный компонент Searchable Select
✅ TomSelect библиотека (15KB vs 100KB у Select2)
✅ Blade компонент x-searchable-select
✅ API endpoint /api/organizations/search
✅ Поиск по названию и ИНН
✅ AJAX загрузка данных
✅ Используется в create.blade.php для групп
✅ Модульная архитектура - можно использовать для других полей

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 10:36:02 +08:00
mirivladandQwen-Coder f198afd8a0 Feat: Управление группами пользователей
✅ Modal добавления в группу на странице пользователя
✅ Метод addUser — добавление пользователя в группу
✅ Метод removeUser — удаление пользователя из группы
✅ Фильтр доступных групп (общие + группы организации)
✅ Проверка: нельзя добавить в группу другой организации
✅ Маршруты: POST /users/{user}/groups/add, DELETE /groups/{group}/users/{user}/remove

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 10:25:10 +08:00
mirivladandQwen-Coder 6599b8d5b6 Feat: CRUD групп с типами (организация/общие)
✅ create.blade.php — форма создания с выбором типа группы
✅ store метод — сохранение группы
✅ index.blade.php — кнопка создать, фильтр по пользователю
✅ edit метод — фильтр пользователей по организации
✅ Ссылка Группы в сайдбаре для Admin/Manager
✅ Полные маршруты для groups

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 10:21:17 +08:00
mirivladandQwen-Coder d27b631c8f Feat: CRUD групп пользователей
✅ GroupUserController (index, show, edit, update, destroy)
✅ Маршруты: /admin/groups
✅ Blade шаблоны: index, show, edit
✅ Управление пользователями в группах
✅ Исправлена подсветка сайдбара (Курсы/Тесты)
✅ Ссылка на Группы в сайдбаре для Curator

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 09:28:53 +08:00
mirivladandQwen-Coder 0fd33076ab Feat: Назначения курсов — Controller + Policy + Routes
✅ CourseAssignmentController (resource)
✅ CourseAssignmentPolicy
✅ Маршруты: /admin/course-assignments
✅ Регистрация в AuthServiceProvider

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 08:47:02 +08:00
mirivladandQwen-Coder d1d7eecb69 Fix: Сохранение существующих картинок при редактировании
✅ edit.blade.php передаёт existing_image
✅ update() сохраняет existing_image если новый файл не загружен
✅ update() удаляет старую картинку если загружена новая

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 16:33:14 +08:00
mirivladandQwen-Coder 523e8912af Fix: Добавлен 'image' в $fillable модели Answer
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 16:22:06 +08:00
mirivladandQwen-Coder 95850ca342 Fix: Полный дебаг QuestionController
✅ Логирование каждого шага
✅ Валидация картинок вручную
✅ Проверка hasFile для каждого ответа
✅ Логирование сохранения

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 13:34:31 +08:00
mirivladandQwen-Coder 71cb31f784 Fix: Сохранение is_correct и картинок
✅ Используем $request->input('answers') вместо $validated['answers']
✅ is_correct проверяем как строку '1'
✅ Картинки загружаются через $request->file()
✅ Обновлены store и update методы

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 12:40:11 +08:00
mirivladandQwen-Coder 729e39bd78 Fix: Добавлен $request в use() closure
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 12:27:49 +08:00
mirivladandQwen-Coder be1ba308c9 Fix: Картинки в ответах + toggleCorrect иконка
✅ store/update используют $request->file() для загрузки
✅ toggleCorrect работает с icon.classList вместо innerHTML
✅ Исправлено наследование цвета иконки от кнопки

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 11:54:48 +08:00
mirivladandQwen-Coder eefd5fc5da Fix: Сохранение картинок в ответах
✅ Исправлена проверка hasText/hasImage в контроллере
✅ answer_text сохраняется как null если пустой
✅ Картинки отображаются в edit.blade.php в input-group-text
✅ Обновлены store и update методы

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 11:48:59 +08:00
mirivladandQwen-Coder ffcdd86712 Fix: Исправления для вопросов
✅ Ответы с картинками без текста теперь сохраняются
✅ TinyMCE инициализируется после DOMContentLoaded
✅ Валидация: хотя бы текст ИЛИ картинка в ответе
✅ Обновлены store и update методы

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:41:14 +08:00
mirivladandQwen-Coder 1c94812f7d Feat: Обновлён create.blade.php для вопросов
✅ TinyMCE WYSIWYG редактор (HTML + картинки)
✅ Поддержка ordering типа (сортировка)
✅ Картинки в ответах (загрузка файлов)
✅ Обновлён QuestionController (store/update)
✅ Валидация изображений (max 2MB)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 09:58:35 +08:00
mirivladandQwen-Coder 1ac09e6889 Fix: QuestionController не был обновлён - перезаписан полный контроллер
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 16:47:31 +08:00
mirivladandQwen-Coder a34c2e2812 Feat: CRUD вопросов (начало)
✅ QuestionController (resource)
✅ QuestionPolicy
✅ Маршруты: /admin/tests/{test}/questions
✅ Blade-шаблоны: index, create (с JS для динамических ответов)
✅ Поддержка типов: single_choice, multiple_choice, input, matching
✅ Интеграция в show теста

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 15:45:14 +08:00
mirivladandQwen-Coder 32c9df5453 Feat: CRUD тестов (начало)
✅ TestController (resource controller)
✅ Маршруты: /admin/courses/{course}/tests
✅ Blade-шаблоны: index, create
✅ Интеграция в show курса

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 13:17:44 +08:00
mirivladandQwen-Coder 68439932a8 Fix: Убрано ограничение на максимальные размеры обложки
✅ Оставлен только мин. размер 400x300px
✅ Макс. размеры сняты (поддержка 4K, 8K)
✅ Обновлены сообщения об ошибках
✅ Обновлены подсказки в формах

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 12:57:56 +08:00
mirivladandQwen-Coder f48c22f75a Fix: Исправлен путь к файлу в generateThumbnail()
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 12:41:06 +08:00
mirivladandQwen-Coder b3d1daeea6 Feat: Генерация thumbnail для обложек курсов
✅ Intervention Image установлен
✅ generateThumbnail() - создаёт копию 400x300px с crop по центру
✅ deleteThumbnails() - удаляет оригинал и thumb
✅ Обновлены store, update, destroy методы
✅ View используют оригиналы для show, thumb для списка

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 12:39:10 +08:00
mirivladandQwen-Coder 65cb891658 Feat: Увеличены лимиты для обложек курсов
✅ Мин. размеры: 400x300px
✅ Макс. размеры: 3000x2000px
✅ Макс. размер файла: 10MB
✅ Обновлены подсказки в формах

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 12:34:25 +08:00
mirivladandQwen-Coder 5ee549fbd1 Feat: Добавлена валидация обложки курса
✅ Минимальные размеры: 400x300px
✅ Максимальный размер: 2MB
✅ Форматы: JPEG, PNG, WebP
✅ Подсказки в формах
✅ Кастомные сообщения об ошибках

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 12:24:28 +08:00
mirivladandQwen-Coder 731eb48537 Feat: CRUD курсов
✅ CourseController (resource)
✅ CoursePolicy
✅ Маршруты: /admin/courses
✅ Blade-шаблоны:
  - index.blade.php (список с карточками)
  - create.blade.php (форма создания)
  - edit.blade.php (форма редактирования)
  - show.blade.php (просмотр)
✅ Ссылка в сайдбаре
✅ Загрузка изображений (thumbnail)
✅ Типы курсов: standard, scorm, h5p

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 11:31:40 +08:00
mirivladandQwen-Coder ca95621856 Fix: Изменено $category на $courseCategory для соответствия route model binding
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 11:23:26 +08:00
mirivladandQwen-Coder dacff2dd1c Feat: CRUD категорий курсов
✅ CourseCategoryController (resource)
✅ CourseCategoryPolicy
✅ Маршруты: /admin/course-categories
✅ Blade-шаблоны:
  - index.blade.php (древовидный список)
  - create.blade.php
  - _row.blade.php (partial для дерева)
✅ Ссылка в сайдбаре
✅ Вложенность категорий (parent/children)
✅ Scope tree() для древовидной структуры

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 10:39:14 +08:00
mirivladandQwen-Coder 3bec82a991 Feat: CRUD пользователей
✅ UserController (resource controller)
✅ UserPolicy
✅ Маршруты: /admin/users (resource)
✅ Blade-шаблоны:
  - admin/users/index.blade.php (с фильтрами)
  - admin/users/create.blade.php
  - admin/users/edit.blade.php (с группами)
  - admin/users/show.blade.php
✅ Ссылка в сайдбаре
✅ Привязка к организациям
✅ Распределение по группам
✅ Управление ролями

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 10:29:24 +08:00
mirivladandQwen-Coder 2561807e3b Feat: Добавлен просмотр группы (show)
✅ GroupController@show метод
✅ admin/groups/show.blade.php шаблон
✅ Исправлена ссылка на просмотр в admin/organizations/show.blade.php
✅ Загрузка пользователей группы через load('users')

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 09:56:50 +08:00
mirivladandQwen-Coder 4f5a615860 CRUD групп - Этап 2
✅ GroupController (index, create, store, edit, update, destroy)
✅ GroupPolicy (viewAny, view, create, update, delete)
✅ Маршруты: /admin/organizations/{organization}/groups (shallow resource)
✅ Blade-шаблоны:
  - admin/groups/index.blade.php (список групп организации)
  - admin/groups/create.blade.php (форма создания)
  - admin/groups/edit.blade.php (форма редактирования)
✅ Обновлён admin/organizations/show.blade.php (управление группами)
✅ Обновлён AuthServiceProvider (регистрация GroupPolicy)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 08:53:48 +08:00
mirivladandQwen-Coder 32fed5d4b6 Fix: Добавлен метод courses() в Organization model
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 08:51:27 +08:00
mirivladandQwen-Coder 2271abf732 CRUD организаций - Этап 2
✅ OrganizationController (index, create, store, show, edit, update, destroy)
✅ OrganizationPolicy (viewAny, view, create, update, delete)
✅ Маршруты: /admin/organizations (resource)
✅ Blade-шаблоны:
  - admin/organizations/index.blade.php (список с пагинацией)
  - admin/organizations/create.blade.php (форма создания)
  - admin/organizations/show.blade.php (просмотр + статистика)
  - admin/organizations/edit.blade.php (форма редактирования)
✅ Обновлённое меню в dashboard/admin.blade.php

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 08:41:45 +08:00