Merge pull request '菜单,登录图片,随堂笔记' (#11) from wanghy into master
Reviewed-on: #11
This commit was merged in pull request #11.
This commit is contained in:
@@ -81,6 +81,9 @@ class CourseChapter(models.Model):
|
||||
attachment_ids = fields.One2many(
|
||||
'yuthon.school.course.chapter.attachment', 'chapter_id', string='附件')
|
||||
|
||||
# 随堂笔记:老师按章节记录的富文本笔记(与章节编辑表单共用同一字段)
|
||||
notes = fields.Html(string='随堂笔记', sanitize=True)
|
||||
|
||||
@api.depends('video_file', 'video_filename')
|
||||
def _compute_video_filename_display(self):
|
||||
"""显示用:从 ir.attachment 读取视频真实文件名并持久化。"""
|
||||
@@ -130,7 +133,7 @@ class CourseChapter(models.Model):
|
||||
"""学生端:弹窗打开当前章节的学习页(带视频播放/附件下载)。"""
|
||||
self.ensure_one()
|
||||
study_form = self.env.ref(
|
||||
'school.yuthon_school_course_chapter_study_form')
|
||||
'college.yuthon_school_course_chapter_study_form')
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': '学习章节',
|
||||
@@ -145,7 +148,7 @@ class CourseChapter(models.Model):
|
||||
"""老师端:弹窗打开当前章节的编辑页。"""
|
||||
self.ensure_one()
|
||||
edit_form = self.env.ref(
|
||||
'school.yuthon_school_course_chapter_form_view')
|
||||
'college.yuthon_school_course_chapter_form_view')
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': '编辑章节',
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.9 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.3 KiB |
@@ -14,6 +14,7 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="description" widget="html" string="章节说明"/>
|
||||
<field name="notes" widget="html" string="随堂笔记"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="video_file" filename="video_filename"/>
|
||||
@@ -119,4 +120,71 @@
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_school_course_study_form')})]"/>
|
||||
<field name="target">current</field>
|
||||
</record>
|
||||
|
||||
<!-- ===================== 随堂笔记:列表(按课程分组) ===================== -->
|
||||
<record id="yuthon_school_course_chapter_notes_list" model="ir.ui.view">
|
||||
<field name="name">yuthon.school.course.chapter.notes.list</field>
|
||||
<field name="model">yuthon.school.course.chapter</field>
|
||||
<field name="priority">40</field>
|
||||
<field name="groups_id" eval="[(4, ref('college.group_teacher')), (4, ref('college.group_student')), (4, ref('base.group_system'))]"/>
|
||||
<field name="arch" type="xml">
|
||||
<list>
|
||||
<field name="course_id"/>
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ===================== 随堂笔记:编辑表单 ===================== -->
|
||||
<record id="yuthon_school_course_chapter_notes_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.school.course.chapter.notes.form</field>
|
||||
<field name="model">yuthon.school.course.chapter</field>
|
||||
<field name="priority">40</field>
|
||||
<field name="groups_id" eval="[(4, ref('college.group_teacher')), (4, ref('college.group_student')), (4, ref('base.group_system'))]"/>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<h2><field name="name" readonly="1"/></h2>
|
||||
<div class="text-muted mb-3">
|
||||
所属课程:<field name="course_id" readonly="1"/>
|
||||
</div>
|
||||
<group>
|
||||
<field name="notes" widget="html" groups="college.group_teacher,base.group_system"/>
|
||||
<field name="notes" widget="html" readonly="1" groups="college.group_student"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ===================== 随堂笔记:搜索视图(按课程分组) ===================== -->
|
||||
<record id="yuthon_school_course_chapter_notes_search" model="ir.ui.view">
|
||||
<field name="name">yuthon.school.course.chapter.notes.search</field>
|
||||
<field name="model">yuthon.school.course.chapter</field>
|
||||
<field name="priority">40</field>
|
||||
<field name="groups_id" eval="[(4, ref('college.group_teacher')), (4, ref('college.group_student')), (4, ref('base.group_system'))]"/>
|
||||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<field name="course_id"/>
|
||||
<field name="name"/>
|
||||
<filter name="group_by_course" string="按课程分组" context="{'group_by': 'course_id'}"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- ===================== 随堂笔记:动作 ===================== -->
|
||||
<record id="action_yuthon_school_class_notes" model="ir.actions.act_window">
|
||||
<field name="name">随堂笔记</field>
|
||||
<field name="res_model">yuthon.school.course.chapter</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="domain">['|', ('course_id.teacher_id', '=', uid), ('course_id.student_ids.user_id', '=', uid)]</field>
|
||||
<field name="context">{'search_default_group_by_course': 1}</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'list', 'view_id': ref('yuthon_school_course_chapter_notes_list')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('yuthon_school_course_chapter_notes_form')})]"/>
|
||||
<field name="search_view_id" ref="yuthon_school_course_chapter_notes_search"/>
|
||||
<field name="target">current</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
+42
-5
@@ -1,15 +1,15 @@
|
||||
<odoo>
|
||||
<!-- ===================== 教育(根) ===================== -->
|
||||
<menuitem id="menu_yuthon_education_root"
|
||||
name="教育"
|
||||
name="学习管理"
|
||||
web_icon="college,static/src/img/education.png"
|
||||
sequence="10"/>
|
||||
|
||||
<!-- ===================== 课程管理 ===================== -->
|
||||
<menuitem id="menu_yuthon_course_root"
|
||||
name="课程管理"
|
||||
parent="menu_yuthon_education_root"
|
||||
sequence="10"/>
|
||||
web_icon="college,static/src/img/Course Management.png"
|
||||
sequence="20"/>
|
||||
|
||||
<!-- 我的课程:仅老师(课程由老师创建) -->
|
||||
<menuitem id="menu_yuthon_course_my"
|
||||
@@ -30,9 +30,9 @@
|
||||
<!-- 课程学习:学生端专用入口(左侧章节目录 + 右侧视频/资料) -->
|
||||
<menuitem id="menu_yuthon_course_study"
|
||||
name="课程学习"
|
||||
parent="menu_yuthon_education_root"
|
||||
web_icon="college,static/src/img/take courses.png"
|
||||
action="action_yuthon_school_course_study"
|
||||
sequence="11"
|
||||
sequence="19"
|
||||
groups="college.group_student,base.group_system"/>
|
||||
|
||||
<!-- ===================== 师生管理(顶级菜单,与「教育」平级,仅老师/管理员) ===================== -->
|
||||
@@ -100,4 +100,41 @@
|
||||
action="action_yuthon_school_assignment_submission"
|
||||
sequence="30"
|
||||
groups="college.group_teacher,base.group_system"/>
|
||||
|
||||
<menuitem id="menu_yuthon_class_notes"
|
||||
name="随堂笔记"
|
||||
parent="menu_yuthon_homework"
|
||||
action="action_yuthon_school_class_notes"
|
||||
sequence="40"
|
||||
groups="college.group_teacher,college.group_student,base.group_system"/>
|
||||
|
||||
<!-- ===================== 关于:占位动作(内容待添加,先指向 /web 避免报错;须在引用它的菜单之前定义) ===================== -->
|
||||
<record id="action_yuthon_about_system" model="ir.actions.act_url">
|
||||
<field name="name">系统说明</field>
|
||||
<field name="url">/web</field>
|
||||
<field name="target">self</field>
|
||||
</record>
|
||||
<record id="action_yuthon_about_operation" model="ir.actions.act_url">
|
||||
<field name="name">操作说明</field>
|
||||
<field name="url">/web</field>
|
||||
<field name="target">self</field>
|
||||
</record>
|
||||
|
||||
<!-- ===================== 关于(顶级菜单,放在「组织架构」后面) ===================== -->
|
||||
<menuitem id="menu_yuthon_about"
|
||||
name="关于"
|
||||
sequence="30"
|
||||
groups="college.group_teacher,college.group_student,base.group_system"/>
|
||||
<!-- 系统说明:内容待添加 -->
|
||||
<menuitem id="menu_yuthon_about_system"
|
||||
name="系统说明"
|
||||
parent="menu_yuthon_about"
|
||||
action="action_yuthon_about_system"
|
||||
sequence="10"/>
|
||||
<!-- 操作说明:内容待添加 -->
|
||||
<menuitem id="menu_yuthon_about_operation"
|
||||
name="操作说明"
|
||||
parent="menu_yuthon_about"
|
||||
action="action_yuthon_about_operation"
|
||||
sequence="20"/>
|
||||
</odoo>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 215 KiB After Width: | Height: | Size: 68 KiB |
Reference in New Issue
Block a user