我在https://www.odoo.com/apps/modules/8.0/web_menu_hide_8.0/上安装了网络隐藏菜单
我修改为在 Odoo 10 上使用它,但是如果我们按下隐藏按钮,表单将调整为全宽,如果我们在按下隐藏按钮后更改为另一个视图,表单页面将保持与原始页面相同(不完整宽度)。
所以我需要在页面渲染后在表单视图上调整类“o_form_sheet”。我可以知道如何使用 javascript 做到这一点吗?我需要扩展哪个类和方法?
我在https://www.odoo.com/apps/modules/8.0/web_menu_hide_8.0/上安装了网络隐藏菜单
我修改为在 Odoo 10 上使用它,但是如果我们按下隐藏按钮,表单将调整为全宽,如果我们在按下隐藏按钮后更改为另一个视图,表单页面将保持与原始页面相同(不完整宽度)。
所以我需要在页面渲染后在表单视图上调整类“o_form_sheet”。我可以知道如何使用 javascript 做到这一点吗?我需要扩展哪个类和方法?
我要回答我自己的问题。经过一番研究,我发现最好的选择是使用 load_views 函数继承 ViewManager 小部件。
var ViewManager = require('web.ViewManager');
ViewManager.include({
load_views: function (load_fields) {
var self = this;
// Check if left menu visible
var root=self.$el.parents();
var visible=(root.find('.o_sub_menu').css('display') != 'none')
if (visible) {
// Show menu and resize form components to original values
root.find('.o_form_sheet_bg').css('padding', self.sheetbg_padding);
root.find('.o_form_sheet').css('max-width', self.sheetbg_maxwidth);
root.find('.o_form_view div.oe_chatter').css('max-width', self.chatter_maxwidth);
} else {
// Hide menu and save original values
self.sheetbg_padding=root.find('.o_form_sheet_bg').css('padding');
root.find('.o_form_sheet_bg').css('padding', '16px');
self.sheetbg_maxwidth=root.find('.o_form_sheet').css('max-width');
root.find('.o_form_sheet').css('max-width', '100%');
self.chatter_maxwidth=root.find('.o_form_view div.oe_chatter').css('max-width');
root.find('.o_form_view div.oe_chatter').css('max-width','100%');
}
return this._super.apply(this, arguments, load_fields);
},
});