Moodle 获取有关课程中用户点和课程中全部点信息的最佳方式

问题描述 投票:0回答:1

我正在寻求帮助来确定用户的总体分数和课程中可达到的最高分数。我的目标是计算用户在整个课程中获得的总分的百分比。此外,我对通过 API 设置和检索预定义阈值(代表特定分数百分比)的能力感兴趣。

我最初尝试使用

core_completion_get_course_completion_status
功能。但是,我遇到了某些课程的错误,表明未设置完成标准。随后,我考虑下载课程中的所有活动并检索每个活动的用户结果。然而,获得的数据量让我重新考虑这种方法,因为它似乎过于复杂。

我正在寻找一种更简单的方法来实现这些目标。如果您有任何建议或见解,我将非常感谢您的帮助。

谢谢你。

moodle moodle-api
1个回答
0
投票

我已经用方法

gradereport_user_get_grade_items
解决了这个问题。 从提供的响应中,我设法获取对象列表并迭代它,直到找到具有属性的项目:
itemtype
设置为
course
gradeisoverridden
设置为
false
。从这个项目我可以得到:

  • graderaw
    - 等级的原始值
  • gradeformatted
    - 表示格式化成绩的字符串
  • grademin
    - 可以获得的最低等级
  • grademax
    - 可以获得的最高等级

对于请求,我必须添加这样的标头:

  • wstoken
    - 访问令牌(具有所需的权限)
  • wsfunction
    - Moodle 方法 (
    gradereport_user_get_grade_items
    )
  • moodlewsrestformat
    - 可选(json、xml - 默认)
  • courseid
    - 课程 ID
  • userid
    - 正在搜索其成绩的用户的 ID

卷曲示例:

curl --location '<YOUR_URL>/webservice/rest/server.php' \
--form 'wstoken="<YOUR_TOKEN>"' \
--form 'wsfunction="gradereport_user_get_grade_items"' \
--form 'moodlewsrestformat="json"' \
--form 'courseid="<YOUR_COURSE_ID>"' \
--form 'userid="<YOUR_USER_ID>"'
© www.soinside.com 2019 - 2024. All rights reserved.