diff --git a/college/data/about_pages.xml b/college/data/about_pages.xml
index 4f6e3a1..7eb4d5d 100644
--- a/college/data/about_pages.xml
+++ b/college/data/about_pages.xml
@@ -84,6 +84,155 @@
+ 产品介绍
+ product
+ 30
+ True
+
+
+
+
+
+
+ P
+ python企业实训平台
+
+
从 Python 语法到企业级项目实战
+
面向高校与职业院校的工程化 Python 实训平台,把企业真实开发场景搬进课堂
+
+ 语法基础
+ Web 开发
+ 数据分析
+ 自动化运维
+ 企业项目
+
+
+
+
+
+
+
+
+
平台以 Odoo 18 为底座,围绕 Python 工程化实训重构教学链路:把企业的版本控制、代码评审、持续集成与云端编码环境原样搬进课堂。学员不再孤立地「学语法」,而是以真实项目为主线,在导师带领下走完「需求 → 编码 → 评审 → 部署」的完整闭环,让实训成果直接对接企业岗位能力要求。
+
+
+
+
+
核心功能
+
+
+
+ 📚
+ 阶段化实训课程
+
+
语法基础 → Web 开发 → 数据分析 → 自动化运维,分阶课程搭配视频 / PPT / 案例,循序渐进。
+
+
+
+ ⌨️
+ 在线编码沙箱
+
+
内置云端 Python 运行环境,免配置即可写代码、跑结果,练习与验证实时完成。
+
+
+
+ 🏗️
+ 企业项目库
+
+
汇集电商、数据看板、接口服务等 20+ 真实项目案例,学员按岗位方向挑选项目实战。
+
+
+
+ ✅
+ 作业评审闭环
+
+
学员提交代码 / 结果,导师在线批阅并给反馈,模拟企业 Code Review 流程。
+
+
+
+ 📈
+ 学习进展看板
+
+
按项目 / 章节统计完成度与代码质量,师生各有视角,实训进度一目了然。
+
+
+
+ 🎯
+ 岗位能力画像
+
+
沉淀学员项目经历与技能标签,生成能力画像,直接对标企业招聘需求。
+
+
+
+
+
+
+
实训链路
+
+
+
导师端
+
配置阶段课程 → 派发企业项目 → 批阅代码与结果 → 沉淀项目笔记 → 跟踪班级实训进度
+
+
+
学员端
+
进入项目实战 → 在线编码与运行 → 提交作业等待评审 → 查看能力画像与进阶建议
+
+
+
+
+
+
+
为什么选我们
+
+
+
真项目真环境
+
复刻企业 Git / CI / 云编码流程,实训即上岗预演。
+
+
+
成果可量化
+
代码提交、评审、完成度全程留痕,能力看得见。
+
+
+
岗位对齐
+
项目方向对标 Python 开发 / 数据分析 / 运维岗位。
+
+
+
开箱即用
+
基于 Odoo 18,手机 / 平板 / 电脑多端随时实训。
+
+
+
+
+
+
+ python企业实训平台 · 基于 Odoo 18 构建 · 让每一次练习都更接近真实开发
+
]]>
diff --git a/college/models/about_page.py b/college/models/about_page.py
index 845bfc6..afbe0fa 100644
--- a/college/models/about_page.py
+++ b/college/models/about_page.py
@@ -16,6 +16,7 @@ class YuthonAboutPage(models.Model):
category = fields.Selection([
('system', '系统说明'),
('operation', '操作手册'),
+ ('product', '产品介绍'),
], string='分类', default='system', required=True)
content = fields.Html(string='内容', sanitize=True, translate=True)
sequence = fields.Integer(string='排序', default=10)
diff --git a/college/static/src/img/product_intro.png b/college/static/src/img/product_intro.png
new file mode 100644
index 0000000..3632257
Binary files /dev/null and b/college/static/src/img/product_intro.png differ
diff --git a/college/static/src/scss/college_theme.scss b/college/static/src/scss/college_theme.scss
index 26f95dc..f05bbbf 100644
--- a/college/static/src/scss/college_theme.scss
+++ b/college/static/src/scss/college_theme.scss
@@ -151,3 +151,118 @@
}
}
}
+
+// ============================================================
+// 课程学习:章节列表看板化(网格卡片墙)
+// 把内嵌 kanban 渲染成自适应的卡片网格,去掉默认列/分组样式。
+// ============================================================
+.o_college_chapter_kanban {
+ background: transparent !important;
+ border: none !important;
+
+ // 去掉 kanban 默认分组列包裹,让卡片直接成为网格项
+ .o_kanban_renderer {
+ display: grid !important;
+ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
+ gap: 16px !important;
+ align-items: stretch !important;
+ background: transparent !important;
+ padding: 0 !important;
+ }
+
+ // 单列分组包裹层不参与布局,使其子卡片成为 renderer 的 grid item
+ .o_kanban_group {
+ display: contents !important;
+ }
+
+ .o_kanban_record {
+ width: 100% !important;
+ margin: 0 !important;
+ border: none !important;
+ padding: 0 !important;
+ background: transparent !important;
+ }
+
+ .o_college_chapter_card {
+ height: 100%;
+ display: flex !important;
+ flex-direction: column !important;
+ gap: 8px !important;
+ background-color: $o-view-background-color !important;
+ border: 1px solid rgba($o-main-text-color, 0.08) !important;
+ border-radius: 12px !important;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
+ padding: 16px 18px !important;
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
+
+ &:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1) !important;
+ }
+
+ .o_college_chapter_head {
+ display: flex !important;
+ align-items: center !important;
+ gap: 8px !important;
+
+ .o_college_chapter_title {
+ font-size: 15px;
+ font-weight: 600;
+ color: $o-main-text-color !important;
+ }
+ }
+
+ .o_college_chapter_video {
+ font-size: 13px;
+ color: $o-gray-600 !important;
+ }
+
+ .o_college_chapter_foot {
+ margin-top: auto !important;
+ text-align: right !important;
+ }
+ }
+}
+
+// ============================================================
+// 关于页(产品介绍等):只读 H5 撑满内容区,去掉四周大留白
+// content 字段内容已为全内联 style 的自包含 H5,这里只做容器铺满。
+// ============================================================
+.o_about_full_form {
+ // 去掉 form 默认内边距,让内容贴边
+ padding: 0 !important;
+
+ .o_form_renderer,
+ .o_form_renderer > .o_form_field {
+ padding: 0 !important;
+ margin: 0 !important;
+ }
+}
+
+.o_about_full.o_field_html {
+ // 只读展示时铺满,无编辑器工具栏
+ display: block !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ max-width: 100% !important;
+ background: transparent !important;
+ border: none !important;
+
+ .o_readonly {
+ padding: 0 !important;
+ }
+}
+
+// 系统说明 / 操作手册 仍为普通富文本(保留基础样式)
+.o_about_page {
+ max-width: 900px;
+ margin: 0 auto;
+ font-size: 14px;
+ line-height: 1.8;
+ color: $o-main-text-color;
+
+ h2 { font-size: 22px; margin: 8px 0 16px; }
+ h3 { font-size: 17px; margin: 22px 0 10px; }
+ h4 { font-size: 15px; margin: 16px 0 8px; }
+ p, li { color: $o-main-text-color; }
+}
diff --git a/college/static/src/scss/college_theme_dark.scss b/college/static/src/scss/college_theme_dark.scss
index 6a10f00..231a017 100644
--- a/college/static/src/scss/college_theme_dark.scss
+++ b/college/static/src/scss/college_theme_dark.scss
@@ -189,3 +189,113 @@
}
}
}
+
+// ============================================================
+// 课程学习:章节列表看板化(深色模式网格卡片墙)
+// ============================================================
+.o_college_chapter_kanban {
+ background: transparent !important;
+ border: none !important;
+
+ .o_kanban_renderer {
+ display: grid !important;
+ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
+ gap: 16px !important;
+ align-items: stretch !important;
+ background: transparent !important;
+ padding: 0 !important;
+ }
+
+ .o_kanban_group {
+ display: contents !important;
+ }
+
+ .o_kanban_record {
+ width: 100% !important;
+ margin: 0 !important;
+ border: none !important;
+ padding: 0 !important;
+ background: transparent !important;
+ }
+
+ .o_college_chapter_card {
+ height: 100%;
+ display: flex !important;
+ flex-direction: column !important;
+ gap: 8px !important;
+ background-color: #1e293b !important;
+ border: 1px solid #334155 !important;
+ border-radius: 12px !important;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35) !important;
+ padding: 16px 18px !important;
+ transition: transform 0.15s ease, box-shadow 0.15s ease;
+
+ &:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.45) !important;
+ }
+
+ .o_college_chapter_head {
+ display: flex !important;
+ align-items: center !important;
+ gap: 8px !important;
+
+ .o_college_chapter_title {
+ font-size: 15px;
+ font-weight: 600;
+ color: #f8fafc !important;
+ }
+ }
+
+ .o_college_chapter_video {
+ font-size: 13px;
+ color: #94a3b8 !important;
+ }
+
+ .o_college_chapter_foot {
+ margin-top: auto !important;
+ text-align: right !important;
+ }
+ }
+}
+
+// ============================================================
+// 关于页(产品介绍等):只读 H5 撑满内容区,去掉四周大留白
+// content 字段内容已为全内联 style 的自包含 H5,这里只做容器铺满。
+// ============================================================
+.o_about_full_form {
+ padding: 0 !important;
+
+ .o_form_renderer,
+ .o_form_renderer > .o_form_field {
+ padding: 0 !important;
+ margin: 0 !important;
+ }
+}
+
+.o_about_full.o_field_html {
+ display: block !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ max-width: 100% !important;
+ background: transparent !important;
+ border: none !important;
+
+ .o_readonly {
+ padding: 0 !important;
+ }
+}
+
+// 系统说明 / 操作手册 仍为普通富文本(深色下基础样式)
+.o_about_page {
+ max-width: 900px;
+ margin: 0 auto;
+ font-size: 14px;
+ line-height: 1.8;
+ color: #e2e8f0;
+
+ h2 { font-size: 22px; margin: 8px 0 16px; color: #f8fafc; }
+ h3 { font-size: 17px; margin: 22px 0 10px; color: #f8fafc; }
+ h4 { font-size: 15px; margin: 16px 0 8px; color: #f8fafc; }
+ p, li { color: #cbd5e1; }
+}
diff --git a/college/views/about_page_views.xml b/college/views/about_page_views.xml
index a3cb4c1..fa02122 100644
--- a/college/views/about_page_views.xml
+++ b/college/views/about_page_views.xml
@@ -1,21 +1,14 @@