Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Николай Петров -
Количество ответов: 7

Добрый день.

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

Например, есть курс "русский язык" для отделений ФК, АФК, ПДО. Получается на курс записано 150 человек.

Среди первых курсов педагоги ещё не знают принадлежности студента к группе, не запомнили.


Метакурсы используются для облегчения переводов студентов на следующий курс обучения.

Попросили что-то сделать с тем, чтобы можно было сразу видеть, к какой группе принадлежит студент В ЛЮБОМ КОНТЕКСТЕ (Зав отделением, Администрация проверяет посещаемость - смотрит в  "Записанные на курс пользователи" - время последнего входа на курс; Преподаватель проверяет задания, в таблице с заданиями тоже хочет видеть группу у каждого студента)

Мы люди простые, взяли и дописали в поле "фамилия" каждого студента его группу

Было: Иванов, Сидоров

Стало: АФК-11 Иванов, АФК-11 Сидоров

Проблема решилась, в любом контексте студент идентифицируется и по фамилии и по группе.

Однако, теперь в таблице оценивания  (и других) нельзя отсортировать студентов по первой букве фамилии: Ведь любая фамилия теперь начинается с группы.....

Что можно сделать с этим?

Можно где-то что-то дописать, чтобы в любом контексте, где выводится ФИО пользователя, перед фамилией дописывалось (не влияя на сортировки и т.д.), например, название его глобальной группы (это был бы самый простой вариант для нас, чтобы не писать каждому юзеру его группу в профиль...) 

Тогда логичнее было-бы и в свойствах глобальной группы добавить checkbox: "Выводить название этой глобальной группы рядом с фамилией", чтобы не писать группы педагогам\другим пользователям, только нашим студентам.... Как это правильно реализовать, где смотреть?

Может есть еще какие то варианты?

В ответ на Николай Петров

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Николай Петров -
Интерес в том, что у нас группы не имеют уникального названия.
АФК-11
АФК-21
АФК-31
АФК-41
И каждый год: 4 курс выпускаются, все остальные поднимаются на год вперед, а 1 курс - новенькие.

В принципе было бы достаточно отрисовки названия глобальной группы в двух таблицах: В "Записанные на курс пользователи" и в форме оценивания в элементе "Задание".
В ответ на Николай Петров

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Виктория Малиатаки -
Недостаточно будет заполнить поле Отдел (department)? - выгрузить список студентов, дописать название группы в это поле (добавить столбец), обновить список студентов.
А в "Политиках пользователя" (ваш адрес/admin/settings.php?section=userpolicies) соответственно поставить - "Отображать персональные данные" - "Отдел".
Это приведет к выводу столбца с "отделом" в списке пользователей - как в списке участников курса, так и при проверке заданий. Само название столбца "Отдел" можете переименовать через ваш адрес/admin/tool/customlang/index.php

Минус - нужно помнить, что это поле придется изменять вручную при изменении группы студента.
В ответ на Виктория Малиатаки

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Николай Петров -
Пожалуй, хороший вариант, за исключением дурной работы с переименованием каждому студенту его группы....

Отлично, спасибо!

Остался вопрос с тем, Как поменять столбцы местами в таблице с ответами в Задании.....
В ответ на Николай Петров

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Использовать для такого группы или глобальные группы нельзя - их у пользователя может быть больше одной, поэтому если больше одной, непонятно, какую брать.
Правильнее создать для этого дополнительное поле профиля и хранить эту информацию там. Только не уверен, можно ли сейчас использовать для кастомного формата ФИО доп. поля профиля. Ещё, как вариант, использовать стандартные поля для доп. имён
firstnamephonetic, lastnamephonetic, alternatename - их точно можно использовать как часть формата имени.

Поменять отображаемый формат имени можно через языковой пакет.

Если студентов много, заполнить соответствующие поля по данным глобальных групп, можно написав sql-запрос.

В ответ на Vadim Dvorovenko

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Николай Петров -
Добрый день!
Поделитесь пожалуйста примером такого запроса
Я их никогда не делал, боюсь наделать делов....

Мы написали учебные группы в поле профиля "ОТДЕЛ", сделали отображение этого поля в таблицах. Спасибо Виктория Малиатаки.

Однако, теперь будет проблема перевода на след учебный год (Группы не имеют уникального названия, Д-11 в след году будут Д-21, и тд)

С таким запросом было бы проще осуществить перевод:
1. переименовать глобальные группы,
2. перезачислить на метакурсы,
3. кинуть запросы, чтобы по названию гл.группы вставил юзерам группу в поле "отдел".
В ответ на Николай Петров

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Николай Петров -
Хм, поигрался с политиками пользователя, мне кажется лучше записывать в firstnamephonetic, как раз и появляется приписка к фамилии..

остался вопрос с запросом,
выбрать по названию глобальную группу
и, видимо циклом,
перебрать всех пользователей из группы
добавив каждому в firstnamephonetic заданный текст (группу)
В ответ на Николай Петров

Re: Как выводить название гл.группы рядом с фамилией ВЕЗДЕ

от Николай Петров -
РЕШЕНО ТАК:
На основании названия глобальной группы, в которой находятся пользователи, всем заполняю поле "Имя - фонетическая запись" этой же группой.

Отображение поля перед Фамилией и Именем:
fullnamedisplay: firstnamephonetic lastname firstname
alternativefullnameformat: firstnamephonetic lastname firstname

Запрос:

UPDATE mdl_user SET firstnamephonetic="Д-11", department="" WHERE id IN (SELECT userid FROM mdl_cohort_members WHERE cohortid=(SELECT id FROM mdl_cohort WHERE name="Д-11 (2021-2022)"))

где
department="" - очищаю отдел.
Д-11 - что записать в поле "Фамилия - фонетическая запись"
Д-11 (2021-2022) - название глобальной группы


Дополненный запрос, где удаляется группа из фамилии, удаляется из отдела и пишется в "Имя-фонетическая запись"

UPDATE mdl_user SET department="", firstnamephonetic="ФК-11", lastname=REPLACE(lastname, "ФК-11 ", ""),  WHERE id IN (SELECT userid FROM mdl_cohort_members WHERE cohortid=(SELECT id FROM mdl_cohort WHERE name="ФК-11 (2021-2022)"))