#moodle #moodle-api
Вопрос:
Я хочу получить список всех заданий вместе с их статусом завершения по всем курсам. В основном то, что показано под временной шкалой на панели мониторинга.
Функция WS core_course_get_enrolled_courses_by_timeline_classification
предоставляет мне все текущие курсы , на которые зачислен студент, когда я использую этот параметр ?classification=inprogress
.
Используя идентификаторы курсов из приведенной выше функции, я передаю их в качестве параметров функции mod_assign_get_assignments
, но есть только одна небольшая проблема: она не дает никакой информации о том, было ли это задание отмечено студентом как завершенное (статус завершения).
Эта функция core_course_get_contents
намного больше, чем мне нужно, поскольку она предоставляет каждый отдельный модуль в этом курсе и все действия в рамках каждого модуля, более того, она предоставляет все это только для одного курса за раз, однако она дает статус завершения для каждого действия.
Кроме того, мне бы очень помогло, если бы вы предоставили необходимые и необязательные параметры запроса, поскольку документы API довольно ужасны и не предоставляют ничего из этого, мне пришлось гуглить каждую функцию, что отнимало очень много времени.
Ответ №1:
Самая близкая функция, которую я вижу, — это core_completion_get_activities_completion_status
Вы можете передать идентификатор курса и идентификатор пользователя
Который возвращается со списком действий, включая
'cmid' =gt; new external_value(PARAM_INT, 'course module ID'), 'modname' =gt; new external_value(PARAM_PLUGIN, 'activity module name'), 'instance' =gt; new external_value(PARAM_INT, 'instance ID'), 'state' =gt; new external_value(PARAM_INT, "Completion state value: 0 means incomplete, 1 complete, 2 complete pass, 3 complete fail" ), 'timecompleted' =gt; new external_value(PARAM_INT, 'timestamp for completed activity'),
Поэтому в вашем коде отфильтруйте результат для modname = 'assign'
Идентификатор в mdl_assign
таблице-это instance
идентификатор
Комментарии:
1. Это было бы ближе всего к тому, что я ищу, но это позволяет использовать только один идентификатор курса в качестве параметра, что означает, что мне придется сделать этот запрос несколько раз. Есть ли функция, в которой я могу указать массив идентификаторов курсов в качестве параметров (как в
mod_assign_get_assignments
функции)?