feat: 完善学生生命周期管理与权限范围并发布 1.4.2
This commit is contained in:
1 parent
6347d1e5aa
commit
24e8dd902b
92 files changed
+6801
-2255
No files matched your search
+25
-4
@@ -19,8 +19,8 @@ description: 名单、班级会话、任课关系与年度升级。
|
||||
|
||||
Student 存学号、姓名、班级、性别、家长电话和状态,没有密码或角色字段。
|
||||
学号为必填唯一标识,格式为 1–32 位字母、数字或 . _ -;不会自动生成登录名。
|
||||
管理员或本班班主任在具备名单管理权限后管理学生,教师也可按授权范围只读名单。
|
||||
名单表格导入仍要求管理员及相应导入权限;学号查重在 Student 表完成,不当成 User 用户名。
|
||||
具有名单管理键的管理员、本班班主任或全校名单范围的授权员工管理学生;只读账号按名单读取键和范围查看历史。
|
||||
名单表格导入要求 import:students、roster:manage 和对应班级范围;学号查重在 Student 表完成,不当成 User 用户名。
|
||||
调班保留历史内容原归属;转出独立记账并从现行业务名单过滤,学号不可复用。
|
||||
|
||||
## 教师与科目
|
||||
@@ -39,5 +39,26 @@ Student 存学号、姓名、班级、性别、家长电话和状态,没有密
|
||||
范围不代替科目写权限,详见[角色与权限](../dev/permissions.md)。
|
||||
学期周数受全校可配置上限约束,默认上限 30、允许 1–60,见[课表](schedules.md)。
|
||||
学年升级按计划时间运行,执行前保存快照,以年份幂等;启动发现漏跑需管理员预览补跑。
|
||||
高三归档、高一/高二升一级,新高一不复制任课关系。归档页查看届别历史与转出记录,
|
||||
不再通过手动创建归档来代替年度升级。撤回转出等操作仍受归档与管理员业务检查约束。
|
||||
默认高中轨道按高一、高二、高三排列,毕业学段归档,其余升一级;也可配置其他轨道。新班不复制任课关系。归档页查看届别历史与转出记录,
|
||||
不再通过手动创建归档来代替年度升级。撤回转出由 roster:manage 控制,原班归档后可指定其他在读班。
|
||||
|
||||
## 学生生命周期
|
||||
|
||||
资料编辑仅修改学号、姓名、性别与家长电话,不接受状态或班级字段;旧客户端发送这两项会收到 400 和专用接口提示。
|
||||
默认名单只显示未归档的 active;状态筛选可查看 inactive、transferred、graduated,“包含归档”另行控制归档标记。
|
||||
|
||||
调班、转出、转入、复学、撤回与移出班级均在一个事务内修改学生并写历史,包含批次、学年、原新班级与年级、来源去向学校、操作人和备注。
|
||||
调班需同时覆盖源班与目标班;跨年级须管理员勾选允许跨年级并填写备注。目标班必须在读。
|
||||
转出保留原班及业务历史,只接受在读或停用学生。转入支持新建学号或选择转出/停用学生,毕业或归档学生不能通过名单入口复活。
|
||||
撤回转出可选择另一个在读班,原历史保留。默认删除动作改为停用;硬删除另须管理员确认且无成绩、作业、已读或历史。
|
||||
|
||||
## 升级预览与执行
|
||||
|
||||
“学年升级”页面独立要求 promotion:manage,全校范围。先保存轨道、有序年级、起始班数、执行时间、开学日和周次重置策略,再预览逐班影响。
|
||||
预览包含在读/停用/转出人数、新班码、周次删除行数、阻断和警告、计划哈希。未知年级、缺失届别、重复班号、已有届别档案或新班码冲突会阻断执行。
|
||||
执行需确认学年和预览哈希;业务或配置变化后必须重新预览。未来学年禁止执行,过去学年仅 ADMIN 明确补跑。
|
||||
|
||||
毕业班所有学生挂届别:在读转毕业,转出和停用保留状态;非毕业班只升到下一学段并清本班开学日覆盖。
|
||||
新班只有骨架,开学日取计划值(未配置时为执行学年 9 月 1 日)。保留周次时,旧逐周区间会继续覆盖新学年,页面会警告。
|
||||
同年执行幂等,执行记录显示操作人、快照路径、SHA256、明细与错误。快照失败不升级,失败事务回滚后可修正重试。
|
||||
撤销归档只清标记并将毕业生恢复在读,转出/停用不变;不回滚年级、不删除新班、不恢复已清空周次,整学年恢复需管理员手工使用快照。
|
||||
Reference in new issue
Block a user