课程searchpanel #48

Merged
Ghost merged 1 commits from qtb into master 2026-09-21 18:23:06 +08:00
Showing only changes of commit 9f909e4833 - Show all commits
-183
View File
@@ -1,185 +1,2 @@
<odoo>
<!-- ===================== 登录账号(演示用,密码均为 123456) ===================== -->
<record id="user_teacher_wang" model="res.users">
<field name="name">王老师</field>
<field name="login">teacher_wang</field>
<field name="password">123456</field>
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('group_teacher')])]"/>
</record>
<record id="user_student_wang" model="res.users">
<field name="name">小王</field>
<field name="login">student_wang</field>
<field name="password">123456</field>
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('group_student')])]"/>
</record>
<!-- ===================== 老师 ===================== -->
<record id="teacher_wang" model="yuthon.school.teacher">
<field name="name">王老师</field>
<field name="user_id" ref="user_teacher_wang"/>
<field name="teacher_no">T2025001</field>
<field name="title">lecturer</field>
<field name="phone">13900000001</field>
</record>
<!-- ===================== 班级 ===================== -->
<record id="class_se_1" model="yuthon.school.class">
<field name="name">软件工程1班</field>
<field name="head_teacher_id" ref="teacher_wang"/>
</record>
<!-- ===================== 学生 ===================== -->
<record id="student_wang" model="yuthon.school.student">
<field name="name">小王</field>
<field name="user_id" ref="user_student_wang"/>
<field name="student_number">2025010100</field>
<field name="gender">male</field>
<field name="class_id" ref="class_se_1"/>
<field name="college">computer</field>
<field name="phone">13800000000</field>
</record>
<record id="student_01" model="yuthon.school.student">
<field name="name">陈小明</field>
<field name="student_number">2025010101</field>
<field name="gender">male</field>
<field name="class_id" ref="class_se_1"/>
<field name="college">computer</field>
<field name="phone">13800000001</field>
</record>
<record id="student_02" model="yuthon.school.student">
<field name="name">李华</field>
<field name="student_number">2025010102</field>
<field name="gender">female</field>
<field name="class_id" ref="class_se_1"/>
<field name="college">software</field>
<field name="phone">13800000002</field>
</record>
<record id="student_03" model="yuthon.school.student">
<field name="name">王芳</field>
<field name="student_number">2025010103</field>
<field name="gender">female</field>
<field name="class_id" ref="class_se_1"/>
<field name="college">computer</field>
<field name="phone">13800000003</field>
</record>
<record id="student_04" model="yuthon.school.student">
<field name="name">张伟</field>
<field name="student_number">2025010104</field>
<field name="gender">male</field>
<field name="class_id" ref="class_se_1"/>
<field name="college">software</field>
<field name="phone">13800000004</field>
</record>
<!-- ===================== 课程(老师:王老师) ===================== -->
<record id="course_odoo_basic" model="yuthon.school.course">
<field name="name">Odoo 18 框架入门</field>
<field name="code">ODOO-101</field>
<field name="teacher_id" ref="user_teacher_wang"/>
<field name="college">computer</field>
<field name="semester">2025_1</field>
<field name="course_type">theory</field>
<field name="hours">32</field>
<field name="start_date">2025-09-01</field>
<field name="end_date">2026-01-15</field>
<field name="introduction"><![CDATA[<p>面向零基础开发者,系统讲解 Odoo 18 的模块结构、模型(Model)、视图(View)与控制器(Controller),带你跑通第一个自定义模块。</p>]]></field>
<field name="objectives"><![CDATA[<ul><li>理解 Odoo 的 MVC 架构</li><li>能独立创建并安装一个模块</li><li>掌握模型字段与关系(M2O / O2M / M2M)</li></ul>]]></field>
<field name="syllabus"><![CDATA[<ol><li>开发环境搭建</li><li>模块清单与目录结构</li><li>模型定义与字段类型</li><li>视图(list / form / kanban)</li><li>菜单与权限(ACL)</li></ol>]]></field>
<field name="features"><![CDATA[<p>配套视频讲解 + 可运行示例代码,支持线下实训环境动手练习。</p>]]></field>
<field name="student_ids" eval="[(6, 0, [ref('student_wang'), ref('student_01'), ref('student_02'), ref('student_03')])]"/>
<field name="state">published</field>
</record>
<record id="course_odoo_views" model="yuthon.school.course">
<field name="name">Odoo 视图与前端进阶</field>
<field name="code">ODOO-201</field>
<field name="teacher_id" ref="user_teacher_wang"/>
<field name="college">software</field>
<field name="semester">2025_2</field>
<field name="course_type">practice</field>
<field name="hours">64</field>
<field name="start_date">2026-02-20</field>
<field name="end_date">2026-06-30</field>
<field name="introduction"><![CDATA[<p>深入 Odoo 的视图体系:列表、表单、看板、搜索、图形,以及 CSS 与 JS 资产定制。</p>]]></field>
<field name="objectives"><![CDATA[<ul><li>掌握 list/form/kanban 视图语法</li><li>能用 inherit 扩展已有视图</li><li>理解静态资源(assets)加载机制</li></ul>]]></field>
<field name="syllabus"><![CDATA[<ol><li>视图类型总览</li><li>视图继承与 xpath</li><li>看板与搜索视图</li><li>前端资产与主题定制</li></ol>]]></field>
<field name="features"><![CDATA[<p>视频 + PPT 双形态,含实操演练。</p>]]></field>
<field name="student_ids" eval="[(6, 0, [ref('student_02'), ref('student_04')])]"/>
<field name="state">draft</field>
</record>
<record id="course_odoo_ppt_demo" model="yuthon.school.course">
<field name="name">Odoo 报表开发(PPT 讲义)</field>
<field name="code">ODOO-301</field>
<field name="teacher_id" ref="user_teacher_wang"/>
<field name="college">computer</field>
<field name="semester">2026_1</field>
<field name="course_type">theory</field>
<field name="hours">48</field>
<field name="start_date">2026-09-01</field>
<field name="end_date">2027-01-10</field>
<field name="introduction"><![CDATA[<p>以 PPT 讲义为主,讲解 QWeb 报表、PDF 打印与数据导出。</p>]]></field>
<field name="objectives"><![CDATA[<ul><li>掌握 QWeb 报表模板</li><li>能定制 PDF 打印</li></ul>]]></field>
<field name="syllabus"><![CDATA[<ol><li>报表模型与 action</li><li>QWeb 模板语法</li><li>打印与导出</li></ol>]]></field>
<field name="features"><![CDATA[<p>适合线下培训,讲师直接分发 PPT。</p>]]></field>
<field name="state">draft</field>
</record>
<!-- ===================== 课程章节(老师端维护,学生端作为学习目录,同源联动) ===================== -->
<record id="chapter_odoo_basic_1" model="yuthon.school.course.chapter">
<field name="course_id" ref="course_odoo_basic"/>
<field name="name">1. 开发环境搭建</field>
<field name="sequence">10</field>
<field name="description"><![CDATA[<p>安装 PostgreSQL 与 Python 虚拟环境,克隆 Odoo 18 源码并成功启动 <code>odoo-bin</code>。</p>]]></field>
<field name="completed_student_ids" eval="[(6, 0, [ref('student_wang'), ref('student_01')])]"/>
</record>
<record id="chapter_odoo_basic_2" model="yuthon.school.course.chapter">
<field name="course_id" ref="course_odoo_basic"/>
<field name="name">2. 模块清单与目录结构</field>
<field name="sequence">20</field>
<field name="description"><![CDATA[<p>认识 <code>__manifest__.py</code>,掌握 models / views / data 目录约定与加载顺序。</p>]]></field>
</record>
<!-- ===================== 学习进展(progress_rate / status 现由章节完成情况自动计算,不再手动写入) ===================== -->
<record id="progress_01" model="yuthon.school.progress">
<field name="course_id" ref="course_odoo_basic"/>
<field name="student_id" ref="student_wang"/>
<field name="last_study_date">2025-10-01</field>
<field name="score">85</field>
</record>
<record id="progress_02" model="yuthon.school.progress">
<field name="course_id" ref="course_odoo_basic"/>
<field name="student_id" ref="student_01"/>
<field name="score">92</field>
</record>
<record id="progress_03" model="yuthon.school.progress">
<field name="course_id" ref="course_odoo_basic"/>
<field name="student_id" ref="student_02"/>
</record>
<!-- ===================== 作业习题 ===================== -->
<record id="assignment_01" model="yuthon.school.assignment">
<field name="name">搭建第一个 Odoo 模块</field>
<field name="course_id" ref="course_odoo_basic"/>
<field name="teacher_id" ref="user_teacher_wang"/>
<field name="description"><![CDATA[<p>参考课程大纲第 3 节,创建一个名为 <code>my_first</code> 的模块,包含至少一个模型和菜单。</p>]]></field>
<field name="due_date">2025-10-15</field>
<field name="state">published</field>
</record>
<record id="submission_01" model="yuthon.school.assignment.submission">
<field name="name">陈小明 - 搭建第一个 Odoo 模块</field>
<field name="assignment_id" ref="assignment_01"/>
<field name="student_id" ref="student_01"/>
<field name="content"><![CDATA[<p>已完成模型定义与菜单,模块可正常安装。</p>]]></field>
<field name="score">90</field>
<field name="feedback">完成度很好,注意命名规范。</field>
<field name="state">graded</field>
</record>
<record id="submission_02" model="yuthon.school.assignment.submission">
<field name="name">李华 - 搭建第一个 Odoo 模块</field>
<field name="assignment_id" ref="assignment_01"/>
<field name="student_id" ref="student_02"/>
<field name="content"><![CDATA[<p>已提交模块压缩包。</p>]]></field>
<field name="state">submitted</field>
</record>
</odoo>