【问题标题】:Odoo 12 : How to pop up a message when "Save" button is clicked on sale.order model?Odoo 12:如何在 sale.order 模型上单击“保存”按钮时弹出消息?
【发布时间】:2019-09-09 09:17:28
【问题描述】:


我被卡住了 3 个小时。
当我的条件满足时(_some 字段等于 something),当用户单击“保存”按钮时,我想显示一个弹出窗口(一个非阻塞的)在 sale.order 模型的记录表单视图上()。
应该在保存按钮执行其默认操作后触发弹出窗口,因为我需要检查数据库中的条件是否满足.
我发现 here 如何从 Odoo 中的 javascript 获取 model.Models。
我还发现我需要重写 o_form_button_edit 来进行更改,但我不知道该怎么做,也不知道它是否对其他模型有影响,因为其他人使用它。

this.$buttons.on('click', '.o_form_button_edit', this._onEdit.bind(this));

我想知道我的方法是否可以做到这一点?如果没有,你能推荐另一个吗? 你能帮助我吗?非常感谢。
PS:我需要一个弹出窗口,因为用户可以在保存记录时接受他的更改或丢弃它。如果discard,我需要重新打开o_form_button_edit,如果没有,我们什么都不做,因为我们已经调用了write方法。

【问题讨论】:

标签: javascript qweb odoo-12


【解决方案1】:

这是一个代码 sn-p 做你想做的事:

var FormController = require('web.FormController');
var ExtendFormController = FormController.include({
    saveRecord: function () {
        var res = this._super.apply(this, arguments);
        if(this.modelName == 'project.task'){
            var self = this;
            res.then(function(changedFields){
                console.log(changedFields);
                console.log(self.modelName);
                self.do_notify('title', 'message');
                // you can call a method on the server like this
                self._rpc({
                        model: self.modelName,
                        method: 'search_read',
                        fields: ['name'],
                        context: self.context,
                    }).then(function(result){
                        console.log('rpc result');
                        console.log(result);
                    })
            });
        }
        return res;
    }
});

点击保存后的截图:

您还需要以同样的方式继承 createRecord() 方法。

几点说明:

  • 第一个控制台日志行说:["name"] 是 changedFields 的值(我只是在点击保存之前更改了任务的名称)
  • 我正在处理 project.task 对象,但您可以将其更改为 sale.order :)

official documentation 很有帮助

【讨论】:

  • 你是我的救星。让我测试它并在之后投票。非常感谢你
  • :) 很高兴为您提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多