代码之家  ›  专栏  ›  技术社区  ›  cool

Odoo-自定义模板菜单加载

  •  1
  • cool  · 技术社区  · 6 年前

    这很好,但当我们渲染模板时,它是空白的。我想加载这个模板的标准后端菜单-和模板主体上的工作。

    是否有我可以继承的视图,或者我可以使用的任何方法,在那里我可以创建一个模板,该模板将自动加载该模板的顶部菜单栏?


    我试图继承” web.webclient_bootstrap “模板,并将内容附加到此模板的主div中,但它不起作用。当您使用此模板时,会话信息似乎为空?

    1 回复  |  直到 6 年前
        1
  •  7
  •   cool    6 年前

    最初,我们有一个错误的假设,即这可以通过使用控制器进行渲染来实现。需要了解的是-odoo后端呈现为“单个js页面”,仪表板端的任何定制(默认情况下,odoo不提供,您可以在视图中定义这些定制)都需要通过创建js小部件和直接使用javascript修改dom对象来完成。

    Solution bellow表示仪表板侧的一个操作/页面-该页面将呈现空白页面,其中只有“测试”字。

    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
        }
    });
    

    哪里 将要调用的模板的名称,该模板带有参数,与所有html数据一起插入到包含类的dom元素中 .仪表板包装 (存在于另一个名为 自定义仪表板 在类的顶部定义。