diff --git a/docs/superpowers/specs/2026-08-01-teacher-owned-student-management-design.md b/docs/superpowers/specs/2026-08-01-teacher-owned-student-management-design.md new file mode 100644 index 0000000..f750a77 --- /dev/null +++ b/docs/superpowers/specs/2026-08-01-teacher-owned-student-management-design.md @@ -0,0 +1,25 @@ +# 教师自有教学班学生管理设计 + +## 背景 + +学校使用教学班管理学生名单,不使用院系、专业、行政班。当前学生管理列表仅以学校过滤,教师会看到不属于自己的学生;页面仍沿用行政班导入模板,且没有实训数据初始化入口。 + +## 行为 + +1. 教师名单模式下,学生列表由当前操作人决定范围:仅返回该教师创建的教学班成员。 +2. 页面班级筛选仅显示当前教师创建的教学班;未选班级时可汇总其全部教学班成员,选中后仅显示该班成员。 +3. 批量导入和单个学生实训数据初始化均要求选择一个自己的教学班;后端继续验证班级归属和成员关系。 +4. 导入使用教学班专用接口,模板只有“学生姓名、学号”。所属教学班由当前筛选的教学班确定;账号来源、创建日期由系统生成,不作为导入字段。 +5. 每个可见学生提供“数据初始化”操作;仅重置其在选中教学班内的实训数据。 +6. 未启用教师名单模式的旧组织结构流程保持不变。 + +## 实现边界 + +- 列表范围、导入和初始化均由后端校验,前端筛选只负责交互。 +- 不新增表结构;继续使用 `TeachingClassStudent` 作为教学班成员关系。 +- 不改变密码初始化、学生账号删除和既有组织结构模式的业务规则。 + +## 验证 + +- 后端覆盖教师列表范围、非本人教学班查询被拒绝、成员初始化范围校验。 +- 前端覆盖列表携带操作人、仅列出自有教学班、选班后才可导入/初始化、两列模板与专用导入接口。