跳转至

评估访问控制

教师可以使用评估访问页面来配置可用性、截止日期、学分、时间限制、密码、PrairieTest 访问权限和学生特定的覆盖。

访问控制检查

ZJUI-Learn 在两个级别检查访问权限:

  1. 课程实例必须可供学生使用。学生必须注册课程实例,并且课程实例必须通过其 发布控件 发布或以其他方式可见。
  2. 评估必须授予学生访问权限。从评估访问页面配置评估访问:默认适用于所有学生,覆盖适用于选定的学生标签或特定学生。

这两项检查都是必需的。发布课程实例可以让已注册的学生查看该课程实例,但它本身并不授予对其中每个评估的访问权限。授予评估访问权限仅适用于也可以访问课程实例的学生。

!!! note “旧版 allowAccess

仍使用 `allowAccess` 的现有评估可以继续这样做。新评估应使用 **Access** 页面和此处记录的 `accessControl` 格式。有关旧格式的详细信息,请参阅[旧版评估访问控制](accessControlLegacy.md) 文档。

打开访问页面

从评估中,打开 访问 选项卡。该页面有两个部分:

  • 默认值:适用于所有学生的设置。
  • 覆盖:仅适用于选定学生标签或特定学生的设置。

显示默认值和覆盖的访问控制页面 /// 标题 访问页面总结了活动配置并列出了适用于评估的每个覆盖。 ///

摘要卡显示当前访问状态、发布/到期时间线、截止日期后的信用以及可见性设置。单击卡上的“编辑”以打开详细信息面板,进行更改,然后单击“保存”以保留更改。

配置默认值

单击“默认”部分中的“编辑”。默认值是每个不匹配更具体覆盖的学生的基线设置。

默认情况下,学生无法访问评估。通过 日期控制 版本或活动的 PrairieTest 预留链接考试来授予访问权限。

访问控制的默认编辑器面板 /// 标题 编辑默认值会打开一个侧面板,其中包含日期控制、PrairieTest、发布前和完成后设置。 ///

日期控制

使用日期控制来配置学生何时可以打开评估、何时接受提交以及一段时间内收到的学分提交。

日期控制最初被禁用。首次启用时,默认为已发布,没有截止日期。

设置 释放 选项:

  • 已发布:学生可以立即访问评估,除非其他访问设置阻止。
  • 计划发布:学生无法在发布日期之前打开评估。如果启用发布前列出,他们可以在发布前看到评估标题。

设置 截止日期 选项:

  • 无截止日期:学生可以在发布后无限期地提交。
  • 到期日:学生将在该日期之前收到到期日学分。

默认情况下,到期日相当于 100% 的信用。如果您需要不同的准时信用值,请单击到期信用值旁边的更改。这种情况并不常见——大多数课程将按时率保持在 100%,并使用提前截止日期来奖励提前提交的学生,或者使用 奖励积分 让学生通过做额外的工作来超过 100%。

信用

可用学分是学生在特定访问窗口期间可以获得的最大百分比分数。当可用信用低于 100% 时,百分比分数上限为该值。当可用学分大于100%时,学生达到满分后即可获得奖励学分百分比;如果使用maxBonusPoints,则maxPoints之上的点也会按可用信用百分比进行缩放。

例如,在 80% 可用学分的 10 分评估中,获得 9/10 分的学生将获得 80% 的分数,因为访问窗口限制了百分比分数。可用学分为 110%,获得 10/10 分的学生可获得 110%,而获得 8/10 分的学生仍可获得 80%。

早和晚的截止日期

对到期日之前的奖励学分窗口使用提前截止日期,对到期日之后的减少学分窗口使用晚截止日期

对于每个截止日期,选择:

  • 日期和时间;
  • 学生在截止日期之前获得的整数学分百分比。

截止日期形成一个按时间顺序排列的信用时间表。例如,在较早的截止日期之前,评估的价值可能为 110%,在截止日期之前的评估价值为 100%,在较晚的截止日期之前的评估价值为 80%,然后在之后的评估价值为 0% 或练习学分。

Tip

默认 100% 到期日信用,提前截止日期必须提供超过 100% 的信用延迟截止日期必须提供低于 100%。更一般而言,早期学分必须超过到期日学分,并且到期日之后的所有学分必须低于 100%。

截止日期后

配置所有截止日期过后发生的情况。当没有最迟截止日期时,该设置标记为“在截止日期之后”,在有一个截止日期之后,在有多个截止日期时标记为“在最迟截止日期之后**”。

  • 不允许提交:学生只能查看评估可见性设置允许的内容,但无法提交。
  • 允许练习提交:学生可以提交反馈,但获得 0% 学分。
  • 允许提交部分学分:学生可以提交您选择的学分百分比。

此设置仅控制提交权限。如果在最终截止日期后不允许提交,则完成后可见性设置将确定学生可以查看的内容。如果允许在截止日期后提交,完成后仅在学生的评估实例结束或其时限到期后适用。

时间限制

启用时间限制,为每个学生开始评估后提供固定的工作时间。

定时尝试可以跨越较早的截止日期、截止日期和仍然允许提交的较晚的截止日期,因此学生获得的学分可能会随着尝试期间这些截止日期的过去而发生变化。如果评估有截止日期、延迟截止日期和 60 分钟时间限制,则在截止日期前 1 分钟开始的学生将完成完整的 60 分钟:第一分钟获得准时学分,其余分钟获得延迟截止时间学分。

然而,定时尝试不能继续超过提交完全停止的点。例如,如果截止日期之后设置为不允许提交且没有最后期限,则在截止日期之前不久开始的学生仅收到截止日期之前的剩余时间,而不是完整配置的时间限制。

密码

启用 密码 需要密码才能开始或继续进行评估。这通常用于监考考试。密码门激活,可提交工作;一旦不再允许提交(例如,在最后期限后不允许提交模式下),学生无需重新输入密码即可查看其作业。

Info

仅当学生通过日期控制获得访问权限时,时间限制和密码才适用。它们不在活动的 PrairieTest 预留内强制执行 - PrairieTest 强制执行其自己的预定时间限制和访问控制,包括任何 PrairieTest 会话密码。

草原测试

启用 PrairieTest 让活动的 PrairieTest 预留授予对评估的访问权限。从 PrairieTest 考试设置添加 PrairieTest 考试 UUID。

当学生处于考试模式时,ZJUI-Learn 在导航栏中显示考试徽章,这意味着学生已签入 PrairieTest 预订。当匹配的预订处于活动状态并且学生处于考试模式时,PrairieTest 控制预定的访问窗口和时间限制。在考试模式之外,顶级日期控制、发布前行为和完成后可见性通常适用。

对于每项 PrairieTest 考试,配置学生在完成后看到的内容当预订仍然有效时:

  • 显示问题和分数:学生可以查看问题并查看他们的分数。
  • 仅显示分数:学生可以看到他们的分数,但看不到问题。
  • 隐藏问题和分数:学生既看不到问题,也看不到分数。

这些每次考试设置不支持显示日期。使用顶级完成后设置可在活动预订结束后查看可见性。

您还可以启用只读模式。在只读预订期间,学生可以查看以前提交的内容,但无法提交新答案或开始评估(如果尚未开始)。无论每次考试的可见性设置如何,问题和分数始终会在只读保留期间显示。

Prairie测试优先级

当 PrairieTest 考试与评估关联时,ZJUI-Learn 按以下顺序解析访问权限:

  • 在主动匹配预订期间(考试模式),PrairieTest 授予访问权限。 强制执行日期控制计划、时间限制和密码 - PrairieTest 强制执行自己的计划、时间限制和访问控制。对于非只读预订,每次考试完成后可见性设置控制学生完成后看到的内容,直到预订结束。
  • 在没有活动匹配预约的考试模式下,日期控制不用作后备访问路径。 ZJUI-Learn 拒绝访问,从学生评估列表中忽略评估,并隐藏已完成作业的可见性,例如成绩册分数。
  • 在考试模式之外,当存在日期控制版本时,顶级日期控制规则通常适用。一旦预订结束,顶级完成后可见性也会接管已完成的实例。

要仅限制对 PrairieTest 的提交访问,请禁用日期控制。如果学生也无法在预订之外查看问题或分数,请隐藏顶级问题可见性分数可见性

发布前

当学生在打开评估标题之前应看到评估标题时,启用发布前列出。对于日期控制,这是发布日期之前的时间段。仅适用于 PrairieTest(无日期控制),这可以控制学生是否可以在考试模式之外看到评估标题,即使他们无法打开它。在考试模式下,仅列出或访问具有有效匹配预留的评估。如果日期控制和 PrairieTest 均未启用,则会列出评估,但学生无法启动它。

当评估应完全隐藏直至发布时,请禁用它。

完成后

使用问题可见性分数可见性来决定学生在评估完成后可以看到的内容。

一旦不再允许提交,评估实例将被视为已完成:在最终截止日期之后、定时评估结束时、考试评估在不活动后自动关闭时或教师关闭评估时。如果允许在截止日期后提交,完成后仅在学生的评估实例结束或其时限到期后适用。

问题可见性选项:

  • 永久隐藏问题:问题完成后永远不可见。
  • 完成后显示问题:学生可以在完成评估后立即查看问题和答案。
  • 日期后显示问题:问题在完成后隐藏,并在所选日期显示。
  • 显示日期之间的问题:问题仅在所选日期之间可见。

分数可见性选项:

  • 永久隐藏分数:完成后分数永远不可见。
  • 完成后显示分数:学生可以立即看到他们的分数。
  • 在日期后显示分数:分数在完成后隐藏,并在所选日期显示。

对于 PrairieTest 考试,顶级完成后设置适用于有效预订之外。使用每次考试 PrairieTest 可见性设置来控制学生在预订仍然有效时看到的内容。

仅当首先隐藏相应项目时,可见日期才有效。隐藏分数还需要隐藏问题,因为 ZJUI-Learn 不支持在隐藏结果分数的同时显示问题提交。

添加覆盖

覆盖所选学生的自定义访问权限,同时继承他们未从默认值中明确更改的任何内容。

单击“替代”部分中的“添加替代”。

选择覆盖适用于谁:

  • 特定学生:选择已注册的学生。这是一次性住宿和化妆窗的常见选择。
  • 按标签划分的学生:选择一个或多个学生标签,例如“A 部分”或“加时”。覆盖适用于具有_任意_所选标签(并非全部)的学生。

学生标签 在课程实例学生页面上管理。它们是处理重复住宿、部分或特定群体截止日期的推荐方法。

选择目标后,单击要自定义的每个字段旁边的 覆盖。您未覆盖的字段将继续继承默认值。

常见的覆盖用途包括:

  • 延长学生标签的截止日期;
  • 为有住宿标签的学生增加额外时间;
  • 为一名学生提供密码或不同的访问窗口;
  • 针对一组以不同方式隐藏或显示已完成的考试内容。

编辑现有覆盖

现有覆盖在学生标签覆盖特定学生覆盖下显示为卡片。单击“编辑”以更改目标或覆盖字段。

具有覆盖发布日期的学生特定覆盖编辑器 /// 标题 每个覆盖都从继承默认值的每个字段开始;单击字段旁边的覆盖,仅为目标学生设置不同的值。 ///

当覆盖字段处于活动状态时,详细信息面板会显示该字段的 删除覆盖。删除覆盖并不会清除默认值;它使规则再次继承该字段。

覆盖优先级

特定于学生的覆盖优先于学生标签覆盖。在每个部分中,列表中较低的覆盖优先于列表中较高的覆盖;当优先级很重要时,使用拖动手柄对覆盖重新排序。

例如,假设一名学生同时拥有“A 部分”和“延长时间”标签:

  • A 部分覆盖设置了较晚的截止日期(2 月 20 日)。
  • 延长时间覆盖设置了更长的时间限制(90 分钟)和更早的发布日期(1 月 14 日)。

学生将继承默认值之上的两个覆盖:截止日期 2 月 20 日,时间限制 90 分钟,发布日期 1 月 14 日。如果两个覆盖设置相同的字段(例如,都设置截止日期),则列表中较低的覆盖获胜。

保存更改

该页面在屏幕底部跟踪未保存的更改。单击“保存”应用您的访问控制更改。

单击 取消 放弃未保存的 UI 更改。

单击默认卡上的 清除 以删除默认的访问控制配置。单击覆盖卡上的 删除 以删除整个覆盖。

从传统访问控制迁移

旧版访问控制使用 allowAccess 规则。现代访问控制使用 accessControl 规则。有关旧格式的详细信息,请参阅旧版访问控制文档

可以通过两种方式从旧版 allowAccess 进行迁移:

  • 在评估的 访问 选项卡上,单击 迁移到现代格式。 ZJUI-Learn 在您确认之前显示已迁移的更改和任何警告。
  • 复制课程实例时,ZJUI-Learn 会迁移兼容的评估级别规则并在您确认副本之前报告任何警告。

Note

遗留系统中基于 UID 的规则在现代访问控制中没有直接等效的 JSON。迁移后,使用访问页面配置学生标签或特定注册学生的覆盖。

有关 JSON 级别的前后示例,请参阅高级 JSON 参考中的旧版迁移示例

常见场景

简单的家庭作业,有截止日期

学生可以在 1 月 15 日至 2 月 15 日期间开始并提交作业,获得 100% 学分。 2月15日之后,不再允许提交。 完成后设置适用;默认情况下,学生可以看到他们的分数,但看不到问题。

在用户界面中:

  1. 编辑默认值
  2. 启用日期控制
  3. 发布 设置为 计划发布 并输入 Jan 15。
  4. 截止日期 设置为 截止日期 并输入 2 月 15 日。
  5. 将到期信用额保留为默认 100%。
  6. 截止日期之后设置为不允许提交

???信息“JSON”

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": "2025-02-15T23:59:59" }
      }
    }
  ]
}
```

始终开放的实践评估

学生获得满分后可以无限期地参加实践评估。

在用户界面中:

  1. 编辑默认值
  2. 启用日期控制
  3. 发布 设置为 已发布(或 计划发布 并指定发布日期)。
  4. 截止日期 设置为 无截止日期

???信息“JSON”

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": null }
      }
    }
  ]
}
```

With `due.date: null`, `due.credit` (default 100%) applies indefinitely after release.

提前完成作业有奖励,迟到有惩罚

期间 信用
1 月 15 日之前 未开放
1 月 15 日至 2 月 1 日 110%
2月1日至2月15日 100%
2月15日至2月22日 80%
2 月 22 日至 3 月 1 日 50%
3 月 1 日之后 0%,允许提交反馈

3 月 1 日之后,提交内容将无限期开​​放以接受 0% 积分的反馈。 完成后设置仅在学生的评估实例关闭或其时间限制到期后适用。

在用户界面中:

  1. 编辑默认值
  2. 启用日期控制并将发布日期设置为 1 月 15 日。
  3. 在 2 月 1 日添加 提前截止日期,并获得 110% 的积分。
  4. 截止日期 设置为 2 月 15 日,并将积分保留为 100%。
  5. 添加 最晚截止日期 2 月 22 日(80% 信用)和 3 月 1 日(50% 信用)。
  6. 在较晚的截止日期之后设置为允许练习提交

???信息“JSON”

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": "2025-02-15T23:59:59" },
        "earlyDeadlines": [{ "date": "2025-02-01T23:59:59", "credit": 110 }],
        "lateDeadlines": [
          { "date": "2025-02-22T23:59:59", "credit": 80 },
          { "date": "2025-03-01T23:59:59", "credit": 50 }
        ],
        "afterLastDeadline": {
          "allowSubmissions": true,
          "credit": 0
        }
      }
    }
  ]
}
```

带密码的定时考试

学生在两小时的考试时间内有 90 分钟的时间限制。需要密码才能启动。考试窗口结束后,提交将停止。考试完成后,问题和分数将被隐藏,分数将于 3 月 12 日公布。

在用户界面中:

  1. 编辑默认值
  2. 启用日期控制
  3. 将发布日期设置为 3 月 10 日上午 9:00,并将截止日期设置为 3 月 10 日上午 11:00。
  4. 启用时间限制并输入 90 分钟。
  5. 启用密码并输入密码。
  6. 在“完成后”下,将“问题可见性”设置为“永久隐藏问题”。
  7. 分数可见性 设置为 在日期之后显示分数 并输入 3 月 12 日。

???信息“JSON”

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-03-10T09:00:00" },
        "due": { "date": "2025-03-10T11:00:00" },
        "durationMinutes": 90,
        "password": "exam2025"
      },
      "afterComplete": {
        "questions": { "hidden": true },
        "score": { "hidden": true, "visibleFromDate": "2025-03-12T00:00:01" }
      }
    }
  ]
}
```

草原测试考试

学生通过有效的 PrairieTest 预订来参加评估;时间限制和日程安排由 PrairieTest 管理。

在用户界面中:

  1. 编辑默认值
  2. 在“集成”下启用“PrairieTest”。
  3. 输入 PrairieTest 考试 UUID。
  4. 对于完成后,选择学生完成后可以看到的内容,同时他们的预订仍然有效。
  5. 使用顶级完成后设置来了解学生在预订结束后可以看到的内容。
  6. 不要配置普通的日期控制访问窗口,除非学生也应该能够访问 PrairieTest 之外的评估。

???信息“JSON”

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "integrations": {
        "prairieTest": {
          "exams": [
            {
              "examUuid": "5719ebfe-ad20-42b1-b0dc-c47f0f714871"
            }
          ]
        }
      }
    }
  ]
}
```

延长学生标签的截止日期

带有“延长时间”标签的学生可以获得较晚的截止日期和更多的时间。所有其他设置都继承默认值。

在用户界面中:

  1. 在课程实例学生页面上创建或确认学生标签,例如“延长时间”。
  2. 在评估访问页面上,单击添加覆盖
  3. 选择学生(按标签)并选择“延长时间”。
  4. 单击“截止日期”旁边的“覆盖”并设置较晚的截止日期。
  5. 单击“时间限制”旁边的“覆盖”并输入较长的持续时间。
  6. 继承所有其他领域。

???信息“JSON”

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": "2025-02-15T23:59:59" },
        "durationMinutes": 60
      }
    },
    {
      "uuid": "22222222-2222-4222-8222-222222222222",
      "labels": ["Extended time"],
      "dateControl": {
        "due": { "date": "2025-02-22T23:59:59" },
        "durationMinutes": 90
      }
    }
  ]
}
```

特定学生的扩展访问权限

使用针对学生的一次性调整或化妆窗口的特定覆盖。

在用户界面中:

  1. 单击“添加覆盖”。
  2. 选择特定学生
  3. 点击“选择学生”,选择已注册的学生。
  4. 仅单击应不同的字段旁边的“覆盖”,例如“发布”、“截止日期”或“时间限制”。
  5. 保存更改。

局限性

现代访问控制将信用模型视为从发布日期到截止日期到提交停止点的单个连续提交时间表。它不能代表信用可用、然后不可用、然后再次可用的非连续提交范围。

例如,从 1 月 15 日到 2 月 15 日接受 100% 学分提交、停止接受提交,然后从 3 月 1 日到 3 月 15 日重新开放 100% 学分提交的旧设置不能表示为一个现代学分时间表。

具有不连续信用范围的评估在迁移过程中被标记为不兼容。您可以清除这些规则并手动重新配置访问权限,或保留旧格式。

限制

现代访问控制限制了异常大的配置,以便访问设置保持可审查并且不接受无限制的输入。大多数评估应远低于这些限制;使用学生标签来重复住宿、部分或群组,而不是单独选择大量学生。

设置 限制
学生标签覆盖 每次评估 100 次覆盖
特定于学生的覆盖 每次评估 100 次覆盖
学生在一项学生特定的覆盖中 100 名学生
一个学生标签覆盖中的学生标签 100 个标签
早和晚的截止日期 每条规则有 10 个提前截止日期和 10 个延迟截止日期
链接 PrairieTest 考试 每次评估 10 次考试
时间限制 525,600 分钟(365 天)
密码 128 个字符

员工访问

无论访问控制规则如何,具有预览者或以上课程角色或学生数据查看者或以上课程实例角色的课程工作人员始终拥有对所有评估的完全访问权限。他们看到 100% 的功劳带有“(员工优先)”标志。

高级 JSON 配置

大多数教师应该使用访问页面。当您需要编写访问控制更改脚本、查看差异或以编程方式生成评估时,JSON 格式非常有用。

accessControl 字段是 infoAssessment.json 中的数组:

infoAssessment.json
{
  "accessControl": [
    {
      "beforeRelease": { "listed": true },
      "dateControl": {
        "release": { "date": "2026-04-10T00:00:01" },
        "due": { "date": "2026-05-01T23:59:59" },
        "afterLastDeadline": { "allowSubmissions": true, "credit": 0 }
      },
      "afterComplete": { "questions": { "hidden": false } }
    },
    {
      "uuid": "22222222-2222-4222-8222-222222222222",
      "labels": ["Section A"],
      "dateControl": {
        "due": { "date": "2026-05-28T20:15:00" }
      }
    },
    {
      "uuid": "33333333-3333-4333-8333-333333333333",
      "dateControl": {
        "durationMinutes": 120
      }
    }
  ]
}

如果省略 accessControl 或设置为 [],则学生无权访问。在非空数组中,第一个元素是默认规则,并且不得具有 uuid。当默认值不授予访问权限但随后进行覆盖时,请将 {} 保留为第一个元素;如果没有它,第一个覆盖将占据默认位置并且验证失败。

后面的每个元素都是覆盖,并且必须具有 uuid。使用 labels 目标学生标签覆盖;没有 labels 的跟踪覆盖会存储学生特定的规则主体,而所选学生则保留在 ZJUI-Learn 中而不是课程内容中。使用 labels: [] 进行有意不针对任何标签的学生标签覆盖。

完整的 JSON 骨架

infoAssessment.json
{
  "accessControl": [
    {
      "beforeRelease": { "listed": true },
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": "2025-02-15T23:59:59", "credit": 100 },
        "earlyDeadlines": [{ "date": "2025-02-01T23:59:59", "credit": 110 }],
        "lateDeadlines": [{ "date": "2025-02-22T23:59:59", "credit": 80 }],
        "afterLastDeadline": {
          "allowSubmissions": true,
          "credit": 0
        },
        "durationMinutes": 60,
        "password": "mysecret"
      },
      "integrations": {
        "prairieTest": {
          "exams": [
            {
              "examUuid": "5719ebfe-ad20-42b1-b0dc-c47f0f714871",
              "readOnly": false,
              "afterComplete": {
                "questions": { "hidden": true },
                "score": { "hidden": true }
              }
            }
          ]
        }
      },
      "afterComplete": {
        "questions": {
          "hidden": true,
          "visibleFromDate": "2025-03-01T00:00:01",
          "visibleUntilDate": "2025-06-01T00:00:01"
        },
        "score": {
          "hidden": true,
          "visibleFromDate": "2025-03-01T00:00:01"
        }
      }
    },
    {
      "uuid": "22222222-2222-4222-8222-222222222222",
      "labels": ["Extended time"],
      "dateControl": {
        "due": { "date": "2025-02-22T23:59:59" },
        "durationMinutes": 90
      }
    },
    {
      "uuid": "33333333-3333-4333-8333-333333333333",
      "dateControl": {
        "release": { "date": "2025-02-20T00:00:01" },
        "due": { "date": "2025-02-28T23:59:59" }
      }
    }
  ]
}

dateControl

领域 类型 描述
release 对象 具有 date(ISO 日期时间)的对象。在此日期之前,评估不对学生开放。
due 对象 具有 date(ISO 日期时间,或 null 表示无截止日期)和可选整数 credit(0-200,默认 100)的对象。
earlyDeadlines 数组 {date, credit} 对象的数组。提供奖金积分的截止日期之前。
lateDeadlines 数组 {date, credit} 对象的数组。提供减少信用的到期日之后的截止日期。
afterLastDeadline 对象 控制在所有截止日期过后是否允许提交,以及他们获得多少学分。省略默认规则以禁止提交;省略要继承的覆盖。
durationMinutes 整数 时间限制以分钟为单位。
password 字符串 开始评估需要密码。

due.credit 默认为 100。截止日期积分可以使用 0 到 200 之间的任何整数百分比,但提前截止日期、截止日期、延迟截止日期和 afterLastDeadline.credit 的解析序列必须随着时间的推移严格减少。当到期信用低于 100% 时,不允许提前截止日期。逾期截止日期和 afterLastDeadline.credit 必须低于 100%。

due.datenull时,到期信用在释放后无限期适用。

afterLastDeadline

领域 类型 默认 描述
allowSubmissions 布尔 false 学生是否仍可以在所有截止日期后提交答案。
credit 整数 - allowSubmissionstrue时必填;最后期限后的信用百分比,从 0 到 99。

如果 allowSubmissionstrue,则需要 credit,并且必须低于 100% 且低于前一个截止日期的学分。使用 "credit": 0 进行练习提交。

如果默认规则中省略afterLastDeadline或设置为{ "allowSubmissions": false },则学生无法在最终截止日期后提交。他们仍然可以查看 afterComplete 设置可见的任何内容。在覆盖时,省略 afterLastDeadline 以从默认规则继承,或设置 { "allowSubmissions": false } 以显式禁用提交。

如果 allowSubmissionstrue,则 afterComplete 可见性设置仅在学生的评估实例关闭或其时间限制到期后应用。

beforeRelease

领域 类型 默认 描述
listed 布尔 false 学生是否可以在发布前看到评估标题。他们仍然无法打开评估。

beforeRelease 只能在默认规则上配置。

afterComplete

默认情况下,问题是隐藏的,完成后会显示分数。

领域 类型 默认 描述
questions.hidden 布尔 true 完成后是否隐藏问题。
questions.visibleFromDate 字符串 完成后公布问题的日期。
questions.visibleUntilDate 字符串 日期显示问题后再次隐藏问题。
score.hidden 布尔 false 完成后是否隐藏分数。
score.visibleFromDate 字符串 完成后公布分数的日期。

可见性字段遵循切换模式。例如,如果 questions.hiddentrue,则问题在完成后隐藏。在 questions.visibleFromDate,它们变得可见。在questions.visibleUntilDate,它们再次被隐藏。

Prairie测试 JSON

领域 类型 描述
integrations.prairieTest.exams 数组 检查对象数组。
integrations.prairieTest.exams[].examUuid 字符串 相关 PrairieTest 考试的 UUID。
integrations.prairieTest.exams[].readOnly 布尔 考试是否对学生只读。
integrations.prairieTest.exams[].afterComplete.questions.hidden 布尔 如果是 true,则学生完成后且预订仍处于活动状态时,问题将被隐藏。
integrations.prairieTest.exams[].afterComplete.score.hidden 布尔 如果是 true,则学生完成后且预订仍处于活动状态时,分数将被隐藏。

readOnly: true 不能与隐藏问题或分数的考试级别 afterComplete 设置结合使用。此外,afterComplete.score.hidden: true 需要 afterComplete.questions.hidden: true。考试级afterComplete仅支持以上三种UI模式;它不支持visibleFromDatevisibleUntilDate

JSON 重写继承

JSON 覆盖存储它们更改的字段;省略的字段通过 UI 使用的相同优先级顺序继承:

  1. 从默认规则开始。
  2. 按照 accessControl 数组中出现的顺序应用与 labels 匹配的覆盖。
  3. 应用匹配的学生特定覆盖,其中有 uuid 而没有 labels

稍后匹配的学生标签覆盖会替换之前匹配的学生标签覆盖中的字段。特定于学生的覆盖优先于学生标签覆盖。学生特定的规则主体可能会出现在 JSON 中,但所选学生映射仍存储在 ZJUI-Learn 中,并且不会在 infoAssessment.json 中列出。

领域 默认覆盖合并 覆盖以覆盖级联
dateControl.* 子字段 覆盖替换各个子字段;省略子字段继承 稍后覆盖替换;省略了之前保留的字段
afterComplete.questions 设置时作为整个对象替换 作为一个整体对象进行替换;否则继承
afterComplete.score 设置时作为整个对象替换 作为一个整体对象进行替换;否则继承
beforeRelease 无法覆盖 不适用
integrations.prairieTest.* 无法覆盖 不适用

有几个重要的细节:

  • due 是一种原子设置。覆盖到期日也会覆盖到期日信用选择——它们不能独立级联。
  • earlyDeadlineslateDeadlines 分别作为整个数组进行替换。在覆盖中设置为 [] 会清除该覆盖学生继承的截止日期。
  • 当从覆盖中省略时,afterLastDeadline 被继承。设置 { "allowSubmissions": false } 以显式禁用该覆盖的截止日期后提交。
  • 覆盖中的 durationMinutes: nullpassword: null 清除继承的时间限制或密码。省略该字段完全保留继承的值。
  • afterComplete.questionsafterComplete.score 彼此独立继承,但每个都作为整个对象进行替换:设置不带日期的 afterComplete.questions 的覆盖不会保留默认的 visibleFromDate/visibleUntilDate
  • beforeRelease.listed 和 PrairieTest 集成 (integrations.prairieTest) 仅限默认。覆盖不能启用、禁用或更改它们。

旧版迁移示例

单一截止日期

===“旧版 allowAccess

```json title="infoAssessment.json"
{
  "allowAccess": [
    {
      "startDate": "2025-01-15T00:00:01",
      "endDate": "2025-02-15T23:59:59",
      "credit": 100
    }
  ]
}
```

===“现代accessControl

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": "2025-02-15T23:59:59" }
      }
    }
  ]
}
```

信贷下降

===“旧版 allowAccess

```json title="infoAssessment.json"
{
  "allowAccess": [
    {
      "startDate": "2025-01-15T00:00:01",
      "endDate": "2025-02-01T23:59:59",
      "credit": 110
    },
    {
      "startDate": "2025-01-15T00:00:01",
      "endDate": "2025-02-15T23:59:59",
      "credit": 100
    },
    {
      "startDate": "2025-01-15T00:00:01",
      "endDate": "2025-02-22T23:59:59",
      "credit": 80
    }
  ]
}
```

===“现代accessControl

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-01-15T00:00:01" },
        "due": { "date": "2025-02-15T23:59:59" },
        "earlyDeadlines": [{ "date": "2025-02-01T23:59:59", "credit": 110 }],
        "lateDeadlines": [{ "date": "2025-02-22T23:59:59", "credit": 80 }]
      }
    }
  ]
}
```

定时考试

===“旧版 allowAccess

```json title="infoAssessment.json"
{
  "allowAccess": [
    {
      "startDate": "2025-03-10T09:00:00",
      "endDate": "2025-03-10T11:00:00",
      "timeLimitMin": 90,
      "credit": 100
    }
  ]
}
```

===“现代accessControl

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-03-10T09:00:00" },
        "due": { "date": "2025-03-10T11:00:00" },
        "durationMinutes": 90
      }
    }
  ]
}
```

密码门控考试

===“旧版 allowAccess

```json title="infoAssessment.json"
{
  "allowAccess": [
    {
      "startDate": "2025-03-10T09:00:00",
      "endDate": "2025-03-10T11:00:00",
      "password": "mysecret",
      "credit": 100
    }
  ]
}
```

===“现代accessControl

```json title="infoAssessment.json"
{
  "accessControl": [
    {
      "dateControl": {
        "release": { "date": "2025-03-10T09:00:00" },
        "due": { "date": "2025-03-10T11:00:00" },
        "password": "mysecret"
      }
    }
  ]
}
```