Moodle 3.6 Как добиться прогресса, используя функции веб-сервиса - PullRequest
0 голосов
/ 13 июня 2019

Можем ли мы получить прогресс по курсу, например, (30% или 60% завершено) для определенного курса в Moodle 3.6

1 Ответ

1 голос
/ 16 июня 2019

Вот подход, который должен работать:

  • Включение отслеживания завершения в настройках курса
  • Настройка завершения операций для действий в курсе, которые должны быть включены в расчет прогресса
  • Используйте функцию core_completion_get_activities_completion_status WS, чтобы получить статус завершения каждого действия.Это использует основную функцию get_activities_completion_status для возврата массива, включающего каждое действие и статус его завершения.
  • Пройдите по возвращенному массиву, чтобы рассчитать прогресс на основе выполненных действий.

Ваш вычисленный результат должен соответствовать% прогресса, сообщенному для каждого курса в панели мониторинга, которая появляется при использовании Boost и многих других тем.

Один случай, когда это может не дать ожидаемого результата.(будь то использование веб-сервисов или в основных отчетах о завершении / продвижении Moodle), если ваш курс включает в себя такие действия, как пакеты SCORM, где можно отслеживать прогресс в рамках действия.

Например, если ваш курс включает 5 действий / пакетов SCORM, и каждое из них выполнено на 50%, но правила завершения действий для каждого действия SCORM требуют наличия статуса «завершен» или «пройден» для пакета,Ход выполнения курса, скорее всего, будет отображаться как 0% (0 из 5) в Moodle или в данных, возвращаемых функцией WS, поскольку все пакеты еще выполняются.Вы можете рассчитать прогресс, используя прогресс в рамках действия, но обычно требуется немного настроек, чтобы вернуть то, что вы ожидаете.

Удачи с этим!

...