Skip to Content

Odoo 19 日历视图实操指南:XML 配置与视图继承替换

如何在 Odoo 19 中创建日历视图

在 Odoo 19 中,日历视图是管理和可视化基于时间数据的强大界面,常用于约会、截止日期、任务、会议等日程安排场景。它提供了直观的图形化布局,可按日、周、月展示记录,在项目、销售、CRM 等模块中尤为实用。其核心功能包括灵活的日程安排、高效的资源管理工具、与其他 Odoo 应用的集成能力、丰富的自定义选项以及移动设备访问支持。无论是销售团队、项目经理还是资源协调员,Odoo 19 的日历视图都能提升日程安排效率,助力高效时间管理,增强组织整体生产力。

以下是在 Odoo 19 中设置日历视图的方法。

首先定义日历视图所需的模型和相关字段。定义好这些字段后,下面是该模型的表单视图示例。

要创建日历视图,需在 XML 中进行配置。这涉及到在模块的 “views” 目录下定义 XML 文件,在这些文件中,我们使用<calendar>标签指定日历视图。

现在,让我们看一下设置日历视图所需的代码(示例是继承原先的日历视图并整个替换掉)。

<!-- 继承并完全替换“学生生日日历”视图 -->
<record id="student_info_view_calendar_inherit" model="ir.ui.view">
    <!-- 1. 基础配置:关联原视图、定义继承视图名称 -->
    <field name="name">student.info.calendar.inherit</field>
    <field name="model">student.info</field>
    <field name="inherit_id" ref="students.student_info_view_calendar"/> <!-- 关键:关联要继承的原视图ID -->
    <field name="arch" type="xml">
        <!-- 2. 匹配原视图的<calendar>节点,并完全替换 -->
        <xpath expr="//calendar" position="replace">
            <!-- 3. 新的日历视图内容(可根据需求修改属性和字段) -->
            <calendar string="学生生日日历" date_stop = "leaving_date"
                date_start="start_date"
                color="department_id"
                mode="month"
                event_open_popup="true"
            >
                <!-- 4. 新的视图字段(可根据需求增删字段,字段需属于student.info模型) -->
                <field name="name" avatar_field="avatar_128"/>
                <field name="date_of_birth"/>
                <field name="department_id"/>
                <field name="age"/>
            </calendar>
        </xpath>
    </field>
</record>

之后,需要在动作配置中定义日历作为视图类型:

<!-- 模型的窗口动作(定义用户如何交互) -->
<record id="ir_action_act_window_students" model="ir.actions.act_window">
    <field name="name">学生管理</field> <!-- 动作名称 -->
    <field name="res_model">student.info</field> <!-- 关联的业务模型 -->
    <field name="view_mode">kanban,list,graph,form,pivot,calendar,activity,hierarchy</field>
    <field name="help" type="html">
       <p class="o_view_nocontent_smiling_face">
           未找到数据!
       </p>
   </field>
</record>

在日历视图中,有几个可用的属性,例如 date_start 和 date_stop。让我们逐一了解它们。

  • date_start:该属性指定日历事件的开始日期。如果在该属性中传入模型中的日期字段,它将作为日历视图中事件的起始日期。
  • date_stop:该属性指定日历事件的结束日期。
  • mode:日历视图可按日、周、月或年显示。默认情况下,页面加载时会显示日历的默认视图模式。可选值为day(日)、week(周)、month(月)、year(年)。
  • color:基于指定字段(通常是 Many2one 字段)为不同事件分配颜色。该字段值相同的记录会显示为同一颜色。
  • event_open_popup:启用此属性后,事件将在弹窗中打开。具体来说,若event_open_popup=“true”,日历视图会在弹窗中显示事件;否则,事件会在表单视图中打开。
  • quick_add:该字段允许快速创建事件。

在视图中,我们可以看到日历图标(视图)已被添加。

选择日历视图后,记录将显示为视图中所示。

有色区域表示记录属于该日期范围。在图中,记录按月份筛选,但也可调整为按日、周或年显示。

此外,我们可以根据设置为 avatar_field 的 Many2one 字段过滤记录。在这里,它是学生字段。

在上面的图像中,只有 王五 和 张三 学生的记录是可见的,因为仅为他们选择了该 avatar_field 的复选框。

另外,点击记录可查看其详情。

我们可以通过单击所需日期轻松创建新记录。

在 Odoo 19 中,日历视图为日程安排和资源管理提供了灵活且直观的解决方案。凭借其内置功能、自定义选项和移动访问能力,它能帮助企业优化运营并提高生产力。充分利用这一工具,可简化日程安排流程,推动业务向更高效率和成功迈进。

Odoo 19 日历视图实操指南:XML 配置与视图继承替换
中国 Odoo, 苏州远鼎 January 17, 2026
Tags
Archive