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

步骤

  1. S1: 后端 API PUT /api/learn/<id>/status
  2. 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: 状态修改后页面刷新显示新状态