gpt4 book ai didi

python - Odoo - 自定义模板菜单加载

转载 作者:太空狗 更新时间:2023-10-29 23:56:38 24 4
gpt4 key购买 nike

目前我正在开发 odoo 模块,它需要有自己的(定制和设计的)仪表板。因此,只有当用户登录到后端(用户可以在后端管理应用程序、设置和类似内容)时,此仪表板才会可见。

似乎唯一可能的方法是创建一个单独的 Controller ,呈现为该 Controller /仪表板实现的特定模板,并将其与菜单按钮绑定(bind)。

这一切都很好,但是当我们渲染模板时,它是空白的。我想为此模板加载标准后端菜单 - 并且只在模板主体上工作。

有没有我可以继承的 View ,或者我可以使用的任何方式,我可以在其中创建一个模板,该模板将为该模板自动加载顶部菜单栏?


我试图继承“web.webclient_bootstrap”模板,并在该模板的主 div 中追加内容,但它不起作用。好像在继承这个模板的时候,session_info 是空的?

最佳答案

在研究了 odoo 源代码之后 - 与更多参与 odoo 开发的人进行了讨论 - 总的来说 - 更多地使用 odoo - 我找到了如何做到这一点的方法。

最初的问题有一个错误的假设——这可以通过使用 Controller 进行渲染来实现。重要的是要理解 - odoo 后端呈现为“单个 js 页面”,并且仪表板端的任何类型的自定义(odoo 默认不提供,您可以在 View 中定义) - 需要由完成直接使用 javascript 创建 js 小部件和更改 dom 对象。

下面的解决方案表示仪表板端的操作/页面 - 这将呈现空白页面,上面只有“测试”字样。

odoo.define("mymodule.customdashboard", function (require) {
"use strict";

var core = require("web.core");
var AbstractAction = require("web.AbstractAction");
var Widget = require("web.Widget");

var qweb = core.qweb;
var _t = core._t;

require("web.dom_ready");

var CustomDashboard = AbstractAction.extend({
template: "custom_dashboard",
events: {
},

init: function(parent, action){
this._super.apply(this, arguments);
var options = action.params || {};
this.params = options;
},

start: function(){
this.$(".dashboard-wrapper").append(qweb.render("campaign_dashboard_campaign_list", {"someArgData": "Test"}));
}
});

core.action_registry.add("custom.dashboard", CustomDashboard);

return {
CustomDashboard: CustomDashboard
}
});

campaign_dashboard_campaign_list 是模板的名称,它将被调用并带有参数,将所有 html 数据插入到包含类 .dashboard-wrapper (存在于类顶部定义的另一个名为 custom_dashboard 的模板中。

关于python - Odoo - 自定义模板菜单加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53717114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com