odoo以只读模式打开form视图,刷新浏览器以后变成了只读模式
问题描述:最近做项目的时候发现,我以只读模式打开tree视图的一条记录,进入form视图,点击浏览器的刷新按钮,form视图上方的编辑按钮显示出来了,并且该记录变成了可编辑状态
原因分析:浏览器刷新以后,视图重新渲染上方的按钮时出现问题.
解决方式:继承odoo底层路径为:odoo/addons/web/static/src/js/views/form下面的form_controller.js修改只读模式时的按钮渲染方式
在form标签中加入js_class属性:
js_class="extend_form_view"
在static文件夹中新建文件extend_form_view.js
odoo.define('extend_form_view', function (require) {
'use strict';
var FormView = require('web.FormView');
var FormController = require('web.FormController');
var view_registry = require('web.view_registry');
var core = require('web.core');
var _t = core._t;
var ExtendFromController = FormController.extend({
renderButtons: function ($node) {
var self = this;
var $footer = this.footerToButtons ? this.$('footer') : null;
var mustRenderFooterButtons = $footer && $footer.length;
if (!this.defaultButtons && !mustRenderFooterButtons) {
return;
}
this.$buttons = $('<div/>');
if (self.mode === 'readonly') {
if (mustRenderFooterButtons) {
this.$buttons.append($footer);
} else {
this.$buttons.on("click", ".o_form_button_return", function () {
self.trigger_up("history_back");
});
}
} else{
if (mustRenderFooterButtons) {
this.$buttons.append($footer);
} else {
this.$buttons.append(core.qweb.render("FormView.buttons", {widget: this}));
this.$buttons.on('click', '.o_form_button_edit', this._onEdit.bind(this));
this.$buttons.on('click', '.o_form_button_create', this._onCreate.bind(this));
this.$buttons.on('click', '.o_form_button_save', this._onSave.bind(this));
this.$buttons.on('click', '.o_form_button_cancel', this._onDiscard.bind(this));
//返回按钮
this.$buttons.on("click", ".o_form_button_return", function () {
self.trigger_up("history_back");
});
this._updateButtons();
}
}
this.$buttons.appendTo($node);
},
})
var extend_form_view = FormView.extend({
config: _.extend({}, FormView.prototype.config, {
Controller: ExtendFromController
})
});
view_registry.add('extend_form_view', extend_form_view);
return extend_form_view
});
在/views/webassets.xml文件中引入新增的js文件路径即可
<script type="text/javascript" src="/fnt_fm1212/static/js/extend_form_view.js"></script>

浙公网安备 33010602011771号