shcool/yuthon_school/data/demo.xml
2026-07-28 18:50:48 +08:00

308 lines
13 KiB
XML
Raw 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.

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
Demo 演示数据
============
安装模块时勾选「加载演示数据」即可自动创建以下种子数据:
- 学习分类树4 个分类)
- 1 所学校(求知中学)
- 3 位老师
- 2 个班级(入门班 / 进阶班)
- 10 个学生(每班 5 人)
- 1 本教材5 个章节)
- 2 门选修课(演示 Many2many
- 若干学习进度记录
教学知识点XML 数据加载、noupdate 标签、外键 ref 引用、
Many2many eval 写法 [(6, 0, [ids])]
-->
<!-- ============ 学习分类树 ============ -->
<record id="demo_category_root" model="yuthon.school.category">
<field name="name">Odoo 18 开发</field>
<field name="level">beginner</field>
</record>
<record id="demo_category_basic" model="yuthon.school.category">
<field name="name">基础入门</field>
<field name="parent_id" ref="demo_category_root"/>
<field name="level">beginner</field>
</record>
<record id="demo_category_model" model="yuthon.school.category">
<field name="name">模型开发</field>
<field name="parent_id" ref="demo_category_root"/>
<field name="level">intermediate</field>
</record>
<record id="demo_category_view" model="yuthon.school.category">
<field name="name">视图开发</field>
<field name="parent_id" ref="demo_category_root"/>
<field name="level">intermediate</field>
</record>
<!-- ============ 学校 ============ -->
<record id="demo_school" model="yuthon.school.school">
<field name="name">求知中学</field>
<field name="address">北京市海淀区中关村南大街 1 号</field>
<field name="phone">010-88888001</field>
<field name="principal">赵校长</field>
</record>
<!-- ============ 老师 ============ -->
<record id="demo_teacher_zhang" model="yuthon.school.teacher">
<field name="name">张老师</field>
<field name="school_id" ref="demo_school"/>
<field name="phone">138-0000-0001</field>
<field name="subject">Odoo 模型开发</field>
</record>
<record id="demo_teacher_li" model="yuthon.school.teacher">
<field name="name">李老师</field>
<field name="school_id" ref="demo_school"/>
<field name="phone">138-0000-0002</field>
<field name="subject">Odoo 视图开发</field>
</record>
<record id="demo_teacher_wang" model="yuthon.school.teacher">
<field name="name">王老师</field>
<field name="school_id" ref="demo_school"/>
<field name="phone">138-0000-0003</field>
<field name="subject">Odoo 部署运维</field>
</record>
<!-- ============ 班级 ============ -->
<record id="demo_class_beginner" model="yuthon.school.class">
<field name="name">Odoo 18 入门班</field>
<field name="school_id" ref="demo_school"/>
<field name="teacher_id" ref="demo_teacher_zhang"/>
<field name="grade">2026 级</field>
</record>
<record id="demo_class_advanced" model="yuthon.school.class">
<field name="name">Odoo 18 进阶班</field>
<field name="school_id" ref="demo_school"/>
<field name="teacher_id" ref="demo_teacher_li"/>
<field name="grade">2026 级</field>
</record>
<!-- ============ 学生(入门班 5 人) ============ -->
<record id="demo_student_01" model="yuthon.school.student">
<field name="name">陈小明</field>
<field name="student_no">S20260001</field>
<field name="class_id" ref="demo_class_beginner"/>
<field name="gender">male</field>
<field name="phone">139-0000-0001</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_02" model="yuthon.school.student">
<field name="name">林小芳</field>
<field name="student_no">S20260002</field>
<field name="class_id" ref="demo_class_beginner"/>
<field name="gender">female</field>
<field name="phone">139-0000-0002</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_03" model="yuthon.school.student">
<field name="name">黄小杰</field>
<field name="student_no">S20260003</field>
<field name="class_id" ref="demo_class_beginner"/>
<field name="gender">male</field>
<field name="phone">139-0000-0003</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_04" model="yuthon.school.student">
<field name="name">刘小婷</field>
<field name="student_no">S20260004</field>
<field name="class_id" ref="demo_class_beginner"/>
<field name="gender">female</field>
<field name="phone">139-0000-0004</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_05" model="yuthon.school.student">
<field name="name">周小强</field>
<field name="student_no">S20260005</field>
<field name="class_id" ref="demo_class_beginner"/>
<field name="gender">male</field>
<field name="phone">139-0000-0005</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<!-- ============ 学生(进阶班 5 人) ============ -->
<record id="demo_student_06" model="yuthon.school.student">
<field name="name">吴小燕</field>
<field name="student_no">S20260006</field>
<field name="class_id" ref="demo_class_advanced"/>
<field name="gender">female</field>
<field name="phone">139-0000-0006</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_07" model="yuthon.school.student">
<field name="name">郑小伟</field>
<field name="student_no">S20260007</field>
<field name="class_id" ref="demo_class_advanced"/>
<field name="gender">male</field>
<field name="phone">139-0000-0007</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_08" model="yuthon.school.student">
<field name="name">孙小丽</field>
<field name="student_no">S20260008</field>
<field name="class_id" ref="demo_class_advanced"/>
<field name="gender">female</field>
<field name="phone">139-0000-0008</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_09" model="yuthon.school.student">
<field name="name">胡小军</field>
<field name="student_no">S20260009</field>
<field name="class_id" ref="demo_class_advanced"/>
<field name="gender">male</field>
<field name="phone">139-0000-0009</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<record id="demo_student_10" model="yuthon.school.student">
<field name="name">高小静</field>
<field name="student_no">S20260010</field>
<field name="class_id" ref="demo_class_advanced"/>
<field name="gender">female</field>
<field name="phone">139-0000-0010</field>
<field name="enrollment_date">2026-03-01</field>
</record>
<!-- ============ 教材 + 章节 ============ -->
<record id="demo_textbook" model="yuthon.school.textbook">
<field name="name">Odoo 18 框架开发实战</field>
<field name="category_id" ref="demo_category_root"/>
<field name="difficulty">beginner</field>
<field name="state">published</field>
<field name="description">从零开始学习 Odoo 18 框架开发,涵盖模块结构、模型定义、视图架构、权限机制等核心知识点。</field>
</record>
<record id="demo_chapter_01" model="yuthon.school.chapter">
<field name="name">第一章 模块结构与清单文件</field>
<field name="textbook_id" ref="demo_textbook"/>
<field name="sequence">10</field>
<field name="summary">了解 Odoo 模块的目录结构和 __manifest__.py 清单文件</field>
<field name="key_points">__manifest__.py 字段、data 文件加载顺序、addons_path 配置</field>
<field name="hours">2.0</field>
</record>
<record id="demo_chapter_02" model="yuthon.school.chapter">
<field name="name">第二章 模型定义与字段类型</field>
<field name="textbook_id" ref="demo_textbook"/>
<field name="sequence">20</field>
<field name="summary">掌握 Odoo 模型定义、字段类型和关系字段</field>
<field name="key_points">Char/Integer/Float/Selection、Many2one/One2many/Many2many、compute/store</field>
<field name="hours">4.0</field>
</record>
<record id="demo_chapter_03" model="yuthon.school.chapter">
<field name="name">第三章 视图架构</field>
<field name="textbook_id" ref="demo_textbook"/>
<field name="sequence">30</field>
<field name="summary">学习 list/form/search/kanban 四种核心视图</field>
<field name="key_points">list 视图、form 视图、search 视图、kanban 看板视图</field>
<field name="hours">3.0</field>
</record>
<record id="demo_chapter_04" model="yuthon.school.chapter">
<field name="name">第四章 权限与安全机制</field>
<field name="textbook_id" ref="demo_textbook"/>
<field name="sequence">40</field>
<field name="summary">理解 ir.model.access.csv 和 ir.rule 记录规则</field>
<field name="key_points">模型访问权限、记录规则、用户组</field>
<field name="hours">2.5</field>
</record>
<record id="demo_chapter_05" model="yuthon.school.chapter">
<field name="name">第五章 控制器与路由</field>
<field name="textbook_id" ref="demo_textbook"/>
<field name="sequence">50</field>
<field name="summary">学习 HTTP 控制器和 URL 路由</field>
<field name="key_points">Controller、@http.route、请求处理、模板渲染</field>
<field name="hours">3.0</field>
</record>
<!-- ============ 选修课Many2many 演示) ============ -->
<record id="demo_elective_owl" model="yuthon.school.elective">
<field name="name">OWL 前端框架入门</field>
<field name="teacher_id" ref="demo_teacher_li"/>
<field name="description">学习 Odoo Web Library (OWL) 框架基础,理解组件化前端开发。</field>
<field name="student_ids" eval="[(6, 0, [ref('demo_student_01'), ref('demo_student_02'), ref('demo_student_03')])]"/>
</record>
<record id="demo_elective_workflow" model="yuthon.school.elective">
<field name="name">Odoo 工作流开发</field>
<field name="teacher_id" ref="demo_teacher_zhang"/>
<field name="description">深入学习 Odoo 工作流机制,掌握状态机和业务流程设计。</field>
<field name="student_ids" eval="[(6, 0, [ref('demo_student_06'), ref('demo_student_07'), ref('demo_student_08')])]"/>
</record>
<!-- ============ 学习进度记录 ============ -->
<record id="demo_progress_01" model="yuthon.school.progress">
<field name="student_id" ref="demo_student_01"/>
<field name="textbook_id" ref="demo_textbook"/>
<field name="chapter_id" ref="demo_chapter_01"/>
<field name="progress">100</field>
<field name="completed">True</field>
<field name="last_study_date">2026-07-20 10:00:00</field>
</record>
<record id="demo_progress_02" model="yuthon.school.progress">
<field name="student_id" ref="demo_student_01"/>
<field name="textbook_id" ref="demo_textbook"/>
<field name="chapter_id" ref="demo_chapter_02"/>
<field name="progress">65</field>
<field name="completed">False</field>
<field name="last_study_date">2026-07-25 14:00:00</field>
</record>
<record id="demo_progress_03" model="yuthon.school.progress">
<field name="student_id" ref="demo_student_02"/>
<field name="textbook_id" ref="demo_textbook"/>
<field name="chapter_id" ref="demo_chapter_01"/>
<field name="progress">100</field>
<field name="completed">True</field>
<field name="last_study_date">2026-07-22 09:30:00</field>
</record>
<record id="demo_progress_04" model="yuthon.school.progress">
<field name="student_id" ref="demo_student_06"/>
<field name="textbook_id" ref="demo_textbook"/>
<field name="chapter_id" ref="demo_chapter_03"/>
<field name="progress">40</field>
<field name="completed">False</field>
<field name="last_study_date">2026-07-26 16:00:00</field>
</record>
<record id="demo_progress_05" model="yuthon.school.progress">
<field name="student_id" ref="demo_student_07"/>
<field name="textbook_id" ref="demo_textbook"/>
<field name="chapter_id" ref="demo_chapter_01"/>
<field name="progress">0</field>
<field name="completed">False</field>
<field name="last_study_date">2026-07-28 08:00:00</field>
</record>
</odoo>