Files
2026-09-21 18:56:10 +08:00

183 lines
10 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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="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="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="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>