feat: add public homepage and downloads
This commit is contained in:
+29
@@ -1371,3 +1371,32 @@
|
||||
- `py -3.12 manage.py test apps.users.tests apps.billing.tests.BillingAdminTests apps.ai.tests.AiModelAdminTests apps.ai.tests.AiConfigAuditAdminTests --keepdb --noinput --verbosity 2`:通过,15 tests OK。
|
||||
- 测试期仅保留 allauth 在 MySQL 条件唯一约束上的既有 `models.W036` 警告;本项目邮箱唯一性由 `user.email` 承担。
|
||||
- 下一步:按任务看板进入 T-606 公开首页 + 客户端下载入口;生产侧另需补微信真实回调到账闭环与图片生成真实耗时验证。
|
||||
|
||||
## 2026-07-06 T-606 公开首页 + 客户端下载入口
|
||||
|
||||
- 状态:DONE。
|
||||
- 代码变更:
|
||||
- `apps/portal/models.py` / `apps/portal/migrations/0001_initial.py`:新增 `DownloadRelease`,字段包含 `platform`、`version`、`file`、`external_url`、`sha256`、`is_current`、`release_notes` 与时间戳;表名 `download_release`;`external_url` 优先于 `file.url`;保存时在事务内把同平台其他 current 置为 false,避免使用 MySQL 不支持的条件唯一约束。
|
||||
- `apps/portal/admin.py`:注册客户端下载版本 admin,支持上传本地安装包或填写外部链接,列表展示平台、版本、当前状态、下载来源和 SHA256 摘要。
|
||||
- `apps/portal/views.py` / `urls.py`:`/` 从重定向 `/dashboard` 改为 `HomeView` 公开首页;首页读取 Windows 当前发布版本。
|
||||
- `apps/portal/templates/portal/home.html`:按 v1「生成台」方向落地首页,包含 Hero、四步上手、标题/主图能力卡、点数计费 band、客户端下载区和控制台/API 入口;无 current release 时显示「暂未发布」。
|
||||
- `apps/portal/static/portal/brand.css` / `base.html`:抽共享品牌 token,首页与现有 dashboard / 记录 / 充值 / API Key / 可用模型页面共用同一套颜色、字体、按钮和面板样式;保留现有导航按钮 HTML,避免破坏 active 状态断言。
|
||||
- `apps/portal/tests.py`:新增 `/` 匿名 200、不跳登录、下载当前版本展示、无当前版本提示、登录用户显示「进入控制台」、每平台只保留一个 current release 等测试。
|
||||
- 文档变更:
|
||||
- `docs/06-tasks.md`:T-606 标为 DONE。
|
||||
- `docs/routes.md`:新增 `/` 公开首页和 `DownloadRelease` admin 职责。
|
||||
- `docs/04-architecture.md` / `docs/api.md`:同步 `DownloadRelease` schema、首页/下载入口行为和生产媒体文件由 Nginx 直接服务口径。
|
||||
- `docs/current-state.md`、`docs/00-ai-start-here.md`、`docs/project-brief.md`、`README.md`:同步 Phase 6 当前状态,移除“下一步 T-606”旧口径。
|
||||
- 验证:
|
||||
- `.\init.ps1`:开工前通过(Python 3.12.3,依赖已满足,`manage.py check` 0 issues,打印启动命令)。
|
||||
- `py -3.12 manage.py makemigrations portal`:生成 `apps/portal/migrations/0001_initial.py`。
|
||||
- `py -3.12 -m py_compile apps\portal\models.py apps\portal\admin.py apps\portal\views.py apps\portal\urls.py apps\portal\tests.py`:通过。
|
||||
- `py -3.12 manage.py check`:通过,0 issues。
|
||||
- `py -3.12 manage.py makemigrations --check --dry-run`:通过,No changes detected。
|
||||
- `py -3.12 manage.py migrate portal`:通过,`portal.0001_initial` 已应用到当前数据库;仅保留 allauth 既有 `models.W036` 警告。
|
||||
- `py -3.12 manage.py shell -c "... Client().get('/') ..."`:通过,返回 `STATUS=200`,首页标识 `cmhub AI 电商生成台` 与下载区标识均存在。
|
||||
- `py -3.12 manage.py findstatic portal/brand.css portal/vendor/bootstrap/bootstrap.min.css portal/vendor/qrcode/qrcode.js --verbosity 1`:通过,均找到本地 static 文件。
|
||||
- `py -3.12 manage.py test apps.portal.tests.PortalAccountFlowTests.test_homepage_is_public_and_shows_anonymous_onboarding_without_release apps.portal.tests.PortalAccountFlowTests.test_homepage_shows_current_download_release apps.portal.tests.PortalAccountFlowTests.test_homepage_shows_dashboard_entry_for_authenticated_user apps.portal.tests.PortalAccountFlowTests.test_download_release_only_keeps_one_current_per_platform apps.portal.tests.PortalAccountFlowTests.test_authenticated_nav_highlights_current_page_only --noinput --verbosity 2`:重建测试库后通过,5 tests OK;测试期仅保留 allauth 在 MySQL 条件唯一约束上的既有 `models.W036` 警告。
|
||||
- `.\init.ps1`:收尾验证通过(Python 3.12.3,依赖已满足,`manage.py check` 0 issues,打印启动命令)。
|
||||
- `py -3.12 manage.py test apps.portal.tests.PortalAccountFlowTests --keepdb --noinput --verbosity 2`:已尝试,因远程 MySQL `43.128.3.240` 在测试库迁移阶段连接超时(2003 / WinError 10060)中断,不是断言失败;数据库恢复后需补跑 portal 整组。
|
||||
- 下一步:看板当前无新的编号任务;建议优先确认真实支付回调到账闭环、上传/发布 Windows 客户端安装包,或补真实图片生成耗时验证并拆成新任务。
|
||||
|
||||
Reference in New Issue
Block a user