learn-status-edit.md
1.2 KB
PLAN: learn 详情页增加状态修改功能
目标
在 /learn/<id> 详情页增加状态下拉列表,用户点击后修改状态并保存到数据库。
涉及文件
app.py— 新增PUT /api/learn/<id>/status路由templates/learn_detail.html— 前端状态选择器 UI
数据流
用户选择新状态 → PUT /api/learn/<id>/status {status: "xxx"}
→ local_db.learn_update_status(id, status)
→ 返回更新后数据 → 前端刷新显示
合法状态值
pending_review, pending_learn, applied, approved, failed, rejected
步骤
- S1: 后端 API
PUT /api/learn/<id>/status - S2: 前端 learn_detail.html 增加状态选择器
验收标准(Sprint Contract)
- [ ] TC1: PUT /api/learn//status 接收合法状态值 → 返回 200 + 更新后的 status
- [ ] TC2: PUT /api/learn//status 接收非法状态值 → 返回 400 + error
- [ ] TC3: PUT /api/learn//status 对不存在的 id → 返回 404
- [ ] TC4: learn_detail.html 页面显示状态下拉列表,选择后触发 PUT 请求
- [ ] TC5: 前端 curl 检查无 JS 转义错误、无 Jinja2 模板字面量引号错误
- [ ] TC6: 状态修改后页面刷新显示新状态