Hermes
5a0b2a83ec
feat(portal): T12-C 前台删除工单 + 保留期外可申请交互
落地 T12-C: 让用户在 portal 删除工单页/POST 中都能看到该订单
当前所处保留期阶段(pending/within/outside),并按阶段给出明确的
next_step 文案。
- DeletionRequestCreate.scope 锁定到白名单
(order_only | order_and_attachments | full_account); 非法值 → 422
- _resolve_retention_status(order, settings) 复用
RETENTION_GUARDED_STATUSES + settings.retention_days
- POST 端 next_step 三种文案:
outside: 已超过 180 天保留期,可申请删除...
within: 订单仍在 180 天保留期内...
pending: 提交成功后将由人工核验后处理
- GET 端在表单上方插入'保留期状态'提示卡
- admin/tests/test_order_info_form.py 6 个新/增强测试 +
_expire_retention_window helper
dev-verify: 1179 passed (was 1175, +4 net new),
coverage overall=85.05% / core=100%, ruff + mypy clean
2026-06-20 00:26:59 +08:00
..
2026-06-18 11:01:15 +08:00
2026-06-11 16:06:34 +08:00
2026-06-11 22:04:45 +08:00
2026-06-18 10:21:38 +08:00
2026-06-18 11:01:15 +08:00
2026-06-17 18:05:16 +08:00
2026-06-20 00:26:59 +08:00
2026-06-18 10:27:54 +08:00
2026-06-18 11:01:15 +08:00
2026-06-14 10:12:03 +08:00
2026-06-18 14:14:20 +08:00
2026-06-13 14:49:58 +08:00
2026-06-11 20:03:25 +08:00
2026-06-18 13:39:02 +08:00
2026-06-14 05:26:27 +08:00
2026-06-13 14:49:58 +08:00
2026-06-18 10:21:38 +08:00
2026-06-12 09:06:52 +08:00
2026-06-15 15:14:27 +08:00
2026-06-18 10:21:38 +08:00
2026-06-20 00:26:59 +08:00
2026-06-14 19:38:30 +08:00
2026-06-18 15:20:16 +08:00
2026-06-18 15:20:16 +08:00
2026-06-15 15:14:27 +08:00
2026-06-16 18:14:41 +08:00
2026-06-11 16:14:46 +08:00
2026-06-18 10:27:54 +08:00
2026-06-16 15:02:01 +08:00
2026-06-16 15:02:01 +08:00
2026-06-18 11:01:15 +08:00
2026-06-12 09:18:52 +08:00
2026-06-14 10:44:04 +08:00
2026-06-18 15:36:24 +08:00
2026-06-18 10:21:38 +08:00
2026-06-18 11:01:15 +08:00
2026-06-17 18:05:16 +08:00
2026-06-15 15:14:27 +08:00
2026-06-15 11:39:31 +08:00
2026-06-14 10:44:04 +08:00
2026-06-11 21:43:09 +08:00
2026-06-15 19:48:03 +08:00
2026-06-18 10:46:40 +08:00
2026-06-11 20:03:25 +08:00
2026-06-18 10:21:38 +08:00
2026-06-14 19:38:30 +08:00
2026-06-14 10:12:03 +08:00
2026-06-13 14:49:58 +08:00
2026-06-14 23:12:18 +08:00
2026-06-18 16:00:57 +08:00
2026-06-18 10:46:40 +08:00
2026-06-11 22:04:45 +08:00
2026-06-11 16:06:34 +08:00
2026-06-11 22:04:45 +08:00
2026-06-11 22:04:45 +08:00
2026-06-11 16:06:34 +08:00