24 Commits
Author SHA1 Message Date
Zhengen 2b60c0d5e0 feat: add 18 independent industry demo templates 2026-11-03 22:33:03 +08:00
Zhengen 1d08bdb6a5 feat: add isolated Docker local testing and HTTP smoke validation 2026-11-03 19:21:58 +08:00
Zhengen e28364e061 Merge remote-tracking branch 'origin/master' 2026-10-27 21:37:26 +08:00
Zhengen d33174192d feat: add company site setup wizard and software service template 2026-10-27 21:36:22 +08:00
Zhengen bd150f810f docs: add product brochure and positioning notes 2026-10-19 22:40:44 +08:00
Zhengen eab27b3454 修复 /contact 404:新增 ContactPage 模型 + 线索表单区块
- 新增 apps.core.ContactPage(SEOablePage),复用 COMMON_BLOCKS StreamField,
  挂载于 HomePage 下;同步补充 HomePage.subpage_types 使后台可创建该子页面。
- 新增迁移 apps/core/migrations/0003_contactpage.py。
- 新增幂等管理命令 seed_contact_page:创建"联系我们"线索表单定义
  (姓名/公司/电话/邮箱/需求描述)+ 创建/更新 slug=contact 的页面,
  接入 bootstrap_deployment 部署引导流程。
- apps/home/tests.py 补充 ContactPage 相关回归测试(subpage_types 集合、
  管理后台可创建性参数化用例),全仓库 pytest 65 -> 68 全部通过。
- 设计文档 §2.16 进度清单同步更新。
2026-09-23 10:24:38 +08:00
Zhengen fc51641700 Windows部署: 后端端口统一改为8080 2026-09-11 16:34:30 +08:00
Zhengen 1686794ad7 部署配置:新增 Windows Server 裸机部署流程
- requirements/production-windows.txt:Windows 专用生产依赖,用 waitress 替代
  不支持 Windows 的 gunicorn
- deploy/windows/serve-backend.ps1:waitress WSGI 启动脚本
- deploy/windows/install-nssm-services.ps1:用 NSSM 将前后端注册为 Windows 服务
- deploy/windows/nginx-wagtailcms.conf:nginx for Windows 反向代理模板(TCP 端口,
  不用 unix socket)
- documents/Windows服务器部署指南.md:完整部署步骤文档,并说明与 Linux 裸机
  部署(systemd/gunicorn/unix socket/Redis)的差异点
2026-09-11 09:39:30 +08:00
Zhengen 147107501b 补充测试覆盖率 + 新增部署引导命令 bootstrap_deployment
- 新增 apps/blog、apps/solutions、apps/home、apps/api 测试文件,覆盖标签/排序/
  草稿过滤、HomePage.subpage_types 回归测试、page_preview 预览接口
- apps/core/tests.py 新增健康检查端点、发布 webhook 信号、bootstrap_deployment
  命令的测试用例,pytest 用例数从 40 增至 65,全部通过
- 修复 apps/api/urls.py 中 PagePreviewAPIViewSet.get_object() 未捕获
  DoesNotExist 导致 500 而非文档承诺 404 的 bug
- 新增 apps/core/management/commands/bootstrap_deployment.py:部署时按环境变量
  幂等创建首个超级管理员账号并联动初始化 RBAC 权限组,.env.example 补充对应
  环境变量说明
- 新增 OpenSearch + 中文分词本地 PoC 脚手架(docker-compose.opensearch.yml +
  docker/opensearch/Dockerfile),调研结论详见设计文档 §2.10
- 更新设计文档 §2.16 Phase 1 进度清单
2026-08-11 14:47:10 +08:00
Zhengen f37571f395 feat(rbac): 落地 Wagtail Group + GroupPagePermission/GroupCollectionPermission/Snippet 权限体系
新增 setup_rbac_groups 幂等管理命令,按设计方案 §2.8 矩阵创建 5 个 Group(站点管理员/编辑/审核员/作者/查看者),配置页面/图片文档/Snippet/用户管理权限;Author 仅编辑自己页面利用 Wagtail 内置 OwnershipPermissionPolicy 实现,无需自定义 hook;新增 7 个单元测试,pytest 33→40 全部通过。
2026-08-07 17:07:39 +08:00
Zhengen 3944e11330 feat(core): 补全剩余 6 个 StreamField Block (ProductCard/Pricing/Timeline/Team/TechStack/Video)
- apps/core/blocks.py 新增 ProductCardBlock/PricingBlock/TimelineBlock/TeamBlock/TechStackBlock/VideoBlock,COMMON_BLOCKS 扩充至 14 个内容 Block
- TeamBlock 新增 TeamMemberChooserBlock(SnippetChooserBlock),复用 FormBlock 已有的 get_api_representation 展开模式,展开 TeamMember 完整字段(含 serialize_image 复用)
- 为 blog/cases/home/products/solutions 五个 Page 模型生成并应用 alter field body 迁移(StreamField block 定义变更会写入迁移 state)
- apps/core/tests.py 新增 TeamMemberChooserBlock 空值/展开单元测试,pytest 33 个用例全部通过
- 设计文档 §2.6/§2.16 同步更新为已实现
2026-08-07 15:58:44 +08:00
Zhengen 8d440b9e4a feat: 实现预览模式(wagtail-headless-preview + Next.js Draft Mode) 2026-08-07 15:34:46 +08:00
Zhengen 16e4f97e74 国内可访问服务替换排查:新增蜜罐反垃圾字段 + CDN 加速域名配置 2026-08-07 14:49:00 +08:00
Zhengen d6503bb46f feat: 实现PIPL数据主体删除权支持功能
- 新增 LeadDeletionRequest 模型,支持邮箱验证的删除申请/确认流程
- POST /api/v1/custom/leads/deletion-requests/ 发起申请(通用响应避免探测邮箱是否存在)
- POST /api/v1/custom/leads/deletion-requests/confirm/ 确认删除(24小时token有效期)
- 按邮箱在 Lead.data 中匹配并删除对应记录,跨SQLite/Postgres使用Python级匹配
- LeadDeletionRequest 通过 Django Admin 只读展示供合规审计
- 新增 FRONTEND_BASE_URL 设置用于拼接邮件确认链接
- apps/forms/tests.py 新增6个测试用例(含节流缓存隔离修复),全仓库30个用例通过
- 更新设计文档 §2.15/§2.16 勾选项
2026-08-07 13:29:20 +08:00
Zhengen 8fbbd2e6b0 feat: 新增Snippet全局内容模型(TeamMember/Testimonial/Partner/NavigationMenu/SiteSettings)
- 新增 apps.core.TeamMember/Testimonial/Partner:简单 register_snippet,含 order 排序字段
- 新增 apps.core.NavigationMenu+NavigationMenuItem:ClusterableModel+Orderable+InlinePanel,
  支持内部页面或外部链接二选一
- 新增 apps.core.SiteSettings:接入 wagtail.contrib.settings + BaseSiteSetting,
  存放公司信息/ICP备案号/社交账号等全局配置
- 新增只读 API:/api/v1/custom/core/{team,testimonials,partners,navigation,site-settings}/
- 补充 apps/core/tests.py 单元测试,pytest 用例由 11 个增至 24 个,全部通过
- 更新设计文档 §2.16 Phase 1 进度清单
2026-08-07 13:06:22 +08:00
Zhengen b04de9f5c1 docs: 修正Phase1进度清单中过期的复选框状态 2026-08-07 11:05:41 +08:00
Zhengen ec2e629db2 fix: 生产环境补充SECURE_PROXY_SSL_HEADER,完善白名单配置文档说明 2026-08-07 09:42:29 +08:00
Zhengen 4e4cdf31ac docs: Cookie同意条控件已完成,更新合规清单 2026-08-07 09:38:05 +08:00
Zhengen b05d2b7f52 feat: 新增隐私政策内容页(apps.core.SimpleContentPage)及seed命令,更新设计文档 2026-08-06 17:17:07 +08:00
Zhengen 9e60cabd5e docs: 页脚已替换为实际ICP备案号,更新合规清单状态 2026-08-06 16:54:34 +08:00
Zhengen e2a0f62ef4 docs: ICP备案已完成,更新合规清单状态 2026-08-06 16:37:40 +08:00
Zhengen e6fd8f62f4 docs: update design doc progress (solutions app + pytest suite completed) 2026-08-06 16:24:59 +08:00
Zhengen 052fff1a40 feat: add solutions app, fix HomePage subpage_types, add pytest test suite
- apps/solutions: SolutionIndexPage/SolutionPage (mirrors products/cases)
- apps/home: HomePage.subpage_types now includes products/solutions/cases index pages (previously only blog, blocking admin page creation)
- pytest.ini + conftest.py (root_page/home_page fixtures)
- unit tests for core (SEOablePage, FormBlock API repr), products, cases, forms (lead submit API)
2026-08-06 16:23:49 +08:00
Zhengen 7f51a31150 chore: initial commit of Wagtail backend scaffold 2026-08-06 15:56:14 +08:00