feat(提交列表): 老师也能重新判题;列表能按班级、一次按几道题筛,还带「通过几个测试点」
- 重新判题从只放超管改成老师及以上:前端一直给老师亮着按钮,点了只会「权限不足」 - /submissions、/flowcharts 加 className(user.class_name 精确匹配),题号可以一次填几道 - 列表每行带 caseSummary,口径和详情一致,在库里数完只回两个数 - 新增 GET /classroom/lesson:提交列表「这节课」按钮用,班级和题的取法同课堂看板 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b76a35b5f2
commit
ea480d5e0c
12 files changed
+151
-425
No files matched your search
@@ -189,6 +189,21 @@ export const createSubmissionResponseSchema = z.object({
|
||||
submissionId: z.string(),
|
||||
})
|
||||
|
||||
/**
|
||||
* 通过了几个测试点,给学生看「离 AC 还差多远」。`info` 只给管理员(每个点带
|
||||
* output_md5),所以这里只算出两个数下发,不放开原文。
|
||||
*
|
||||
* 为 null 的情形:比赛提交(ACM 只报对错,多给通过数等于变相放水,和 AI 提示同口径)、
|
||||
* SQL 题(`judge/run.ts` 遇到被杀的测试点会 break,total 偏小)、没有逐点结果
|
||||
* (待判、编译失败)。
|
||||
*/
|
||||
export const caseSummarySchema = z
|
||||
.object({
|
||||
passed: z.number().int(),
|
||||
total: z.number().int(),
|
||||
})
|
||||
.nullable()
|
||||
|
||||
export const submissionDetailSchema = z.object({
|
||||
id: z.string(),
|
||||
createTime: z.string(),
|
||||
@@ -210,20 +225,8 @@ export const submissionDetailSchema = z.object({
|
||||
*/
|
||||
problemDisplayId: z.string(),
|
||||
showLink: z.boolean(),
|
||||
/**
|
||||
* 通过了几个测试点,给学生看「离 AC 还差多远」。`info` 只给管理员(每个点带
|
||||
* output_md5),所以这里只算出两个数下发,不放开原文。
|
||||
*
|
||||
* 为 null 的情形:比赛提交(ACM 只报对错,多给通过数等于变相放水,和 AI 提示同口径)、
|
||||
* SQL 题(`judge/run.ts` 遇到被杀的测试点会 break,total 偏小)、没有逐点结果
|
||||
* (待判、编译失败)。
|
||||
*/
|
||||
caseSummary: z
|
||||
.object({
|
||||
passed: z.number().int(),
|
||||
total: z.number().int(),
|
||||
})
|
||||
.nullable(),
|
||||
/** 通过了几个测试点,口径见 caseSummarySchema */
|
||||
caseSummary: caseSummarySchema,
|
||||
})
|
||||
|
||||
/**
|
||||
@@ -277,6 +280,11 @@ export const submissionListItemSchema = z.object({
|
||||
* 回填的就是这些,其余老提交无从判断入口,一律留空。
|
||||
*/
|
||||
problemSet: z.object({ id: z.number().int(), title: z.string() }).nullable(),
|
||||
/**
|
||||
* 通过了几个测试点,和详情同一个口径(见 caseSummarySchema)。列表上老师一眼要分出
|
||||
* 「差一个点」和「一个都没过」,不必逐条点开。
|
||||
*/
|
||||
caseSummary: caseSummarySchema,
|
||||
})
|
||||
|
||||
export const submissionListSchema = paginatedSchema(submissionListItemSchema)
|
||||
|
||||
Reference in new issue
Block a user