Phase 2 评审修复: P0 min_score+&q=500 (ORM→list 顺序) + P1 场景分页(20/page) + P2 文档同步 + 36 tests

This commit is contained in:
ila
2026-07-06 23:04:55 +08:00
parent cff3c64c19
commit 714d218eb2
6 changed files with 218 additions and 6 deletions
+17
View File
@@ -267,3 +267,20 @@
- 阻塞:无。
- 下一步:T-301 补 SEO 基础(Phase 3)。
## 2026-07-06 Phase 2 评审修复(P0 min_score+500 + P1 场景分页 + P2 文档同步)
- 状态:DONE
- 变更:
- **P0**:`core/models.py` ProjectIndexPage.get_context() 调换 `q` 与 `min_score` 的执行顺序——ORM 筛选(`q`/language/framework/database)先执行,最后做 Python 层 `min_score` 列表过滤,避免 QuerySet→list 后 `.filter()` 崩溃
- **P1**:`core/models.py` ScenarioPage.get_context() 新增 `Paginator(projects, 20)`;`scenario_page.html` 复用分页 UI;新增 3 个分页测试
- **P2**:`docs/current-state.md` 测试数量同步为 31
- 新增测试:`test_combined_filters_return_200`、`test_combined_filters_no_results_returns_empty_state`、`test_first_page_has_20_items`、`test_second_page_has_1_item`、`test_invalid_page_falls_back_to_first`
- 验证:
- `manage.py test core home`:36 tests passed
- `min_score=18&q=Django` 返回 200 ✅
- `min_score=18&page=abc` 返回 200 ✅
- `manage.py check`:0 errors
- `makemigrations --check --dry-run`:No changes
- 阻塞:无。
- 下一步:T-301 补 SEO 基础(Phase 3)。