odoo 一日一技 owl Registry示例 在用户菜单增加开发者模式开关

# 示例介绍

在Odoo中,开发者模式是一个非常有用的工具,它允许开发人员对系统进行调试。如果每次都要去设置中打开调试模式将非常麻烦,上篇文章讲述了如何使用 owl registry,这篇我们来进行实操。

本文将介绍如何在Odoo的用户菜单中添加一个开发者模式菜单项。效果如下图所示。

1.找到对应组件

对应菜单的源码位于GitHub地址

2.往user_menuitems中添加item,源码如下

/** @odoo-module **/

import { _t } from "@web/core/l10n/translation";
import { browser } from "@web/core/browser/browser";
import { registry } from "@web/core/registry";


function DevDebueItem(env) {
    const debugUrl = "?debug=1";
    return {
        type: "item",
        id: "DevDebug",
        description: _t("开发者模式"),
        href: debugUrl,
        callback: () => {
            // 当前页面打开(debugUrl, "_blank");
            browser.open(debugUrl, "_self");
        },
        sequence: 10,
    };
}
registry
    .category("user_menuitems")
    .add("DevDebueItem", DevDebueItem)

然后将js载入就可以了

# 扩展

如果需要去除不想要item可以使用上篇讲过的

Registry.remove(key从注册表中删除键/值对。就可以去除。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。
### 内容概要 这份《计算机试卷1》包含多个部分,主要覆盖了计算机基础知识、操作系统应用、文字处理、电子表格、演示文稿制作、互联网应用以及计算机多媒体术。试卷以单选题开始,涉及计算机历史、基本概念、硬件组成、软件系统、网络协议等。接着是操作应用部分,要求考生在给定的软件环境中完成一系列具体的计算机操作任务。 ### 适用人群 本试卷适用于计算机科学与术、信息术相关专业的学生,以及准备计算机水平考试或职业资格认证的人士。它适合那些希望检验和提升自己计算机操作能力的学习者,也适用于教育工作者作为教学评估工具。 ### 使用场景及目标 1. **学习评估**:作为教育机构的课程评估工具,帮助教师了解学生对计算机基础知识的掌握程度。 2. **自学检验**:供个人自学者检验自己的计算机操作能和理论知识,为进一步学习提供方向。 3. **职业发展**:为职场人士提供计算机能的自我提升途径,增强其在信息时代的竞争力。 4. **考试准备**:为准备计算机相关考试的考生提供实战演练的机会,加强考试自信。 5. **教学资源**:教师可以将其作为教学资源,设计课程和实验,提高教学效果。 试卷的目标是通过理论知识的测试和实践能的操作,全面提升考生的计算机应用能力。考生应掌握从基础的计算机组成原理到复杂的数据处理、演示文稿制作、网络应用以及多媒体术处理等多方面能。通过本试卷的学习与练习,考生将能够更加熟练地使用计算机解决实际问题,为未来的学术或职业生涯打下坚实的基础。
### 回答1: 抱歉,作为AI语言模型,我无法提供实际开发插件的代码或指导。但我可以提供一些提示: 1. 使用QWeb术,创建一个弹出对话框的模板 2. 在Javascript代码中,使用弹出对话框的按钮或链接绑定一个响应函数 3. 在响应函数中,使用Odoo的弹出框组件(modal)将模板显示在全屏幕 4. 为了让对话框能够自适应屏幕大小,可以使用CSS对模板进行样式调整 希望这些提示对你有所帮助,祝你编写成功! ### 回答2: 使用Odoo 16的owl来实现一个弹出对话框全屏的插件,你需要按照以下步骤进行操作: 步骤1:创建一个新的模块 首先,在Odoo的自定义模块目录中创建一个新的模块,并定义它的基本信息,例如模块的名称、版本号和作者等。 步骤2:创建XML视图文件 在新创建的模块中,创建一个XML视图文件。在这个视图文件中,定义一个按钮,当点击时触发弹出对话框的全屏显示。 步骤3:编写Javascript文件 在新创建的模块中,创建一个Javascript文件。在这个文件中,编写Odoo 16的OWL代码来实现弹出对话框的全屏显示。 具体的代码如下: 1. XML视图文件(例如,dialog.xml): ```xml <template id="custom_dialog_view"> <div class="custom_dialog"> <button type="button" t-on-click="openFullScreenDialog">Open Full Screen Dialog</button> </div> </template> ``` 2. Javascript文件(例如,custom_dialog.js): ```javascript odoo.define('custom_dialog', function (require) { "use strict"; var Widget = require('web.Widget'); var Dialog = require('web.Dialog'); var CustomDialog = Widget.extend({ template: 'custom_dialog_view', events: { 'click button': 'openFullScreenDialog', }, openFullScreenDialog: function () { var self = this; var dialog = new Dialog(this, { title: 'Full Screen Dialog', size: 'full', buttons: [ {text: "Close", close: true} ], }); dialog.open(); }, }); return CustomDialog; }); ``` 步骤4:添加模块依赖关系 在新创建的模块的manifest文件中,添加需要的模块依赖关系。 具体的代码如下: ```xml { 'name': 'Custom Dialog', 'version': '16.0.1.0.0', 'author': 'Your Name', 'depends': ['web'], 'data': [ 'views/dialog.xml', ], 'qweb': [ 'static/src/xml/dialog.xml', ], 'js': [ 'static/src/js/custom_dialog.js', ], 'application': True, } ``` 步骤5:安装和运行模块 在Odoo中,安装并运行你的新模块。 通过以上步骤,你就可以使用Odoo 16的owl来实现一个弹出对话框全屏的插件了。当点击按钮时,将弹出一个全屏的对话框,可以根据实际需求来进行定制。 ### 回答3: 在odoo16中使用Owl框架编写一个全屏弹出对话框的插件可以通过以下步骤实现: 1. 创建一个新的Odoo模块,包含必要的目录和文件结构。 2. 在模块的静态文件目录中创建一个JavaScript文件,例如`static/src/js/dialog.js`,用于编写弹出对话框的逻辑代码。 3. 在JavaScript文件中,使用Owl框架的组件和方法来创建一个全屏弹出对话框。首先,为对话框创建一个Owl组件: ``` odoo.define('your_module_name.Dialog', function (require) { "use strict"; var Dialog = require('web.Dialog'); var core = require('web.core'); var FullScreenDialog = Dialog.extend({ template: 'your_module_name.full_screen_dialog', events: _.extend({}, Dialog.prototype.events, { 'click .o_full_screen_dialog_close': '_onCancelClicked', }), init: function (parent, options) { options = options || {}; options.title = options.title || core._t('Full Screen Dialog'); options.size = options.size || 'fullscreen'; options.buttons = options.buttons || [ {text: core._t('Close'), classes: 'btn-default o_full_screen_dialog_close'}, ]; this._super(parent, options); }, willStart: function() { return this._super().then(function () { // Do any additional initialization here }); }, }); return FullScreenDialog; }); ``` 4. 在模块的视图文件中,例如`views/full_screen_dialog.xml`,使用`<t t-extend="Dialog">`来扩展Odoo的原生对话框组件,并在其中包含全屏对话框的HTML结构: ``` <templates> <t t-extend="Dialog"> <t t-jquery=".modal-body" t-operation="replace"> <div class="o_full_screen_dialog_container"> <!-- Add your full screen dialog content here --> </div> </t> </t> </templates> ``` 5. 在模块的菜单配置文件中,例如`views/menu.xml`,创建一个菜单项来触发全屏对话框的显示: ``` <odoo> <data> <menuitem id="menu_full_screen_dialog" name="Full Screen Dialog" sequence="10"/> <record id="action_full_screen_dialog" model="ir.actions.client"> <field name="name">Full Screen Dialog</field> <field name="tag">your_module_name.dialog</field> <field name="type">ir.actions.client</field> </record> <menuitem id="menu_parent" name="Menu Parent" sequence="20"> <menuitem id="menu_child" name="Menu Child" parent="menu_parent" action="action_full_screen_dialog"/> </menuitem> </data> </odoo> ``` 通过以上步骤,你可以在Odoo 16中使用Owl框架编写一个全屏弹出对话框的插件。你可以根据你的具体需求对对话框的样式和功能进行个性化定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值