fix(排名): 老师点「本班」不再随手挑个交题最多的班,改成布置过作业的班、上次选的班,都没有就停在全部
Deploy / deploy (push) Canceled after 0s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-12 23:28:55 +08:00
1 parent e4abbc1645
commit 3ca3b42997
5 files changed
+36 -11

No files matched your search

+1 -1
View File
@@ -66,7 +66,7 @@ function studentCondition(value: string | null) {
/**
* 方块格:一个班的学生 × 这门课的每一课,打开过没有、学完没有(练一练全对)。
*
* 不选班就按排名页同一套规则猜老师在教哪个班(`defaultClassFor`);也能传年级前缀,
* 不选班就猜老师在教哪个班(`defaultClassFor`);也能传年级前缀,
* 但一个年级两三百行方块,页面上主要还是按班看。
*/
adminLearnRoutes.get("/learn-analytics/board", requireTeacher, async (c) => {
+3 -2
View File
@@ -24,6 +24,7 @@ import {
classDetail,
classPk,
defaultClassFor,
lessonClassFor,
loadEntrants,
PK_MAX_CLASSES,
pkPartner,
@@ -75,7 +76,7 @@ function periodStart(period: RankPeriod) {
/**
* 这次请求看的是哪个班 / 哪个年级。学生只能看自己的班和年级;老师用 `className` 选,
* 不给就猜(`defaultClassFor`)。返回 undefined 表示该报「没有班级」。
* 不给就取最近布置过作业的班(`lessonClassFor`)。返回 undefined 表示该报「没有班级」。
*/
async function resolveGroup(
user: AppEnv["Variables"]["user"],
@@ -84,7 +85,7 @@ async function resolveGroup(
): Promise<string | null | undefined> {
if (scope === "all") return null
let className = user?.className || null
if (isTeacherOrAbove(user)) className = requested || (await defaultClassFor(user!.id))
if (isTeacherOrAbove(user)) className = requested || (await lessonClassFor(user!.id))
if (!className) return undefined
return scope === "class" ? className : className.slice(0, 2)
}