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

相关推荐
Vicky-Min18 小时前
NetSuite Credit Memo导入的基础CSV模板
oracle·erp
电商软件开发 小银1 天前
“S2B2C模式:库存去化与渠道激励的双重解决方案”
软件开发·数字化转型·商业模式·商业思维·实体经济·s2b2c模式·商家必看
旧巷烟火2 天前
PS成长之路⑩:如何通过WBS进行项目人工成本的精准归集
sap·ps·erp
九河云2 天前
海上风电“AI偏航对风”:把发电量提升2.1%,单台年增30万度
大数据·人工智能·数字化转型
九河云2 天前
从“被动适配”到“主动重构”:企业数字化转型的底层逻辑
大数据·人工智能·安全·重构·数字化转型
电商软件开发 小银3 天前
体验式电商:送水模式引爆实体增长
软件开发·数字化转型·商业模式·实体经济·青蓝送水模式·商家必看
Light603 天前
智能重构人货场:领码SPARK破解快消行业增长困局的全景解决方案
spark·数字化转型·ai大模型·智能营销·快消行业·供应链优化
一个会的不多的人3 天前
人工智能基础篇:概念性名词浅谈(第二十二讲)
人工智能·制造·数字化转型
odoo中国4 天前
如何在 Odoo 中从 XML 文件调用函数
xml·odoo·odoo开发·调用函数
HUIBUR科技4 天前
低代码破局零售电商数字化转型:从流量争夺到效率革命
低代码·零售·数字化转型