首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在odoo中重写action_registry js [12.0]

在 Odoo 中,可以通过重写 action_registry js 来修改和扩展操作行为。action_registry 是一个 JavaScript 对象,它用于注册和管理 Odoo 的客户端操作。

要在 Odoo 中重写 action_registry js,可以按照以下步骤进行:

  1. 创建一个自定义的模块,假设命名为 custom_module。
  2. 在 custom_module 中创建一个名为 assets 的文件夹,并在该文件夹中创建一个名为 custom_action_registry.js 的文件。
  3. 在 custom_action_registry.js 文件中编写重写的逻辑。

在重写的逻辑中,首先需要定义一个新的操作行为。可以通过继承和扩展现有的操作行为或完全自定义一个新的操作行为。以下是一个示例:

代码语言:txt
复制
odoo.define('custom_module.custom_action_registry', function (require) {
    "use strict";

    var core = require('web.core');
    var ActionRegistry = require('web.ActionRegistry');

    var _super = ActionRegistry.prototype;
    var CustomActionRegistry = ActionRegistry.include({
        // 重写现有操作行为
        custom_action: function () {
            // 添加自定义的操作逻辑
            // ...
        },

        // 扩展现有操作行为
        _triggerCustomAction: function (action, options) {
            // 添加扩展的操作逻辑
            // ...

            // 调用原始操作行为的方法
            _super._triggerCustomAction.apply(this, arguments);
        }
    });

    return CustomActionRegistry;
});

在以上示例中,我们扩展了 ActionRegistry 并添加了两个新的操作行为:custom_action 和 _triggerCustomAction。可以根据实际需求来定义和实现自己的操作行为。

  1. 最后,将 custom_action_registry.js 添加到 Odoo 的 assets 中,并在自定义模块的 manifest 文件中引入该文件。

完成上述步骤后,在 Odoo 中启用自定义模块,重写的 action_registry js 将会生效,并替代原始的 action_registry。

请注意,以上示例只是一个简单的重写操作的示例,实际的重写逻辑会根据具体的需求和场景而有所不同。具体的重写方式和方法可以根据实际需求进行调整和修改。

此外,如果你对 Odoo 的相关概念和技术有进一步的学习和了解需求,可以参考腾讯云的 Odoo 相关产品和服务,如腾讯云容器服务等,以提高系统的稳定性、扩展性和安全性。详情请参考:腾讯云容器服务

请注意,本答案仅为参考,具体实施步骤可能需要根据实际情况和需求进行调整和修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • odoo 开发入门教程系列-模块交互

    模块交互 在上一章,我们使用继承来修改模块的行为。在我们的房地产场景,我们希望更进一步,能够为客户生成发票。...Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序创建发票 一个具体示例: 记账凭证(Account...现在,重写操作,仅返回super调用,拿个例子来说可能更清楚: from odoo import models class InheritedModel(models.Model): _inherit...提示: 为了确保它正常工作,添加一个print 或者调试断点到重写的方法。...如果重写生效,我们可以继续创建发票。不幸的是,没有一种简单的方法可以知道如何在Odoo创建任何给定的对象。大多数时候,有必要查看其模型,以找到所需的字段并提供适当的值。

    1.7K10

    odoo 权限管理学习总结

    12.0/base_user_role/ 权限管理 简介 为了更好的熟悉权限,我们先来了解下用户,odoo的用户分为三类: 内部用户(Internal User): 企业内部的用户,拥有对系统内部的访问权限...那么在odoo如何区分用户类型以及如何做权限控制的呢?...如果文件的部分数据需要应用一次,则可以将文件的这部分放在,如下: <!...模型访问权限(Access Rights,表级别) 当模型没有定义任何访问权限时,odoo会认为没有任何用户可以访问数据,并在日志打印: 2022-12-14 09:01:38,994 32508.../addons/security.html#record-rules 字段权限(Field Access,字段级别) ORM字段可以具有提供组列表的groups属性(值为逗号分隔的组XML ID列表,groups

    10.2K20

    Odoo开发指北 01 初识Odoo

    然后使用自己的模块:把自己的模块路径设置到odoo,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。...提供的ORM接口匹配,也就是说这些模型类会自动存入sql。...security:对模块的访问权限控制,在ir.model.access.csv文件定义。还可以新建一个record_rule.xml,在其中进行更细化的权限控制。...static:静态资源文件,css、js等 views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述) init.py manifest.py:描述文件 脚手架命令   使用...Odoo 脚手架 odoo-bin scaffold 命令新建了我们的 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需的字段有哪些,然后定义模型类

    2.4K30

    在Ubuntu 16.04上安装Odoo 10

    请务必按照本节的步骤作为有限的非root用户(而非odoo用户)。...通过Node.js和npm安装更少的CSS 从nodesource 下载并运行nodejs安装脚本: sudo curl -sL https://deb.nodesource.com/setup_4.x...| sudo -E bash - 现在我们的存储库列表已使用apt更新安装nodejs: sudo apt install -y nodejs 安装较新版本的Less via npm,Node.js包管理器...对于正常安装,您可以跳过此行,并且此Odoo实例将默认连接到端口8069。 注意 配置日志部分中所述,在Ubuntu 16.04有很多Odoo日志记录选项。...请记住,journald将始终捕获主要的Odoo服务活动(服务启动,停止,重新启动,错误),使用单独的日志文件将仅排除日志“信息”消息,Web服务器消息,呈现引擎等。

    3.3K42

    odoo ORM API学习总结兼orm学习教程

    {'draft': [('readonly', False)], 'confirm': [('readonly', False)]}) groups (str) – 值为逗号分隔的组XML ID列表,groups...odoo.fields.Char类型 odoo.fields.active 切换记录的全局可见性,如果active设置为False,则记录在大多数搜索和列表不可见。...必须重写create,以确保始终触发约束(例如,测试是否缺少值) odoo.api.depends(*args)[源代码] 返回一个装饰器,该装饰器指定compute方法的字段依赖关系(对于新型函数字段...进行格式化 odoo.fields.One2many和odoo.fields.Many2many使用特殊的“命令”格式来操作存储在字段/与字段关联的记录集。...如果未提供或者为[]则表示所有 Model.fields_view_get([view_id | view_type='form'])[源代码] 获取所请求视图的详细组成,字段、模型、视图架构

    13.5K10

    ​在tinycolinux上安装sandstorm davros

    :odoo,seafile》,我们不断提到“以中心存储为后端的webapp设计”,因为以存储为中心符合个人操作PC的习惯。...对于服务器和运维人员也是一样,网站体APP也可以产生海量数据,对于迁移和备份是十分重要的,这种存储后端支持要么被集成在appstack(像seafile使用专门的repo server,odoo使用postresgl...),要么被app级自身提供owncloud的图床(其实我更倾向于不使用专门的appstack组件的方式比如seafile的文件服务器,它破坏了logic server就是langserver的事实,复杂化了不应常变动的...我们要做的,就是先提取sandstorm的davros为免sandstorm版本先用起来因为它本身也是一个独立的单js app。分离掉与sandstorm的xaas管理层薄薄的联系就可以了。...的0.21.7 release,将davros的根的所有内容全选,上传到/usr/local/nodejs根目录,cd到此 我们看到js npm的包管理还是蛮好的,每一个包都维护一个package.json

    82020

    python爬虫破解js加密

    通过浏览器开发者工具的Sources或Network标签页面进行分析,可以找到负责加密的js文件和相关函数。...函数result = context.call("add", 1, 2)print(result) # 输出 3上述代码显示了如何在Python环境中使用execjs模块执行简单的JS函数。...重写JS加密函数在了解了加密逻辑之后,可以尝试在Python重写JS加密函数。这个过程可能需要Python的hashlibibibi。、在JS模拟加密算法,Crypto和加密库。...hashlib库的md5函数,模拟了JS相应的Md5加密过程。...逆向工程方法有时JS加密逻辑太复杂,仅仅通过理解和重写来实现加密和破解是不够的。此时,可以通过修改网页JS代码,输出加密过程的关键变量,帮助理解加密过程,甚至直接获取生成的加密数据。

    29210

    ​在dbcolinux上安装cozy-light

    本文关键字:js个人云存储,cozy,node-legcay和谐模式 在前面的《appstacks》,《apps》系列文章,我们大力涉及到带存储支持的云程序,与语言选型放一起,我们写了py的2个(seafile...,odoo),php的2个(owncloud,mongopress),js的一个davros。...并一直扩展它们的意义,认为它是一种小可视为与common storage based webapp合作(ocwp ownnote,mongpress,odoo),大可扩展为paas,webos的东西(sandstorm...而它其实也是作为PAAS存在的它包装了一个node appstack(meteor),却允许任何程序php等安装入其中,它的PAAS还在于它的虚拟化,其实我之前一直很抵抗sandstorm的,它跟docker...好了,说了这么多,作为js personal cloud且采用cloudwall的另一个例子,现在来看我们的cozy: cozy其实在《发布mineportalv2》我们早提到过cozy,就像sandstorm

    83810

    GitLab 12 跨版本 13 升级

    而且在升级过程,也会遇到一些额外的小问题,这里我们就来聊聊如何在有“升级额外操作”的背景下进行应用升级。 写在前面 因为我们使用的是容器方案,所以升级还是比较轻松的。...如果你还未曾搭建 GitLab ,可以参考以往文章的gitlab标签的文章内容。 确认升级路线 官方首先明确了几种不同的升级路线图,其中各自有一些关键升级版本。...目标版本13.0.1 当前版本大于等于 11.10.8,则需要使用的升级路线为: 11.10.5-> 11.11.8-> 12.0.12-> 12.10.6->13.0.1 其中,11.11、12.0、...解决方案:将提示的不支持的配置项目删除掉或者注释掉就好了。 比如 # gitlab_monitor['enable'] = false。..., .bash_logout 可能存在下面的内容。

    2.6K21

    GitLab 12 跨版本 13 升级

    而且在升级过程,也会遇到一些额外的小问题,这里我们就来聊聊如何在有“升级额外操作”的背景下进行应用升级。 写在前面 因为我们使用的是容器方案,所以升级还是比较轻松的。...如果你还未曾搭建 GitLab ,可以参考以往文章的gitlab标签的文章内容。 确认升级路线 官方首先明确了几种不同的升级路线图,其中各自有一些关键升级版本。...目标版本13.0.1 当前版本大于等于 11.10.8,则需要使用的升级路线为: 11.10.5-> 11.11.8-> 12.0.12-> 12.10.6->13.0.1 其中,11.11、12.0、...解决方案:将提示的不支持的配置项目删除掉或者注释掉就好了。 比如 # gitlab_monitor['enable'] = false。..., .bash_logout 可能存在下面的内容。

    1.4K11

    contextIsolation | Electron 安全

    主进程在 Node.js 环境运行,这意味着它具有 require 模块和使用所有 Node.js API 的能力。...这些脚本虽运行于渲染器的环境,却因能访问 Node.js API 而拥有了更多的权限。...,在 Electron 5.0 , contextIsolation 的默认值为 false Electron 12.0 由于之前安装过 NodeJS 14.16.0 ,所以这里直接切换版本即可 部署好环境后进行测试...总结 在 Electron 12.0 ,contextIsolation 与其他两项配置无关,关闭 contextIsolation 后,即使开启了沙箱,依旧不会隔离上下文 Electron 29.3...将 indexOf 的代码给改了,无论谁调用,均返回 1 ,这样就绕过了安全检查 再次点击就直接打开对应的二进制文件了,实现任意文件执行的效果 3) 重写 require 有些程序在 Preload 内部重新封装了

    38310

    第十四天 面向对象-eclipse导jar包&修饰符&自定义数据类型【悟空教程】

    abstract与final不能共用 被final修饰的方法不能被重写,abstract修饰的方法必须被子类重写 public与private不能共用 只表示一个访问权限,又公共又私有是不可能的。...Eclipse的JRE System Library是默认的Eclipse依赖JRE的类库。在该位置可以查找到平常使用的String类、Random类、Math类等。...1.2.3 项目的jar包导出 jar包是.class的压缩文件,一般一个jar包包含许多.class文件。我们可以将一个jar包加入到项目的依赖,从而该项目可以使用该jar下的所有类。..., 10.0); double chengJi = mm.chengJi(12.0, 10.0); // System.out.println(sum2Times); System.out.println...自定义类型作为集合/数组元素类型,: 上例,所有员工便是集合存储自定义类型。 在以上需求基础上,使用多态、匿名对象、匿名内部类。 一切需要对象时,均可以使用多态、匿名对象、匿名内部类。

    41020

    版本12——Wolfram语言和Mathematica的一次飞跃

    但后来当我们解释这个函数如何在列表的一个子集运行,以及它和Map如何相像,只不过它是同时作用在多个元素上而已时,我们决定使用SubsetMap这个名字。...此后,我们又引入了其他超级函数,SequencePredict、ActiveClassification和FeatureExtract等。 在版本12.0,我们又引入了几个重要的机器学习超级函数。...顺便说一句,在版本12.0,我们添加了各种小的“自然语言便利功能”,Synonyms 和 Antonyms: ? 计算化学 12.0版在计算化学方面带来了“惊喜”。...在版本12.0,我们已经得到了像“原始凸优化”函数,SemidefiniteOptimization(处理线性矩阵不等式)和ConicOptimization(处理线性向量不等式)。...作为更新的一部分,我们对20多年来开发和完善的大量代码进行了重写与重构,但结果是在版本12.0,Mac上我们系统的所有内容都完全是64位,并使用最新的Cocoa API。

    3.2K30

    ​一种新的DSL生成和通用语言框架:pypy

    这些在我以前langsys系列文章中都不断涉及: 在《发布odoo8》时我们谈到主从语言,lua+c,or py+cpp----这也是传统语言选型的经典标准---也是初级标准,注意到因为大凡脚本语言系统...#重写forms而不依赖native forms, 这实际上是要统一clr上的生态使之脱离对本地的依赖,只是将一切放在虚拟机的运行时里,明显效率是个问题。...支持clang实现的那部分。...類型推導是編譯的步驟相當重要的一步,做了類型推導之後,就可以靜態地把 RPython 的代碼直接翻譯成 C 代碼然後靜態編譯了。...而其实rpython可以编译到js的,这使得py码代码迁移到web是一个巨大的帮助,可以将整个pypy编译为pypy.js放在浏览器js有asm.js产品,可以将浏览器js+css+html通过模板编程控制手段化为

    58130

    WebAssembly已支持所有主流浏览器

    无处不在的客户支持推动了asm.js的早期成功。由于asm.js是JavaScript的纯子集,它无需修改就可以在任何浏览器运行。...可以选择使用JavaScript之外的其他语言,将WebAssembly作为C和C ++的编译器目标,还可提供额外的语言支持。...游戏公司是WebAssembly和asm.js的早期使用者。Epic和Unity率先把他们产品级的游戏引擎发布在网络上,而不用重写JavaScript的C ++代码库。...和WebAssembly对于游戏行业来说重要性显而易见,因为他们投入了大量的成本写C ++程序,肯定不想为了web而重写”,Wagner说, “现在我们看到很多人使用WebAssembly做新项目。...为了进一步深入了解,您可以检查WebAssembly二进制文件,以了解WebAssembly代码如何在二进制级别进行编码。

    3.3K10
    领券