odoo中阻止点击list视图中的一条记录弹出form视图

在odoo中,默认点击tree视图中的一条记录,会打开相应的form视图,如果加了editable="true",

这个行为就阻止了,但是呢,加了editable="true", 但是当所有的字段都是只读的时候,点击记录又会弹出form视图,而且就算不定义form视图,它也会自动生成一个form视图打开。 怎么阻止这一行为呢?

答案其实也很简单, tree标签加一个属性

xml 复制代码
<tree no_open=1>

实现原理在list_renderer.js中

js 复制代码
  async onCellClicked(record, column, ev) {
        if (ev.target.special_click) {
            return;
        }
        debugger
        const recordAfterResequence = async () => {
            const recordIndex = this.props.list.records.indexOf(record);
            await this.resequencePromise;
            // row might have changed record after resequence
            record = this.props.list.records[recordIndex] || record;
        };

        if ((this.props.list.model.multiEdit && record.selected) || this.isInlineEditable(record)) {
            if (record.isInEdition && this.props.list.editedRecord === record) {
                const cell = this.tableRef.el.querySelector(
                    `.o_selected_row td[name='${column.name}']`
                );
                if (cell && containsActiveElement(cell)) {
                    this.lastEditedCell = { column, record };
                    // Cell is already focused.
                    return;
                }
                this.focusCell(column);
                this.cellToFocus = null;
            } else {
                await recordAfterResequence();
                await record.switchMode("edit");
                this.cellToFocus = { column, record };
            }
        } else if (this.props.list.editedRecord && this.props.list.editedRecord !== record) {
            this.props.list.unselectRecord(true);
        } else if (!this.props.archInfo.noOpen) {
            this.props.openRecord(record);
        }
    }

起作用的是最后这句

js 复制代码
else if (!this.props.archInfo.noOpen) {
            this.props.openRecord(record);
        }

有机会list_renderer 一定要仔细研究一下的。

相关推荐
odoo中国4 天前
Odoo 19 财务功能概述:财务模块中的定期存货计价(期末库存结转)
odoo·库存管理·财务管理·odoo19·库存计价·库存估值·期末库存结转
odoo中国5 天前
Odoo 19 库存功能实操:产品包装的设置与管理
odoo·仓库管理·odoo19·包装设置与管理
云草桑6 天前
Odoo 19.0 Docker Desktop快速部署 和Ubuntu24上安装1panel面板
运维·docker·容器·odoo
odoo中国10 天前
Odoo 19 采购功能:如何创建与管理产品类别,实现更智能的采购
odoo·odoo19·产品类别·采购类别·产品类别配置
Odoo老杨16 天前
成长型企业 ERP 系统选型:SAP 与 Odoo 免费开源 ERP 全面对比
sap·odoo·erp·中小企业数字化
linjun1863492 个月前
Odoo MTO 和智能MTO 完全解读:从源码到实战
odoo
云草桑2 个月前
15分钟快速了解 Odoo
数据库·python·docker·postgresql·.net·odoo
山上春2 个月前
Odoo 18 Web 客户端架构深度解析与 Navbar 差异化定制研究报告
odoo
山上春2 个月前
ONLYOFFICE Odoo 集成架构深度解析与实战手册(odoo文件预览方案)
架构·odoo
odoo中国3 个月前
如何在 Odoo 19 中创建日历视图
odoo·odoo19·odoo 视图开发·日历视图配置·alendar 标签使用·odoo 日程管理