如何在 Odoo 17 的 齿轮菜单⚙️ 中添加新菜单

在 Odoo 中,齿轮菜单是一个重要组件,允许用户访问与系统内不同模型和功能相关的各种配置选项和设置。它通常由位于用户界面左上角的齿轮或齿轮图标表示。下图显示了 "sale.order "模型的齿轮菜单。

默认情况下,我们在 CogMenu 中提供了导入和导出选项。

在本博客中,我们将深入探讨在齿轮菜单中添加新选项的技术问题。

要添加新选项,您需要在 static/src 目录中创建一个 XML 和 js 文件,以便在 Odoo 17 的齿轮菜单中定义一个组件。

cog_menu.js 

/** @odoo-module **/
import { DropdownItem } from "@web/core/dropdown/dropdown_item";
import { registry } from "@web/core/registry";
const { Component } = owl;
const cogMenuRegistry = registry.category("cogMenu");
export class CogMenu extends Component {async actionNewOption() {var currentModel = this.env.searchModel.resModelconsole.log(currentModel)// Include your action for the menu here...}
}
CogMenu.template = "blog_cog_menu.NewOption";
CogMenu.components = { DropdownItem };
export const CogMenuItem = {Component: CogMenu,groupNumber: 20,isDisplayed: ({ config }) => config.viewType != "form",
};
cogMenuRegistry.add("new-option", CogMenuItem, { sequence: 10 });

cog_menu.xml

<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve"><t t-name="blog_cog_menu.NewOption" owl="1"><DropdownItem class="'o_cog_menu'" onSelected.bind="actionNewOption">New Option</DropdownItem></t>
</templates>

添加上述两个文件后,所有模型的 CogMenu 菜单都将添加名为 "新选项 "的新项目。

这里定义了一个表示齿轮菜单项的组件 CogMenu。当点击 cog 菜单项时,它将处理相关操作,并在 cog 菜单注册表中注册。齿轮菜单项与一个模板相关联,并包含一个下拉菜单组件。模板在 "cog_menu.xml "文件中定义。此外,cog 菜单项会根据某些配置标准有条件地显示。

<DropdownItem class="'o_cog_menu'" onSelected.bind="actionNewOption">New Option</DropdownItem>

点击新项目 "新选项 "后,要执行的操作可以在模板中定义的函数中给出,即此处的 "actionNewOption()":

actionNewOption() {var currentModel = this.env.searchModel.resModelconsole.log(currentModel)// Include your action for the menu here...
}

您可以在此函数中定义动作。现在,如果您想获取正在点击 cogMenu 的当前模型,可以通过 "this.env.searchModel.resModel "来访问。

export const CogMenuItem = {Component: CogMenu,groupNumber: 20,isDisplayed: ({ config }) => config.viewType != "form",
};

导出名为 CogMenuItem 的对象。该对象包含将 CogMenu 组件注册为 Cog 菜单项的配置选项。

组件:指定点击 cog 菜单项时显示的组件。在本例中,它指的是 CogMenu 组件,即代码前面定义的组件。

组号(groupNumber):决定齿轮菜单项的组号。组号用于组织和分组齿轮菜单中的相关菜单项。较低的组号在齿轮菜单中显示在较高的位置。

isDisplayed(已显示):指定一个函数,用于根据特定条件决定是否显示齿轮菜单项。该函数以包含配置属性的对象为参数。

在这种情况下,它会检查配置对象(config)的 viewType 属性。如果 viewType 属性不等于 "表单",则返回 true,表示应在表单视图以外的视图中显示 cog 菜单项("新选项")。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/762806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8 克隆虚拟机

后期集群我们需要使用多台服务器&#xff0c;此处我们先克隆三台&#xff0c;master,slave01,slave02. 1.先关闭模版虚拟机。再选择 模版虚拟机hadoop100右击--》管理 --》克隆 2.下图中特别注意&#xff1a;建议使用集群的名字作为虚拟机名称。目前克隆主机master. 以上步骤完…

可帮忙指导本科生毕业设计

可帮忙指导本科生毕业设计&#xff0c;主要是机器学习算法这一块&#xff0c;使用python语言&#xff0c;我主攻的是用机器学习算法做疾病预测

京东云开发者:DDD 学习与感悟 —— 向屎山冲锋

原文地址:https://mp.weixin.qq.com/s/Hvq1ttBopbxypatVcKcLiA 软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此&#xff0c;软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计…

智慧公厕是干什么的?智慧公厕系统有哪些内容?

公共厕所一直是城市管理的难题&#xff0c;传统的管理方式无法解决诸多问题&#xff0c;如环境卫生不佳、查找厕位难、消耗品提供不及时、设施设备容易被破坏等。而随着科技的不断发展&#xff0c;智慧公厕系统应运而生&#xff0c;为公共厕所的管理带来全新的思路和解决方案。…

Swift知识点(二)

17. 字面量协议、模式匹配、条件编译 字面量&#xff08;Literal&#xff09; var age 10 var isRed false var name "Jack"上面代码中&#xff1a;10、false、"Jack"就是字面量 可以看到&#xff0c;初始化过程很简单&#xff0c;直接赋值即可 Swif…

AI应用开发-基于python的知识图谱技术

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享&#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

力扣爆刷第102天之hot100五连刷96-100

力扣爆刷第102天之hot100五连刷96-100 文章目录 力扣爆刷第102天之hot100五连刷96-100一、136. 只出现一次的数字二、169. 多数元素三、75. 颜色分类四、31. 下一个排列五、287. 寻找重复数 一、136. 只出现一次的数字 题目链接&#xff1a;https://leetcode.cn/problems/sing…

Python PyQt5

实现界面开发&#xff0c;与tkinter功能一致&#xff0c;网上已有详细资料&#xff0c;此处仅记录自己的代码&#xff1a; 文章目录 1. 实操1.1 main.py1.2. 窗体模块代码1.3. 页面效果 2. 参考资料2.1. PyQt5 参考资料2.2. tkinter 参考资料 3. 安装注意事项3.1. 下载3.2 Pyc…

python --- 练习题3

目录 1、猜数字游戏&#xff08;使用random模块完成&#xff09; &#xff1a;继上期题目&#xff0c;附加 2、用户登录注册案例 3、求50~150之间的质数是那些&#xff1f; 4、打印输出标准水仙花数&#xff0c;输出这些水仙花数 5、验证:任意一个大于9的整数减去它的各位…

Blender小:图片转mesh,并展UV

其实就这么一个插件&#xff1a;Image2Mesh https://github.com/kedepot/i2m-std blender加载完图片之后点这个就行 到了这一步还不行如果直接放到unity中使用的话&#xff0c;添加材质和贴图之后每一个小块都是独立的区域来展示贴图&#xff0c;所以需要展UV

使用Tesseract识别中文 并提高精度

1. 使用中文训练数据 在使用pytesseract进行中文文本识别时&#xff0c;确保安装了中文的训练数据文件。在Tesseract的安装目录下的tessdata文件夹中应包含一个名为chi_sim.traineddata&#xff08;简体中文&#xff09;或chi_tra.traineddata&#xff08;繁体中文&#xff09…

蓝牙HFP协议推荐的语音丢包补偿算法浮点实现的定点化

最近在做蓝牙的宽带语音通话。相对于蓝牙窄带语音&#xff0c;主要变化是把采样率从8k变到16k&#xff0c;以及编解码器从CVSD变成mSBC&#xff08;modified SBC&#xff0c;改进的SBC&#xff09;等。蓝牙语音通话相关的HFP&#xff08;Hand Free Profile&#xff09;强烈建议…

【随笔】Git -- 解决提交时本地与目标分支不一致导致提交失败(三)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

高标准农业四情监测系统的应用范围

高标准农业四情监测系统的应用范围【TH-Q1】随着科技的不断进步&#xff0c;高标准农业四情监测系统已经逐渐成为现代农业的重要组成部分。这一系统能够实时监测土壤、气候、作物生长和病虫害情况&#xff0c;为农业生产提供精准的数据支持&#xff0c;从而提高农作物的产量和质…

武汉星起航引领跨境电商新潮流,一站式孵化平台助力合作伙伴腾飞

在全球经济一体化的大趋势下&#xff0c;跨境电商以其独特的优势逐渐成为连接各国市场的桥梁。随着市场竞争的加剧&#xff0c;传统的经营模式已难以满足日益复杂的业务需求&#xff0c;合作伙伴迫切需要更为全面、专业的指导和支持。正是在这样的背景下&#xff0c;武汉星起航…

使用go将http升级为websocket的代码

package mainimport ("fmt""github.com/gorilla/websocket""log""net/http" )// 我们去定义一个 Upgrader // 这需要一个 Read 和 Write 的缓冲大小 var upgrader websocket.Upgrader{ReadBufferSize: 1024,WriteBufferSize: 1024,/…

读天下杂志读天下杂志社读天下编辑部2023年第51期目录

阅读星光 满树桃花开&#xff0c;桃李报恩来 (1) 曹万花 困境中求生&#xff0c;逆境中发展——《鲁滨孙漂流记》阅读感悟 (4) 车宝江 《诗经》对我国传统意境论的深化 (7) 成卓华、 《读天下》投稿&#xff1a;cn7kantougao163.com 英美文学作品翻译中的不对等性…

SCI论文发表很容易【1】:论文投稿

下面总结了SCI写作完成后投稿所需要的所用文件和模板 1.1 投稿:外文期刊投稿状态 (1)Submitted to Journal: 当上传结束后,显示的状态是Submitted to Journal,这个状态是自然形成的无需处理。 (2)With editor 如果在投稿的时候没有要求选择编辑,就先到主编那里,主…

AJAX-Promise

定义 Promise对象用于表示(管理)一个异步操作的最终完成&#xff08;或失败&#xff09;及其结果值。 好处&#xff1a;1&#xff09;成功和失败状态&#xff0c;可以关联对应处理程序 2&#xff09;了解axios函数内部运作机制 3&#xff09;能解决回调函数地狱问题 语法&…

1179: 判断回文数(python)

收藏 难度&#xff1a;一般 标签&#xff1a;暂无标签 题目描述 一个5位数&#xff0c;判断它是不是回文数。即12321是回文数&#xff0c;个位与万位相同&#xff0c;十位与千位相同 输入 多组数据&#xff0c;每组数据仅含一个5位数 输出 Yes 或者 No 表示该数是否为回…