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

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

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

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

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

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

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

xml 复制代码
<!-- 继承并完全替换"学生生日日历"视图 -->
<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>

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

xml 复制代码
<!-- 模型的窗口动作(定义用户如何交互) -->
<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 中,日历视图为日程安排和资源管理提供了灵活且直观的解决方案。凭借其内置功能、自定义选项和移动访问能力,它能帮助企业优化运营并提高生产力。充分利用这一工具,可简化日程安排流程,推动业务向更高效率和成功迈进。

相关推荐
云草桑7 天前
15分钟快速了解 Odoo
数据库·python·docker·postgresql·.net·odoo
山上春10 天前
Odoo 18 Web 客户端架构深度解析与 Navbar 差异化定制研究报告
odoo
山上春17 天前
ONLYOFFICE Odoo 集成架构深度解析与实战手册(odoo文件预览方案)
架构·odoo
odoo中国25 天前
如何在 Odoo 19 中加载演示数据
xml·csv·odoo·odoo 19·odoo 演示数据加载
odoo中国1 个月前
Odoo 19 模块结构概述
开发语言·python·module·odoo·核心组件·py文件按
隔壁小红馆1 个月前
Odoo 15 到 Odoo 19 API 变化完整知识库(详细版)
odoo17·odoo18·odoo19
odoo中国1 个月前
如何在 Odoo 中从 XML 文件调用函数
xml·odoo·odoo开发·调用函数
odoo中国1 个月前
Odoo 19 中的基础视图有哪些?
odoo·odoo19·基础视图
李怀瑾2 个月前
在Odoo18中实现多选下拉框搜索功能
odoo