如何在 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简洁与高效。

相关推荐
Henry-SAP3 小时前
SAP(ERP) 组织结构业务视角解析
大数据·人工智能·sap·erp·sap pp
云草桑10 小时前
15分钟快速了解 Odoo
数据库·python·docker·postgresql·.net·odoo
人工智能培训1 天前
大模型训练数据版权与知识产权问题的解决路径
人工智能·大模型·数字化转型·大模型算法·大模型应用工程师
云捷配低代码1 天前
低代码平台落地方法论:从试点到推广(二)
低代码·需求分析·数字化·数字化转型
九河云2 天前
电网“数字配电房”:局放AI模型故障定位缩到30厘米
人工智能·安全·数字化转型·智能电视
chengrise3 天前
Oracle EBS 成本异常排查全指南:差异分摊、成本回滚场景与解决方案
运维·数据库·oracle·erp·ebs
山上春3 天前
Odoo 18 Web 客户端架构深度解析与 Navbar 差异化定制研究报告
odoo
明月看潮生3 天前
编程与数学 03-008 《看潮企业管理软件》项目开发 06 数据库 3-2
数据库·erp·企业开发·项目实践·编程与数学·.net开发·c#编程
云捷配低代码4 天前
新零售行业低代码平台应用实践
低代码·自动化·需求分析·零售·数字化·数字化转型
Vicky-Min4 天前
NetSuite 中会计期间管理Allow Non-G/L Changes参数
oracle·erp