Files
WiseGrade/docs/BATCH_SELECTION_2026-10-13.md
T
aerospaceboy ebe33392ca fix: improve import, evidence indexing and material-scoped grading
Preserve document revisions and evidence, harden indexing and export behavior, add explicit material selection and direct-folder import, validate model JSON schemas with safe error messages, and retain student selection while loading scoring data.
2026-10-14 13:52:56 +08:00

2.7 KiB

资料选择与评分批次改进

日期:2026-10-13。

原页面只能选择课程版本与评分规则,创建批次时包含该课程版本下全部项目,列表没有显示学生身份。多份资料共用规则 v1 时,用户无法确定正在评哪一份。导入完成后也缺少查找已导入文件和进入评分页面的入口。

当前行为

  • 创建区域顺序为课程、课程版本、评分规则、选择资料、创建批次。资料按学生项目分组,可选一份资料包或多份,不选择时不能创建。
  • 选择后显示具体文件名、材料类型、所属学生和解析状态。最终报告与三份阶段报告、汇报材料仍按原有类型评价,不把单份最终报告冒充完整五类材料。
  • 创建接口新增可选 project_ids,显式选择必须非空,拒绝重复、不存在和跨课程版本的项目。选定名单写入既有批次快照字段,无需迁移。
  • 未传 project_ids 的旧接口调用保留原有全部项目行为。网页始终显式传入用户选择的名单。
  • 批次列表显示姓名、学号、项目数量、实际课程/规则版本及已处理项数。历史批次范围保持不变,不自动加入后来导入的项目。
  • 评分详情只提供该批次中的学生项目,切换时清除旧结果,取消过期请求的显示,避免把不同资料的结果混在一起。
  • 导入成功后提供“查看已导入资料”和“去评分”。去评分链接带上导入时的课程版本与项目名单,仍由用户选择评分规则并创建批次。
  • 导航中的“学生资料”用于查看已导入的个人材料。

验证与部署

  • 后端批次选择与既有可靠性回归:55 passed,使用项目隔离 SQLite 验证业务状态;不是完整 PostgreSQL 测试套件验收。
  • 浏览器测试:9 passed,覆盖单独选择、课程切换重置、批次范围、具体文件显示、导入后转入评分和既有会话行为。这组测试使用受控接口响应,不产生实际导入或模型费用。
  • TypeScript 与 Vite 构建通过。
  • 本机 Docker 实例 wisegrade-preview 的 API 与网页重新构建并健康启动,数据库、Redis 和 worker 保留。
  • 真实后端浏览器检查通过:规则后同一行显示选择资料;所选模拟资料显示5个PDF文件;旧批次名单保持;单项目批次排除后来导入的学生;切换学生后不再显示之前的结果。没有接口模拟、页面异常或写入请求。
  • 本次没有创建真实新批次、重跑评分、修改教师分数、清理原数据或推送源码。

真实浏览器记录位于工作区隔离测试目录 docker-preview/batch-selection-live.json。页面截图与工具日志保留在同一目录,个人数据不纳入仓库。