如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍

文 / 开源智造 · Odoo亚太金牌服务

引言

关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此强化了用户体验。在此篇文中,我们将渐次探究如何在 Odoo 18 中添加关联数据看板按钮。

Odoo的关联数据看板按钮概述

关联数据看板按钮乃是与本数据源产生关联数据且带有记录数显示的导航按钮,通常呈现为可点击的图标抑或按钮,安设于表单视图的标题之处。其能够展示相关记录的计数,诸如链接至客户的发票数量或者分配给项目的任务数量。一经点击,它们便会将用户引领至相应的记录,进而让相关数据的管理更为轻松便捷。

在表单视图中添加关联数据看板按钮

如需新增关联数据看板按钮,需要继承表单视图并将该按钮放在名为 'button_box' 的**<div>**结构之内,示例代码如下:

复制代码
<record id="view_partner_form" model="ir.ui.view">
        <field name="name">res.partner.form.inherit.my.blog</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <div name="button_box" position="inside">
                <button class="oe_stat_button" 
                         type="object" 
                         icon="fa-taxi"                         
                         name="action_get_vehicles_record">
                </button>
            </div>
        </field>
    </record>

借由在 res.partner 类中涵盖此记录以及函数 action_get_vehicles_record,您将会于合作伙伴表单里构建出一个带有出租车图标的全新关联数据看板按钮。

如何为关联数据看板按钮定义名称和关联数据

接下来,我们可以指定关联数据看板按钮的名称,并展现关联记录的计数。为达成此目的,请运用附加字段和计算函数来拓展 res.partner模型,示例代码如下:

复制代码
from odoo import models, fields
class ResPartner(models.Model):
    _inherit = "res.partner"
    
    vehicle_count = fields.Integer(string="Vehicles", compute='compute_vehicle_count', default=0)
    
    def compute_vehicle_count(self):
        for record in self:
            record.vehicle_count = self.env['fleet.vehicle'].search_count([('driver_id', '=', self.id)])

此设置允许关联数据看板按钮显示链接到合作伙伴的车辆数量。现在,更新您的 XML 记录以将 vehicle_count 包含在按钮定义中,示例代码如下:

复制代码
<div name="button_box" position="inside">
    <button class="oe_stat_button" type="object" icon="fa-taxi"
            name="action_get_vehicles_record">
        <field string="Vehicles" name="vehicle_count" widget="statinfo"/>
    </button>
</div>

接下来,凭借对 action_get_vehicles_record 函数的修改来明确关联数据看板按钮的操作。该函数将会对视图进行筛选,以展示与合作伙伴存在关联的车辆数据记录。示例代码如下:

复制代码
def action_get_vehicles_record(self):
    self.ensure_one()
    return {
        'type': 'ir.actions.act_window',
        'name': 'Vehicles',
        'view_mode': 'tree',
        'res_model': 'fleet.vehicle',
        'domain': [('driver_id', '=', self.id)],
        'context': "{'create': False}"
    }

在车队模块中把部分车辆驾驶员与当下的合作伙伴相互关联之后,单击关联数据看板按钮便会展示出相关的车辆记录。

总结

依据本文的实施与开发技法,您能够顺遂地将关联数据看板按钮融入至 Odoo 18 应用进程之中,进而强化用户交互,推动更便捷的数据管理。关联数据看板按钮为相关记录提供了快速访问的途径,与此同时,维持着您的ERP UI简洁与高效。

相关推荐
赤龙ERP2 天前
ERP周报:连接器开闸、国产GPU进场与智能工厂253家
数据库·人工智能·大模型·rpa·erp·企业数字化·builderpattern
晶捷软件4 天前
从 IT 架构视角看 ERP 选型:用友、金蝶与鼎捷生态(含晶捷智能)的技术差异
架构·智能制造·erp·制造业信息化
云策数链4 天前
用友 T+Cloud / U8 项目交接时的账套健康度核查清单
数据库·oracle·erp·用友·云策数链
CSharp精选营4 天前
制造业 ERP 物料建模:主料、辅料和 BOM 到底怎么拆才稳
.net·erp·bom·制造业·物料建模
哲霖软件6 天前
分期收款模式下的项目资金管控怎么做
erp·哲霖软件·非标自动化
搞科研的小刘选手9 天前
【会议论文 + 期刊论文 双通道征稿 | ACM出版 | 珠海科技学院主办 | 中国-珠海】第二届数字化转型与管理(金融)国际学术会议(DTM 2026)
管理·数字化转型·学术会议·会议推荐·珠海
晶捷软件9 天前
离散制造系统集成实战:PLM/ERP/MES/WMS 数据流设计与五个踩坑复盘
制造·智能制造·erp·mes·制造业信息化
哲霖软件12 天前
BOM多版本并行管理:非标厂的技术准备怎么做
erp·非标自动化·机械设备制造业
龙鼎源数智12 天前
家居行业 ERP 与 MES 的区别:系统边界、数据流与集成落点
智能制造·erp·系统集成·mes
CORNERSTONE36515 天前
准备上MES,企业要先整理哪些基础数据?
低代码·erp·mes·企业数字化