shcool/learning_center/views/view_course_teaching_class.xml
2026-06-15 23:57:01 +08:00

215 lines
10 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>
<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>