Crm模块中onchange_stage_id不工作的问题
-
在crm_lead_view中,定义的stage_id,
<br /> <field name="stage_id" widget="statusbar" clickable="True" on_change="onchange_stage_id(stage_id)"/><br />
我理解的意思是,在切换stege时,执行这个onchange函数,因为这个stage是可以点击的,因此我通过在界面上直接直接点击statusbar切换stage,但是我在py中的onchange_stage_id函数中增加log发现,点击切换stage的时候,并没有logo输出,我甚至注释掉onchange_stage_id这个函数,也没有任何错误提示。
请问这个是怎么回事呢? -
在8.0中,在crm_lead中onchange_stage_id是工作的,但我们自建模块view中使用同样的statusbar widget,onchange却不工作。
7.0有人报bug,代码修改了,但最后没合并。
具体的讨论在这:<br / https://bugs.launchpad.net/openerp-web/+bug/1175960 br />
未合并的代码:
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2013-10-10 09:11:25 +0000
+++ addons/web/static/src/js/view_form.js 2013-10-29 12:33:10 +0000
@@ -5452,17 +5452,17 @@
}
});
},
+ set_value_selected: function(val) {
+ this.set({'value': val});
+ },
on_click_stage: function (ev) {
var self = this;
var $li = $(ev.currentTarget);
var val = parseInt($li.data("id"));
if (val != self.get('value')) {
+ this.set_value_selected(val)
this.view.recursive_save().done(function() {
- var change = {};
- change[self.name] = val;
- self.view.dataset.write(self.view.datarecord.id, change).done(function() {
- self.view.reload();
- });
+ self.view.reload();
});
}
},