Commit Graph
129 Commits
Author SHA1 Message Date
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