You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Odoo日历视图中自动添加ir.cron计划任务?

在Odoo日历视图中展示ir.cron计划任务的实现方案

完全可行,通过自定义模块扩展ir.cron模型并添加日历视图即可实现,具体步骤如下:

1. 创建自定义模块基础结构

如果没有现成的自定义模块,先搭建基础结构:

my_cron_calendar/
├── __manifest__.py
├── models/
│   └── ir_cron.py
└── views/
    └── ir_cron_views.xml

__manifest__.py中填写模块基本信息,确保依赖base模块。

2. 扩展ir.cron模型,映射日历所需字段

在models/ir_cron.py中继承ir.cron,添加日历视图需要的字段映射(可直接复用现有字段或新增计算字段):

from odoo import models, fields

class IrCron(models.Model):
    _inherit = 'ir.cron'

    # 映射日历开始时间为下次执行时间
    calendar_start = fields.Datetime(string='执行时间', related='nextcall', store=True)
    # 映射日历标题为任务名称
    calendar_title = fields.Char(string='任务标题', related='name', store=True)
    # 生成日历事件描述
    calendar_description = fields.Text(string='任务详情', compute='_compute_calendar_description')

    def _compute_calendar_description(self):
        for rec in self:
            rec.calendar_description = (
                f"关联模型: {rec.model}\n"
                f"执行间隔: {rec.interval_number} {rec.interval_type}\n"
                f"状态: {'已激活' if rec.active else '未激活'}"
            )

3. 添加日历视图配置

在views/ir_cron_views.xml中定义日历视图,并将其添加到计划任务的动作视图列表:

<odoo>
    <!-- 定义日历视图 -->
    <record id="view_ir_cron_calendar" model="ir.ui.view">
        <field name="name">ir.cron.calendar.view</field>
        <field name="model">ir.cron</field>
        <field name="arch" type="xml">
            <calendar 
                string="计划任务日历" 
                date_start="calendar_start" 
                color="active" 
                event_open="view_ir_cron_form"
            >
                <field name="calendar_title"/>
                <field name="calendar_description"/>
            </calendar>
        </field>
    </record>

    <!-- 更新计划任务动作,添加日历视图切换选项 -->
    <record id="action_ir_cron" model="ir.actions.act_window">
        <field name="name">计划任务</field>
        <field name="res_model">ir.cron</field>
        <field name="view_mode">tree,form,calendar</field>
        <field name="view_id" ref="ir_cron_tree"/>
    </record>
</odoo>

4. 安装模块并验证效果

安装或升级自定义模块后,进入设置 -> 技术 -> 自动化 -> 计划任务,即可看到新增的「日历」视图选项,切换后所有计划任务会按下次执行时间展示在日历上,点击事件可直接打开任务表单进行编辑。

可选优化

  • 若需展示重复执行规则,可新增计算字段生成符合iCalendar标准的rrule字符串,绑定到日历视图的rrule属性,实现重复事件的自动渲染。
  • 可自定义颜色字段,按任务类型或执行状态区分不同事件的显示颜色。

内容的提问来源于stack exchange,提问作者ASD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:04:57