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

Odoo技术问询:如何在Chatter中添加跳转至内部调拨表单视图的链接

实现方法

1. 在审批模型中添加Chatter消息推送方法

既然已经能通过自动化规则生成内部调拨记录,只需在审批相关模型中新增自定义方法,用于生成带跳转链接的Chatter消息:

from odoo import models, api

class ApprovalModel(models.Model):
    _inherit = '你的审批模型标识'  # 替换为实际的审批模型名称

    @api.model
    def post_transfer_link_to_chatter(self, approval_id, transfer_id):
        approval_record = self.browse(approval_id)
        transfer_record = self.env['stock.picking'].browse(transfer_id)  # 内部调拨对应stock.picking模型,确认模型匹配
        
        # 构造Odoo内部表单视图链接
        transfer_form_url = f"/web#id={transfer_record.id}&model=stock.picking&view_type=form"
        # 组装带链接的消息内容
        message_content = f"已生成内部调拨记录: <a href='{transfer_form_url}' target='_blank'>{transfer_record.name}</a>"
        
        # 推送消息至Chatter
        approval_record.message_post(
            body=message_content,
            message_type='notification',
            subtype_xmlid='mail.mt_note'
        )

2. 修改自动化规则触发消息推送

在现有Automation Rule中,完成内部调拨记录创建后,调用上述方法:

  • 若自动化规则基于审批记录触发:
    在"执行Python代码"动作中添加:
    # 假设transfer是你创建好的内部调拨记录对象
    record.post_transfer_link_to_chatter(record.id, transfer.id)
    
  • 若自动化规则基于内部调拨记录触发:
    在"执行Python代码"动作中添加:
    # 替换为实际关联审批记录的字段,比如approval_id
    approval_record = env['你的审批模型标识'].browse(record.approval_id.id)
    approval_record.post_transfer_link_to_chatter(approval_record.id, record.id)
    

3. 验证权限与效果

  • 确保操作用户拥有stock.picking表单视图的访问权限
  • 触发审批流程后,检查Chatter中是否出现带链接的消息,点击链接确认能正常打开内部调拨记录表单

无代码替代方案:使用邮件模板

若不想编写Python代码,可通过邮件模板实现:

  1. 进入「设置->技术->邮件->邮件模板」,新建模板并关联审批模型
  2. 模板内容中添加:
已生成内部调拨记录: <a t-att-href="'/web#id=' + transfer_id + '&model=stock.picking&view_type=form'">${transfer_name}</a>
  1. 在自动化规则中选择「发送邮件」动作,使用该模板并传递transfer_id和transfer_name变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:35:10