feat(ai): mark cover reset history in generate table

This commit is contained in:
chengma
2026-07-11 12:06:17 +08:00
parent b71fa60b9e
commit 5c01377173
5 changed files with 280 additions and 4 deletions
+19 -2
View File
@@ -3,7 +3,7 @@ id: T-603
title: ②AI生成封面重置计数与商品ID警示色
phase: 7
deps: [T-511, T-534, T-554, T-566, T-577]
status: TODO
status: DONE
created: 2026-07-11
---
@@ -132,4 +132,21 @@ git diff --check
## 执行记录
(完成后记录 schema 字段、记录口径、商品ID列颜色和验证结果。)
- 2026-07-11:已完成。
- 代码:
- `app/db.py`:`tasks` 新增 `cover_reset_count INTEGER NOT NULL DEFAULT 0` 与 `cover_reset_at TEXT`,补 `init_db()` 兼容迁移、`Task` dataclass 字段和旧库迁移路径。
- `db.reset_generated()`:仅在 `reset_cover=True` 且重置前 `new_cover_path` 非空时累加 `cover_reset_count` 并写最近重置时间;只重置标题、空封面重置不计数。`update_generated_cover()` 与 `set_generated()` 不清除该历史。
- `app/gui/models.py`:② `GenerateTaskTableModel` 商品ID列在 `cover_reset_count > 0` 时使用 `COLOR_WARNING`,tooltip 显示“该商品封面已重置 X 次,可能有多张候选图,双击可查看封面画廊”;标题/图片状态列原有颜色不变。
- 测试:
- `tests/test_db.py`:覆盖新字段初始化、旧库迁移、封面重置计数、只重置标题不计数、空封面重置不计数、选择候选图/重新生成后不清除计数。
- `tests/test_gui.py`:覆盖②商品ID列 warning 色、tooltip 和状态列颜色不回归。
- 验证:
- 当前主工作区全量 unittest 会被既有未提交默认提示词文件影响(`papa1` 与 `默认.txt` 差异),该问题不属于 T-603。
- 在临时干净 worktree 中仅应用本任务 diff 后验证通过:
- `python -m ruff check app tests main.py`
- `py -3.10 -m compileall app main.py`
- `py -3.10 -m unittest discover -s tests`(338 tests)
- `git diff --check`
- 主工作区定向验证通过:
- `py -3.10 -m unittest tests.test_db`
- `py -3.10 -m unittest tests.test_gui.GuiTests.test_generate_table_marks_cover_reset_history_on_item_id_column tests.test_gui.GuiTests.test_generate_table_splits_title_and_cover_statuses_and_widths`