Скрыть заблокированных пользователей при добавлении студентов в курс

Скрыть заблокированных пользователей при добавлении студентов в курс

от Ella S. -
Количество ответов: 6

Moodle 3.4 (но проблема была и в более ранних версиях).

У нас в большинстве случаев преподаватели используют добавление студентов в курс методом "Зачисление вручную".

Проблема: при поиске пользователя (обычно ищут по фамилии) в списке выбора отображаются также заблокированные пользователи (никаких отличительных значков, что эта учетка заблокирована, нет).

Как-нибудь можно сделать так, чтобы заблокированные пользователи не отображались при поиске или, чтобы хотя бы они как-то отличались от остальных пользователей в списке?

Пыталась убрать право moodle/course:viewsuspendedusers - не помогло.

На скрине стрелкой помечена заблокированная запись. Видно, что она никак не отличается от остальных и преподаватели часто путаются при добавлении их в курс.

добавление пользователей в курс

В ответ на Ella S.

Re: Скрыть заблокированных пользователей при добавлении студентов в курс

от Vadim Tabunshchik -
Изображение пользователя Developers

Мда, неправильно это, конечно улыбаюсь

Раньше было так:

001

В 3.4 сменили интерфейс записи в курс и забыли «прилепить» пометку к заблокированным пользователям.

На баг-трекере по версии 3.4 не смотрели? Может уже кто-то создал тикет?

Право moodle/course:viewsuspendedusers не поможет, оно работает в контексте системы. Для того, чтобы работало в курсе, нужно доп. функции/библиотеки создавать.

Пока могу предложить только «костыль» в виде правки кода в файле /enrol/manual/locallib.php. Там есть класс class enrol_manual_potential_participant с функцией public function find_users($search)

В этой функции в запросе к БД (строки 53-59) добавьте условие AND u.suspended = 0, вот так:

        $sql = " FROM {user} u
            LEFT JOIN {user_enrolments} ue ON (ue.userid = u.id AND ue.enrolid = :enrolid)
                WHERE $wherecondition
                      AND ue.id IS NULL
                      AND u.suspended = 0";

Тогда в списке потенциальных участников курса не будут выводиться заблокированные пользователи.

В ответ на Vadim Tabunshchik

Re: Скрыть заблокированных пользователей при добавлении студентов в курс

от Vadim Tabunshchik -
Изображение пользователя Developers

Нашел тикет: MDL-39073. К нему прицепом ещё MDL-59637. И много чего можно найти по поводу suspended users

Там «бойня» идет аж с 10 апреля 2013. И уже есть неплохой патч, но его никак не хотят интегрировать по разным причинам, можно почитать обсуждение. И не скоро интегрируют, имхо, т. к. изменился интерфейс записи. грущу

В ответ на Vadim Tabunshchik

Re: Скрыть заблокированных пользователей при добавлении студентов в курс

от Vadim Tabunshchik -
Изображение пользователя Developers

ЗЫ: поправочка к скриншоту - так выглядит запись в курс после применения патча из MDL-39073.

В ответ на Vadim Tabunshchik

Re: Скрыть заблокированных пользователей при добавлении студентов в курс

от Александр Степаненко -

Столкнулись с такой-же проблемой. Решили воспользоваться "костылем".

Предложенный вариант работает только при записи через Управление курсом-Пользователи-Способы зачисления на курс. И уже на этой странице нажать кнопку записи пользователей у способа зачисления вручную.

Для варианта записи, который показан на первом скриншоте, надо править файл /enrol/locallib.php. Функция get_potential_users. Строки 451-566. Так же в запросе надо добавить

$sql = " FROM {user} u
LEFT JOIN {user_enrolments} ue ON (ue.userid = u.id AND ue.enrolid = :enrolid)
WHERE $wherecondition
AND ue.id IS NULL
AND u.suspended = 0";
Еще одно место с такой же проблемой - добавление участников в глобальную группу.

Для этого правим файл /cohort/locallib.php, функция find_users, строки 56-58.


Вдруг кому-то пригодится.

В ответ на Александр Степаненко

Re: Скрыть заблокированных пользователей при добавлении студентов в курс

от bogdan sh -
)) Moodle 4.0, проблема та же . Помогла правка функции get_potential_users. Спасибо.