215 lines
10 KiB
XML
215 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<odoo>
|
||
<record id="list_course_teaching_class" model="ir.ui.view">
|
||
<field name="name">course.teaching_class.list</field>
|
||
<field name="model">course.teaching_class</field>
|
||
<field name="arch" type="xml">
|
||
<list>
|
||
<field name="name"/>
|
||
<field name="course_id"/>
|
||
<field name="semester" widget="badge"/>
|
||
<field name="main_teacher_id"/>
|
||
<field name="student_count" sum="合计"/>
|
||
<field name="max_students"/>
|
||
<field name="state" widget="badge"/>
|
||
</list>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="form_course_teaching_class" model="ir.ui.view">
|
||
<field name="name">course.teaching_class.form</field>
|
||
<field name="model">course.teaching_class</field>
|
||
<field name="arch" type="xml">
|
||
<form string="教学班">
|
||
<sheet>
|
||
<div class="oe_title">
|
||
<h1>
|
||
<field name="display_name" placeholder="教学班名称"/>
|
||
</h1>
|
||
</div>
|
||
<div class="oe_button_box" name="button_box">
|
||
<button name="action_open_enroll" type="object" string="开放选课" class="btn-primary"
|
||
invisible="state not in ['draft']"/>
|
||
<button name="action_start_teaching" type="object" string="开始教学" class="btn-success"
|
||
invisible="state not in ['open']"/>
|
||
<button name="action_close" type="object" string="结课" class="btn-danger"
|
||
invisible="state not in ['teaching']"/>
|
||
<button name="action_cancel" type="object" string="取消课程" class="btn-warning"
|
||
invisible="state in ['closed','cancelled']"/>
|
||
</div>
|
||
<group name="basic_info" string="基本信息">
|
||
<group>
|
||
<field name="name"/>
|
||
<field name="code"/>
|
||
<field name="course_id" options="{'no_create': True}"/>
|
||
<field name="semester"/>
|
||
<field name="state" widget="statusbar"/>
|
||
</group>
|
||
<group>
|
||
<field name="main_teacher_id" options="{'no_create': True}"/>
|
||
<field name="teacher_ids" widget="many2many_tags"/>
|
||
<field name="assistant_ids" widget="many2many_tags"/>
|
||
</group>
|
||
</group>
|
||
<group name="schedule_info" string="上课安排">
|
||
<group>
|
||
<field name="schedule"/>
|
||
<field name="start_date"/>
|
||
<field name="end_date"/>
|
||
<field name="total_weeks"/>
|
||
</group>
|
||
<group>
|
||
<field name="max_students"/>
|
||
<field name="min_students"/>
|
||
<field name="student_count" readonly="1"/>
|
||
<field name="is_full" widget="boolean_toggle" readonly="1"/>
|
||
</group>
|
||
</group>
|
||
<notebook>
|
||
<page string="选课学生">
|
||
<field name="student_ids" view_id="view_student_info_list_in_class"/>
|
||
<div class="oe_button_box" style="margin-top:8px;">
|
||
<button name="action_add_students" type="object" string="批量添加学生" class="btn-secondary"/>
|
||
<button name="action_import_students" type="object" string="导入学生名单" class="btn-secondary"/>
|
||
</div>
|
||
</page>
|
||
<!-- 选课记录:开启顶部行内编辑,支持连续快速新增多条 -->
|
||
<page string="选课记录">
|
||
<field name="enrollment_ids" view_id="view_enrollment_list"/>
|
||
</page>
|
||
<page string="课程作业">
|
||
<field name="homework_ids" context="{'default_course_id': course_id, 'default_teaching_class_id': id}" view_id="view_homework_list"/>
|
||
</page>
|
||
<page string="学生成绩">
|
||
<field name="student_score_ids" context="{'default_course_id': course_id, 'default_teaching_class_id': id}" view_id="view_student_score_list"/>
|
||
</page>
|
||
<page string="教学大纲/教案">
|
||
<field name="course_syllabus_ids" context="{'default_course_id': course_id}" view_id="view_course_syllabus_list_inside"/>
|
||
</page>
|
||
<page string="消息">
|
||
<field name="message_ids"/>
|
||
</page>
|
||
</notebook>
|
||
</sheet>
|
||
</form>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="view_student_info_list_in_class" model="ir.ui.view">
|
||
<field name="name">student.info.list.in.class</field>
|
||
<field name="model">student.info</field>
|
||
<field name="arch" type="xml">
|
||
<list editable="bottom">
|
||
<field name="stu_num"/>
|
||
<field name="stu_name"/>
|
||
<field name="class_id"/>
|
||
<field name="stu_phone"/>
|
||
</list>
|
||
</field>
|
||
</record>
|
||
|
||
<!-- 重点:editable="top" 顶部快速新建,可连续添加多条选课记录 -->
|
||
<record id="view_enrollment_list" model="ir.ui.view">
|
||
<field name="name">course.teaching.class.enrollment.list</field>
|
||
<field name="model">course.teaching_class.enrollment</field>
|
||
<field name="arch" type="xml">
|
||
<list editable="top">
|
||
<field name="student_id"/>
|
||
<field name="enroll_date"/>
|
||
<field name="state" widget="badge"/>
|
||
<field name="final_score"/>
|
||
<field name="grade_level" widget="badge"/>
|
||
</list>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="view_homework_list" model="ir.ui.view">
|
||
<field name="name">course.homework.list</field>
|
||
<field name="model">course.homework</field>
|
||
<field name="arch" type="xml">
|
||
<list>
|
||
<field name="name"/>
|
||
<field name="deadline"/>
|
||
<field name="total_score"/>
|
||
<field name="submitted_count"/>
|
||
<field name="state" widget="badge"/>
|
||
</list>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="view_course_syllabus_list_inside" model="ir.ui.view">
|
||
<field name="name">course.syllabus.list.inside</field>
|
||
<field name="model">course.syllabus</field>
|
||
<field name="arch" type="xml">
|
||
<list>
|
||
<field name="title"/>
|
||
<field name="syllabus_type" widget="badge"/>
|
||
<field name="version"/>
|
||
</list>
|
||
</field>
|
||
</record>
|
||
|
||
<record id="view_student_score_list" model="ir.ui.view">
|
||
<field name="name">course.student.score.list</field>
|
||
<field name="model">course.student.score</field>
|
||
<field name="arch" type="xml">
|
||
<list>
|
||
<field name="student_id"/>
|
||
<field name="total_score"/>
|
||
<field name="grade_level" widget="badge"/>
|
||
</list>
|
||
</field>
|
||
</record>
|
||
|
||
<!-- 批量添加/导入学生 向导弹窗视图 -->
|
||
<record id="view_teaching_class_enrollment_wizard_form" model="ir.ui.view">
|
||
<field name="name">course.teaching_class.enrollment.wizard.form</field>
|
||
<field name="model">course.teaching_class.enrollment.wizard</field>
|
||
<field name="arch" type="xml">
|
||
<form string="批量添加学生">
|
||
<group col="2">
|
||
<field name="teaching_class_id" readonly="1"/>
|
||
</group>
|
||
<group string="手动选择学生">
|
||
<field name="student_ids" widget="many2many_tags" colspan="4"/>
|
||
</group>
|
||
<group string="Excel批量导入">
|
||
<field name="file" filename="filename"/>
|
||
<p style="color:gray;">Excel模板要求:首列标题为【学号】,按学号匹配学生</p>
|
||
</group>
|
||
<footer>
|
||
<button name="action_add_students" string="确认添加选中学生" type="object" class="btn-primary"/>
|
||
<button name="action_import_excel" string="执行Excel导入" type="object" class="btn-success"/>
|
||
<button string="关闭" special="cancel" class="btn-secondary"/>
|
||
</footer>
|
||
</form>
|
||
</field>
|
||
</record>
|
||
|
||
<!-- 教学班动作 -->
|
||
<record id="act_course_teaching_class" model="ir.actions.act_window">
|
||
<field name="name">教学班管理</field>
|
||
<field name="res_model">course.teaching_class</field>
|
||
<field name="view_mode">list,form</field>
|
||
</record>
|
||
|
||
<!-- 按课程查看教学班的动作 -->
|
||
<record id="act_course_teaching_class_by_course" model="ir.actions.act_window">
|
||
<field name="name">教学班</field>
|
||
<field name="res_model">course.teaching_class</field>
|
||
<field name="view_mode">list,form</field>
|
||
<field name="view_id" ref="list_course_teaching_class"/>
|
||
<field name="domain">[('course_id', '=', active_id)]</field>
|
||
<field name="context">{'default_course_id': active_id}</field>
|
||
</record>
|
||
|
||
<!-- 二级菜单 -->
|
||
<record id="menu_course_teaching_class" model="ir.ui.menu">
|
||
<field name="name">教学班管理</field>
|
||
<field name="parent_id" ref="menu_learning_center_root"/>
|
||
<field name="action" ref="act_course_teaching_class"/>
|
||
<field name="sequence">15</field>
|
||
<field name="groups_id" eval="[(6,0,[ref('base.group_system'),ref('edu_base.group_teacher')])]"/>
|
||
</record>
|
||
|
||
</odoo> |