docs: update dev status — round 16, P10.7 propose edit
This commit is contained in:
@@ -490,6 +490,76 @@
|
||||
- 或 P9.6 前端创建 task 限制(禁止通用 create 创建 feature story / release maintenance task)
|
||||
- 或 P5.2 补全 pending→open 依赖检查(通用依赖检查 helper)
|
||||
|
||||
### 2026-03-17 13:00 UTC(第 15 轮:P9.6 Task 创建限制 — 前后端完整落地)
|
||||
|
||||
本轮做了什么:
|
||||
- 实现 P9.6:禁止通过通用 create task 创建 `story/feature` 和 `maintenance/release` 类型的 task
|
||||
- **后端 tasks.py**:
|
||||
- 新增 `RESTRICTED_TYPE_SUBTYPES` 集合,定义受限类型组合
|
||||
- `_validate_task_type_subtype()` 增加 `allow_restricted` 参数,默认阻止受限组合
|
||||
- 通用 `POST /tasks` 端点自动拦截,返回 400 + 明确错误信息
|
||||
- propose accept 内部创建走 ORM 直接写入,不受此限制
|
||||
- **后端 milestones.py**:
|
||||
- `POST /{milestone_id}/tasks` 端点增加 P9.6 守卫:直接拒绝 `story/feature` 创建
|
||||
- `maintenance/release` 不受限(milestone endpoint 是其合法创建入口)
|
||||
- **前端 CreateTaskModal + CreateTaskPage**:
|
||||
- Story subtypes 移除 `feature`(仅保留 improvement、refactor)
|
||||
- Maintenance subtypes 移除 `release`(仅保留 deploy)
|
||||
- 两个创建表单同步更新
|
||||
|
||||
改了哪些关键文件:
|
||||
- `HarborForge.Backend/app/api/routers/tasks.py` — RESTRICTED_TYPE_SUBTYPES + 校验增强
|
||||
- `HarborForge.Backend/app/api/routers/milestones.py` — story/feature 创建拦截
|
||||
- `HarborForge.Frontend/src/components/CreateTaskModal.tsx` — 移除受限 subtypes
|
||||
- `HarborForge.Frontend/src/pages/CreateTaskPage.tsx` — 移除受限 subtypes
|
||||
|
||||
验证结果:
|
||||
- Python AST 语法检查 tasks.py / milestones.py 均通过
|
||||
- `npx tsc --noEmit` 零错误通过
|
||||
- 已 commit:backend `c18b8f3`,frontend `2897172`,parent `6441ea5`
|
||||
|
||||
当前阻塞/风险:
|
||||
- `maintenance/release` task 的受控创建入口尚未明确实现(当前通过 milestone endpoint 可创建,但无专门的 release setup 流程)
|
||||
- P2 权限骨架仍未落地
|
||||
- batch transition 接口尚未同步 P5.3/P5.4 校验
|
||||
- 无本地 MySQL/运行环境做集成验证
|
||||
|
||||
下一轮最建议继续做什么:
|
||||
- P10.7 前端 propose 编辑限制(open 时显示编辑入口,accepted/rejected 禁止编辑主体)
|
||||
- 或 P2.1 后端权限枚举注册(freeze/start/close milestone + close/reopen task + accept/reject/reopen propose)
|
||||
- 或 P5.2 补全 pending→open 通用依赖检查 helper
|
||||
|
||||
### 2026-03-17 14:00 UTC(第 16 轮:P10.7 前端 Propose 编辑限制)
|
||||
|
||||
本轮做了什么:
|
||||
- 实现 P10.7:Propose 详情页编辑功能,仅 `open` 状态可编辑 title 和 description
|
||||
- **ProposeDetailPage 新增**:
|
||||
- ✏️ Edit 按钮:仅 `open` 状态显示(与 Accept/Reject 同行)
|
||||
- 编辑弹窗:title 输入框 + description 多行文本框
|
||||
- 调用 `PATCH /projects/{pid}/proposes/{id}` 提交修改
|
||||
- title 不能为空时 Save 按钮禁用
|
||||
- 保存成功后自动刷新详情
|
||||
- loading 状态和错误提示完整
|
||||
- `accepted` / `rejected` 状态下不显示 Edit 按钮(按钮渲染在 `open` 条件分支内),实现主体不可编辑
|
||||
|
||||
改了哪些关键文件:
|
||||
- `HarborForge.Frontend/src/pages/ProposeDetailPage.tsx` — +75 行(编辑状态 + 弹窗 + handler)
|
||||
|
||||
验证结果:
|
||||
- `npx tsc --noEmit` 零错误通过
|
||||
- 已 commit:frontend `208538f`
|
||||
|
||||
当前阻塞/风险:
|
||||
- 编辑权限仅在后端校验(creator / admin / 项目管理员),前端未根据当前用户身份隐藏按钮
|
||||
- P2 权限骨架仍未落地(所有动作接口使用通用 role check 占位)
|
||||
- batch transition 接口尚未同步 P5.3/P5.4 校验
|
||||
- 无本地 MySQL/运行环境做集成验证
|
||||
|
||||
下一轮最建议继续做什么:
|
||||
- P2.1 后端权限枚举注册(freeze/start/close milestone + close/reopen task + accept/reject/reopen propose),这是剩余功能中最基础的依赖项
|
||||
- 或 P4.1 通用依赖检查 helper 抽取(milestone start 和 task pending→open 复用)
|
||||
- 或 P5.4 补全后端 undergoing→completed 强制 comment 校验(前端已有弹窗,后端尚缺校验)
|
||||
|
||||
---
|
||||
|
||||
## 1. 背景
|
||||
|
||||
Reference in New Issue
Block a user