100 Commits
Author SHA1 Message Date
mirivladandQwen-Coder 41224069c1 Feat: Модули курса (контент)
 CourseModuleController (store, update, destroy)
 Маршруты для модулей
 UI добавления/редактирования модулей
 Типы: section, lesson, video, file, link, test
 Тесты как тип модуля (выбор из существующих)
 Загрузка файлов
 Иерархия (родитель/потомки)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 17:27:49 +08:00
mirivladandQwen-Coder 73453e32f1 Fix: Удалён несуществующий маршрут student.tests.take
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 17:04:18 +08:00
mirivladandQwen-Coder 3c3819d3b1 Fix: Безопасность тестов - не показывать вопросы
 Удалён блок с вопросами из student/tests/show
 Контроллер не загружает questions.answers
 Предупреждение что вопросы будут при тестировании
 Блок с попытками (пока пусто)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 16:56:40 +08:00
mirivladandQwen-Coder b8d9584f7d Feat: Расписание для студентов
 ScheduleController (index, calendar)
 Временная шкала событий
 Календарь (FullCalendar)
 Фильтры (сегодня/неделя/месяц)
 Статистика (курсы/тесты)
 Ссылка в сайдбаре

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 16:27:59 +08:00
mirivladandQwen-Coder 4ee0b55643 Feat: Landing Page (welcome)
 Hero секция с градиентом
 Преимущества платформы (3 карточки)
 Публичные курсы (до 6)
 CTA секция
 Footer
 Login Modal
 Адаптивный дизайн

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 11:51:39 +08:00
mirivladandQwen-Coder dcb89380aa Feat: Учебная часть для студентов
 Login Modal в навигации
 Навигация: Админка (для админов), Мои курсы, Тесты
 StudentCourseController - список и просмотр курсов
 StudentTestController - список и просмотр тестов
 Маршруты /student/courses, /student/tests
 Views для курсов и тестов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 11:47:46 +08:00
mirivladandQwen-Coder b56d8b2b3d Feat: Добавлена ссылка на Заявки в сайдбар
 Administrator/Manager видят Заявки на курсы
 Curator видит Заявки на курсы
 Иконка file-earmark-plus

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 10:26:08 +08:00
mirivladandQwen-Coder 2ba9ab5157 Fix: Сохранение organization_id для каждого элемента
 Каждый элемент создаёт отдельную запись
 organization_id = null для пользователей/групп
 organization_id заполняется для организаций

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:57:52 +08:00
mirivladandQwen-Coder ad725dd95b Feat: Выбор типа получателя в edit.blade.php
 Аналогично create.blade.php
 toggleRecipientFields функция
 Валидация выбора получателя

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:52:18 +08:00
mirivladandQwen-Coder b313d96bfc Feat: Выбор типа получателя в заявке
 Select: Пользователь/Группа/Организация
 Динамическое переключение полей
 Валидация выбора получателя
 Убрано поле Организация из info блока

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:51:30 +08:00
mirivladandQwen-Coder 3f0039712d Feat: Удаление заявок и элементов
 Кнопка удаления в index (с подтверждением)
 Кнопка удаления в show (с подтверждением)
 Удаление элементов в edit (JavaScript)
 approve/reject кнопки в index

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:31:08 +08:00
mirivladandQwen-Coder 729d48ac5a Fix: Заявки - номер, получатели, null-safe
 Номер заявки вместо организации в списке
 Столбец Получатели (пользователи/группы/организации)
 Null-safe для organization, user, group
 Бейджи с названиями в show.blade.php

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:26:42 +08:00
mirivladandQwen-Coder b01d8431c8 Fix: Организация берётся из items_json
 organization_id из первого элемента items
 Удалена валидация organization_id
 index.blade.php обрабатывает NULL organization

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:22:12 +08:00
mirivladandQwen-Coder 6833441514 Fix: Правильное получение названий из TomSelect options
 Проверка options перед обращением
 Fallback на 'Курс #ID' если option не найден
 Безопасное получение text из options

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:19:50 +08:00
mirivladandQwen-Coder f09571e8b2 Fix: Null-safe оператор для requestedBy и approvedBy
 requestedBy?->name ?? 'Удалён'
 approvedBy?->name ?? 'Удалён'

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:10:50 +08:00
mirivladandQwen-Coder 5187c6f784 Fix: TomSelect для мультивыбора в modal
 <select multiple> вместо <div> для групп/пользователей
 plugins: ['remove_button'] для крестиков
 modalInitialized флаг для однократной инициализации
 Правильное получение getValue() для мультивыбора

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:03:33 +08:00
mirivladandQwen-Coder c65da15feb Feat: Заявки - Modal для добавления элементов
 Modal с TomSelect для всех полей
 Курс, Организация, Группа, Пользователь - всё с поиском
 Динамическое добавление элементов через JSON
 edit.blade.php с загрузкой существующих элементов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 08:50:55 +08:00
mirivladandQwen-Coder 69332ecea5 Fix: searchable-select для динамических элементов
 initTomSelectForElement() для инициализации новых элементов
 TomSelect для курсов и организаций
 Ручная инициализация при добавлении элемента

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 16:31:39 +08:00
mirivladandQwen-Coder 2a42403471 Fix: Исправлена миграция course_requests
 Правильная структура таблиц
 Все поля: organization_id, user_id, group_id, start_date, end_date

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 16:26:36 +08:00
mirivladandQwen-Coder 4e38a11490 Fix: Добавлена migration для organization_id в course_request_items
 organization_id в таблицу
 Добавлено в fillable модели

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 16:21:19 +08:00
mirivladandQwen-Coder 38b2f043bf Fix: Добавлена организация в элементы заявки
 organization relationship в CourseRequestItem
 Отображение в show.blade.php
 Загрузка в контроллере

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 16:19:56 +08:00
mirivladandQwen-Coder c6f303fac7 Fix: Улучшена форма заявки на курсы
 Организация - необязательна
 Новая структура элемента: Курс → Получатели → Даты
 Поддержка множественных user_ids/group_ids
 Обновлены create, edit, store, update, createAssignments

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 16:19:04 +08:00
mirivladandQwen-Coder 7ad06e85fa Feat: Заявки — Blade шаблоны (create, show, edit)
 create.blade.php — создание с элементами
 show.blade.php — просмотр с статистикой
 edit.blade.php — редактирование элементов
 Кнопки approve/reject на show

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 16:07:43 +08:00
mirivladandQwen-Coder 87f20ef702 Feat: Заявки на курсы (Course Requests) - базовая структура
 Миграции: course_requests, course_request_items
 Models: CourseRequest, CourseRequestItem
 CourseRequestController (CRUD + approve/reject)
 CourseRequestPolicy
 Маршруты и регистрация Policy
 index.blade.php

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 15:48:41 +08:00
mirivladandQwen-Coder 21a836ef4d Fix: Организация - пользователи и группы
 Добавлен use User и use Group
 exclude_organization_id для поиска пользователей
 Исключение пользователей из текущей организации

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-01 08:35:38 +08:00
mirivladandQwen-Coder de64be24eb Feat: UI/UX организаций как в назначениях
 AJAX добавление/удаление пользователей
 AJAX добавление/удаление групп
 Modal редактирования организации
 Фильтрация GroupSearchController для организаций
 Счётчики обновляются без перезагрузки

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 16:57:26 +08:00
mirivladandQwen-Coder 7f19cedeee Fix: Правильная группировка where в UserSearchController
 where(function() {...}) для группировки условий
 organization_id фильтруется корректно

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 16:46:47 +08:00
mirivladandQwen-Coder 500ff03309 Fix: Общие группы могут добавлять любых пользователей
 Проверка organization_id только для групп организации
 Общие группы добавляют любых пользователей
 Разные placeholder для общих/организационных групп

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 16:44:31 +08:00
mirivladandQwen-Coder 98b0e7f9a9 Fix: Исправлено добавление пользователей в группы
 Проверка на дубликаты (не добавлять если уже в группе)
 Фильтрация поиска по организации группы
 UserSearchController фильтрует по organization_id
 Подсказка в modal для групп организации

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 15:57:39 +08:00
mirivladandQwen-Coder fff890e950 Fix: Исправлен маршрут groups.users.add
 Маршрут: POST /groups/{group}/users/add
 Контроллер принимает Group из маршрута
 JavaScript обновлён

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 15:21:50 +08:00
mirivladandQwen-Coder eb848ab06b Fix: Исправлен маршрут groups.update
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 15:18:22 +08:00
mirivladandQwen-Coder b456b9c589 Fix: Удалён дубликат метода update()
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 15:05:58 +08:00
mirivladandQwen-Coder 640a20ea4e Fix: Удалён дубликат метода edit()
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 15:04:35 +08:00
mirivladandQwen-Coder 7fa8fd9a64 Feat: UI/UX групп как в назначениях
 AJAX добавление/удаление пользователей
 Modal редактирования группы
 Список пользователей с кнопками
 Счётчик обновляется без перезагрузки

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 15:03:31 +08:00
mirivladandQwen-Coder ecdb8d10cb Fix: Временно отключена проверка test_results
 Таблица будет создана позже
 Пока всегда canEditCourse = true

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 09:52:14 +08:00
mirivladandQwen-Coder 95046fa59e Feat: Компромиссное редактирование назначений
 Проверка на начатые тесты перед редактированием
 Если тестов нет — можно менять курс и дату начала
 Если тесты есть — только дата окончания и заметка
 Предупреждение в modal

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 09:41:02 +08:00
mirivladandQwen-Coder 7da4b1a2cf Feat: Автооткрытие modal редактирования из списка
 При клике на ✏️ из списка → #edit в URL
 JavaScript открывает modal при загрузке
 Bootstrap 5 Modal API

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 09:37:48 +08:00
mirivladandQwen-Coder 932035f3e4 Fix: Добавлена кнопка редактирования в index
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 09:18:32 +08:00
mirivladandQwen-Coder ae5f09eedc Feat: AJAX для назначений + заметка + редактирование
 AJAX добавление через modals
 AJAX удаление без перезагрузки
 Заметка показывается если есть
 Modal редактирования (дата, заметка)
 Кнопка редактировать назначение

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 09:01:23 +08:00
mirivladandQwen-Coder cb87a76570 Fix: Маршрут show с {course} параметром
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 08:53:46 +08:00
mirivladandQwen-Coder 79d8dedb91 Feat: Группировка назначений курсов
 Группировка по курсу + датам в index
 Сводная статистика (пользователи/группы/организации)
 show с раздельными списками по типам
 Modals для быстрого добавления
 Удаление edit/update - управление через show

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 08:48:52 +08:00
mirivladandQwen-Coder 33c2ac527e Fix: Исправлена переменная $assignments в index.blade.php
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 08:42:26 +08:00
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 d412d287c2 Feat: show и edit для назначений
 show.blade.php — просмотр назначения
 edit.blade.php — редактирование (период, статус, заметка)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 16:53:56 +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 064778b8aa Feat: Поддержка разных цветов бейджей в tags-input
 Параметр badge_color (primary, success, info, warning, danger, secondary, dark)
 CSS классы для всех цветов Bootstrap
 Обновлены addTag и загрузка существующих тегов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 15:46:04 +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 f8fc503177 Feat: Упрощён просмотр групп пользователя
 Только бейджи с названиями групп
 Без поля поиска и удаления
 Отображение организации в скобках

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 14:32:40 +08:00
mirivladandQwen-Coder 0c35e31d4c Fix: Исправлено добавление существующих тегов
 Создаём бейджи напрямую без addTag()
 selectedTags.add() перед созданием бейджа

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 14:30:41 +08:00
mirivladandQwen-Coder b848b69294 Feat: Добавлена подробная отладка tags-input
 console.log для всех этапов инициализации
 Логирование загрузки существующих тегов
 Логирование API запросов и ответов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 14:28:00 +08:00
mirivladandQwen-Coder 3b390c8358 Fix: Загрузка существующих групп при инициализации
 API возвращает группы при пустом запросе с user_id
 Фильтрация по названию только если query не пустой
 Компонент передаёт user_id при загрузке тегов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 14:18:11 +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 df8172070a Fix: TomSelect addOption для загруженных групп
 this.addOption(item) для каждой группы из API
 Опции теперь доступны в this.options

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 14:08:58 +08:00
mirivladandQwen-Coder 964a0fd9e1 Fix: Убран @can('update', Group::class) из show.blade.php
 Исправлена ошибка Policy
 Обновлён show.blade.php с tags-input
 Полная очистка кэша

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 13:42:30 +08:00
mirivladandQwen-Coder c5a5280f56 Fix: Tags Input - полное исправление
 API не возвращает группы при пустом запросе
 onItemAdd вместо onChange для добавления тегов
 Очистка поля после добавления тега
 Фильтрация по организации пользователя

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 13:14:53 +08:00
mirivladandQwen-Coder 5689604004 Fix: onChange + фильтрация групп
 this.options[value] вместо select.options[value]
 Проверка data перед addTag
 Исправлена группировка whereNull + orWhere в API

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 13:08:11 +08:00
mirivladandQwen-Coder 6a725d27de Fix: JSON экранирование в tags-input
 {!! json_encode() !!} вместо {{ json_encode() }}
 Правильный JavaScript формат Set

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 13:05:06 +08:00
mirivladandQwen-Coder 244dcdb5c9 Fix: Blade директива на одной строке с JS
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 13:01:13 +08:00
mirivladandQwen-Coder 74c115b7f5 Fix: Исправлена Blade директива в tags-input
 @if() → @if(isset() && )
 Очистка view кэша

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 12:47:30 +08:00
mirivladandQwen-Coder be44d09169 Fix: Фильтрация групп + исправление GroupPolicy
 API groups/search принимает user_id параметр
 Фильтр: общие + группы организации ИЛИ только общие
 tags-input передаёт user_id в API
 Очистка кэша для GroupPolicy

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 12:44:47 +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 4b84528e52 Feat: Теги групп как в WordPress
 Синие бейджи с названиями групп
 Крестик для удаления (краснеет при наведении)
 CSS стили для TomSelect
 Компонент для мультивыбора

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 12:15:52 +08:00
mirivladandQwen-Coder 44aa50fc18 Fix: Исправлено имя маршрута api.groups.search
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 12:10:02 +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 00229fc4ea Fix: organization_id nullable в groups table
 Миграция для изменения колонки на NULLABLE
 Применено к БД

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 11:17:25 +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 f1f1f4edde Fix: Добавлен middleware auth для API поиска
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 10:37:57 +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 5da8134eae Fix: Работающие ссылки в сайдбаре для всех ролей
 Administrator/Manager: Тесты, Назначения — рабочие ссылки
 Curator: Пользователи, Группы, Курсы, Назначения — рабочие ссылки
 Student: Мои курсы, Тесты — рабочие ссылки
 Active state для всех разделов

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 09:05:41 +08:00
mirivladandQwen-Coder be66e30a85 Feat: Назначения курсов — Blade шаблоны
 index.blade.php — список с фильтрами
 create.blade.php — форма создания (individual/group/organization)
 edit.blade.php — форма редактирования
 show.blade.php — просмотр назначения
 JavaScript для динамического переключения полей

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 08:51:30 +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 2cb7d9346a Fix: Убран disabled с form-check-input в превью
 opacity: 1 вместо 0.5
 Элементы формы неактивны по умолчанию (нет обработчиков)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-30 08:36:48 +08:00
mirivladandQwen-Coder be502f7bac Fix: z-index для modal чтобы убрать белый фон
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 17:32:14 +08:00
mirivladandQwen-Coder 965eb593db Fix: UTF-8 кодировка в modal + исправлен backdrop
 urlencode/decodeURIComponent вместо base64
 modal-dialog-scrollable для прокрутки
 Обработка null для matching/ordering
 aria-hidden='true' для accessibility

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 17:25:34 +08:00
mirivladandQwen-Coder 26eabf0cfa Fix: Base64 encoding для JSON данных в modal
 Используем base64_encode() в Blade
 Используем atob() + JSON.parse() в JavaScript
 Обработка null значений для matching/ordering

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 17:16:57 +08:00
mirivladandQwen-Coder 4201f92476 Feat: Модальное окно предпросмотра вопросов
 Клик на текст вопроса открывает modal
 Отображение текста вопроса с HTML форматированием
 multiple_choice: radio/checkbox в зависимости от кол-ва правильных
 matching: таблица с парами
 ordering: нумерованный список в правильном порядке
 Картинки + текст в ответах

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 16:40:18 +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 8dc9e59a68 Feat: Обновлён edit.blade.php + strip_tags в index
 edit.blade.php полностью переписан под create.blade.php
 TinyMCE для текста вопроса и пояснения
 Картинки в ответах (просмотр + загрузка новых)
 Поддержка matching и ordering
 index.blade.php: strip_tags для текста вопроса
 tests/show.blade.php: strip_tags для текста вопроса

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 11:14:09 +08:00
mirivladandQwen-Coder 20ccc70092 Fix: answer_text nullable - миграция применена
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 11:08:57 +08:00
mirivladandQwen-Coder 7f10576181 Fix: TinyMCE skin + toggleCorrect исправлен
 TinyMCE: добавлены skin: 'oxide' и content_css: 'default'
 toggleCorrect: использует querySelector вместо previousElementSibling
 Добавлено переключение классов btn-success/btn-outline-success

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:58:30 +08:00
mirivladandQwen-Coder ba4a16c7f9 Fix: Добавлен license_key: 'gpl' для TinyMCE
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:54:58 +08:00
mirivladandQwen-Coder ea4d4df43d Fix: answer_text nullable + TinyMCE локально
 Миграция: answer_text теперь nullable
 TinyMCE 8.3.2 распакован в public/tinymce/
 Русский язык установлен
 Используется локальная версия вместо CDN

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 10:53:00 +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 025b03c94b Refactor: Убран single_choice (частный случай multiple_choice)
 Все single_choice конвертированы в multiple_choice
 Отображение (radio/checkbox) зависит от кол-ва правильных ответов:
   - 1 правильный → radio (bi-circle)
   - 2+ правильных → checkbox (bi-check2-square)
 Обновлены миграции
 Обновлены view файлы

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 09:55:33 +08:00
mirivladandQwen-Coder acf616fc08 Feat: Обновление вопросов
 Удалён input тип (не имеет смысла без автопроверки)
 Добавлен ordering тип (сортировка элементов)
 Добавлено поле image для ответов
 Миграции применены
 QuestionOrderingItem модель

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 09:51:17 +08:00
mirivladandQwen-Coder e730cd4856 Feat: Улучшен UI списка вопросов
 Таблица вместо списка (удобно для 40-50+ вопросов)
 Иконки для типов вопросов:
   - single_choice: 📻 (radio button)
   - multiple_choice:  (checkbox)
   - input: 📝 (textarea)
   - matching: ↔️ (arrows)
 Purple badge для matching
 Номер вопроса, баллы, кол-во ответов в таблице

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 17:26:30 +08:00
mirivladandQwen-Coder 54e13c7c96 Feat: Добавлены show и edit шаблоны для вопросов
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 17:13:59 +08:00
mirivladandQwen-Coder 89e72895c8 Fix: Исправлены все маршруты admin.tests.* на admin.courses.tests.*
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-26 17:07:00 +08:00