如何在 Odoo 19 中创建日历视图
在 Odoo 19 中,日历视图是管理和可视化基于时间数据的强大界面,常用于约会、截止日期、任务、会议等日程安排场景。它提供了直观的图形化布局,可按日、周、月展示记录,在项目、销售、CRM 等模块中尤为实用。其核心功能包括灵活的日程安排、高效的资源管理工具、与其他 Odoo 应用的集成能力、丰富的自定义选项以及移动设备访问支持。无论是销售团队、项目经理还是资源协调员,Odoo 19 的日历视图都能提升日程安排效率,助力高效时间管理,增强组织整体生产力。
以下是在 Odoo 19 中设置日历视图的方法。
首先定义日历视图所需的模型和相关字段。定义好这些字段后,下面是该模型的表单视图示例。
要创建日历视图,需在 XML 中进行配置。这涉及到在模块的 “views” 目录下定义 XML 文件,在这些文件中,我们使用<calendar>标签指定日历视图。
现在,让我们看一下设置日历视图所需的代码(示例是继承原先的日历视图并整个替换掉)。
<!-- 继承并完全替换“学生生日日历”视图 --><recordid="student_info_view_calendar_inherit"model="ir.ui.view"><!-- 1. 基础配置:关联原视图、定义继承视图名称 --><fieldname="name">student.info.calendar.inherit</field><fieldname="model">student.info</field><fieldname="inherit_id"ref="students.student_info_view_calendar"/><!-- 关键:关联要继承的原视图ID --><fieldname="arch"type="xml"><!-- 2. 匹配原视图的<calendar>节点,并完全替换 --><xpathexpr="//calendar"position="replace"><!-- 3. 新的日历视图内容(可根据需求修改属性和字段) --><calendarstring="学生生日日历"date_stop="leaving_date"date_start="start_date"color="department_id"mode="month"event_open_popup="true"><!-- 4. 新的视图字段(可根据需求增删字段,字段需属于student.info模型) --><fieldname="name"avatar_field="avatar_128"/><fieldname="date_of_birth"/><fieldname="department_id"/><fieldname="age"/></calendar></xpath></field></record>之后,需要在动作配置中定义日历作为视图类型:
<!-- 模型的窗口动作(定义用户如何交互) --><recordid="ir_action_act_window_students"model="ir.actions.act_window"><fieldname="name">学生管理</field><!-- 动作名称 --><fieldname="res_model">student.info</field><!-- 关联的业务模型 --><fieldname="view_mode">kanban,list,graph,form,pivot,calendar,activity,hierarchy</field><fieldname="help"type="html"><pclass="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 中,日历视图为日程安排和资源管理提供了灵活且直观的解决方案。凭借其内置功能、自定义选项和移动访问能力,它能帮助企业优化运营并提高生产力。充分利用这一工具,可简化日程安排流程,推动业务向更高效率和成功迈进。