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

如何实现Odoo中子任务的可追踪性?

解决Odoo子任务无追踪性的方法

核心原理

Odoo的记录追踪功能依赖三个关键要素:

  • 模型继承mail.thread混合模型(project.task本身已继承,但需确保未被自定义代码覆写)
  • 字段定义中设置track_visibility属性('onchange'仅追踪字段变更,'always'始终追踪字段状态)
  • 表单视图中添加追踪面板组件(展示变更记录、消息及关注者)

方法1:统一字段追踪设置

如果子任务的字段未触发追踪,可能是字段的track_visibility被条件限制或未全局生效。通过自定义模块继承project.task,确保需要追踪的字段对所有任务(含子任务)生效:

from odoo import models, fields

class ProjectTask(models.Model):
    _inherit = 'project.task'

    # 确保任务标题的追踪对所有任务生效
    name = fields.Char(track_visibility='onchange')
    # 对其他核心字段重复设置,比如任务阶段、负责人
    stage_id = fields.Many2one(track_visibility='onchange')
    user_id = fields.Many2one(track_visibility='onchange')

方法2:给子任务视图添加追踪面板

默认主任务的表单视图包含追踪面板,但子任务的视图可能被隐藏或未配置。在自定义模块中继承子任务的表单视图,添加追踪组件:

<odoo>
    <record id="view_task_sub_form_inherit" model="ir.ui.view">
        <field name="name">project.task.sub.form.inherit</field>
        <field name="model">project.task</field>
        <field name="inherit_id" ref="project.view_task_form2"/>
        <field name="arch" type="xml">
            <!-- 在表单末尾添加追踪面板 -->
            <xpath expr="//sheet" position="after">
                <div class="oe_chatter">
                    <field name="message_follower_ids" widget="mail_followers"/>
                    <field name="message_ids" widget="mail_thread"/>
                </div>
            </xpath>
        </field>
    </record>
</odoo>

方法3:移除追踪逻辑的条件限制

检查是否有自定义代码或第三方模块对mail.thread的追踪逻辑添加了条件(比如仅允许主任务触发追踪)。若存在如下限制代码,需移除条件:

# 原限制代码
def message_post(self, **kwargs):
    if not self.parent_id:
        return super(ProjectTask, self).message_post(**kwargs)

# 修改后
def message_post(self, **kwargs):
    return super(ProjectTask, self).message_post(**kwargs)

验证配置

完成修改后,升级自定义模块并验证:

  1. 进入Odoo应用列表,找到自定义模块点击「升级」
  2. 创建或打开一个子任务,修改标题、阶段等字段,检查追踪面板是否生成变更记录
  3. 验证子任务的消息发送、关注者添加功能是否正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:42:37