Commit Graph

76 Commits (41224069c10c8e66a8f1301ebf1b9d67b76aa470)

Author SHA1 Message Date
mirivlad 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
mirivlad 3c3819d3b1 Fix: Безопасность тестов - не показывать вопросы
 Удалён блок с вопросами из student/tests/show
 Контроллер не загружает questions.answers
 Предупреждение что вопросы будут при тестировании
 Блок с попытками (пока пусто)

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

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

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-02 09:51:30 +08:00
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 500ff03309 Fix: Общие группы могут добавлять любых пользователей
 Проверка organization_id только для групп организации
 Общие группы добавляют любых пользователей
 Разные placeholder для общих/организационных групп

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

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

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

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

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

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 09:01:23 +08:00
mirivlad cb87a76570 Fix: Маршрут show с {course} параметром
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-31 08:53:46 +08:00
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad 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
mirivlad c5a5280f56 Fix: Tags Input - полное исправление
 API не возвращает группы при пустом запросе
 onItemAdd вместо onChange для добавления тегов
 Очистка поля после добавления тега
 Фильтрация по организации пользователя

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

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 13:34:31 +08:00
mirivlad 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
mirivlad 729e39bd78 Fix: Добавлен $request в use() closure
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-27 12:27:49 +08:00