如何使用 Web 服务获取 Moodle 中所有课程下所有待处理作业的列表 API
How to get a list of all pending assignments under all courses in Moodle using the Web service API
我想获取所有课程的所有作业及其完成状态的列表。 基本上是仪表板时间线下显示的内容。
WS 函数 core_course_get_enrolled_courses_by_timeline_classification
,当我使用参数 ?classification=inprogress
.
时,它会为我提供学生当前注册的所有课程
使用上述函数中的课程 ID,我将它们作为参数传递给函数 mod_assign_get_assignments
,但只有一个小问题,它没有提供有关该作业是否已标记为的任何信息由学生完成(完成状态)。
功能 core_course_get_contents
比我需要的要多得多,因为它提供了该课程中的每个模块以及每个模块下的所有活动,而且它一次只为一门课程提供所有这些,但是它确实给出了每个 activity.
的完成状态
Also, it would help me out a lot if you provide the required and optional query parameters since the API docs are quite terrible and doesn't provide any of that, I had to google each function which was very time consuming.
我能看到的最接近的函数是core_completion_get_activities_completion_status
你可以传递课程id和用户id
其中 returns 活动列表包括
'cmid' => new external_value(PARAM_INT, 'course module ID'),
'modname' => new external_value(PARAM_PLUGIN, 'activity module name'),
'instance' => new external_value(PARAM_INT, 'instance ID'),
'state' => new external_value(PARAM_INT,
"Completion state value:
0 means incomplete,
1 complete,
2 complete pass,
3 complete fail"
),
'timecompleted' => new external_value(PARAM_INT,
'timestamp for completed activity'),
所以在您的代码中,过滤 modname = 'assign'
的结果
mdl_assign
中的id table是instance
中的id
我想获取所有课程的所有作业及其完成状态的列表。 基本上是仪表板时间线下显示的内容。
WS 函数 core_course_get_enrolled_courses_by_timeline_classification
,当我使用参数 ?classification=inprogress
.
使用上述函数中的课程 ID,我将它们作为参数传递给函数 mod_assign_get_assignments
,但只有一个小问题,它没有提供有关该作业是否已标记为的任何信息由学生完成(完成状态)。
功能 core_course_get_contents
比我需要的要多得多,因为它提供了该课程中的每个模块以及每个模块下的所有活动,而且它一次只为一门课程提供所有这些,但是它确实给出了每个 activity.
Also, it would help me out a lot if you provide the required and optional query parameters since the API docs are quite terrible and doesn't provide any of that, I had to google each function which was very time consuming.
我能看到的最接近的函数是core_completion_get_activities_completion_status
你可以传递课程id和用户id
其中 returns 活动列表包括
'cmid' => new external_value(PARAM_INT, 'course module ID'),
'modname' => new external_value(PARAM_PLUGIN, 'activity module name'),
'instance' => new external_value(PARAM_INT, 'instance ID'),
'state' => new external_value(PARAM_INT,
"Completion state value:
0 means incomplete,
1 complete,
2 complete pass,
3 complete fail"
),
'timecompleted' => new external_value(PARAM_INT,
'timestamp for completed activity'),
所以在您的代码中,过滤 modname = 'assign'
mdl_assign
中的id table是instance
中的id