我有一个列出很多项目的视图。当用户选择任何人时,会出现具有扩展功能的编辑向导。向导的某些操作使其关闭但父视图未刷新显示旧数据。
我需要在OpenERP向导视图的按钮中执行的操作刷新父视图。
我试过了:
def some_action(self, cr, uid, ids, context=None):
....
res = {'type':'ir.actions.act_window_close', 'auto_refresh':'1' }
return res
并尝试了这个:
def some_action(self, cr, uid, ids, context=None):
....
win_obj = self.pool.get('ir.actions.act_window')
res = win_obj.for_xml_id(cr, uid, 'parent_module', 'parent_view', context)
res = {'type':'ir.actions.act_window_close', 'auto_refresh':'1' }
return res
和此:
def some_action(self, cr, uid, ids, context=None):
...
mod_obj = self.pool.get('ir.model.data')
view_rec = mod_obj.get_object_reference(cr, uid, 'hr_holidays', 'open_ask_holidays')
view_id = view_rec and view_rec[1] or False
return {
'view_type': 'form',
'view_id' : [view_id],
'view_mode': 'form',
'res_model': 'model.obj.here',
'type': 'ir.actions.act_window',
'context': context
}
但没有任何作用......
答案 0 :(得分:6)
正确的形式是:
def some_action(self, cr, uid, ids, context=None):
....
res = { 'type': 'ir.actions.client', 'tag': 'reload' }
return res
我在这里找到了它:
"How to refresh the original view after wizard actions?". OpenERP Knowledge base
答案 1 :(得分:2)
在@yucer提供的链接后,我发现可以刷新字段值而无需重新加载视图。
openerp.your_module_name = function (instance) {
instance.web.ActionManager = instance.web.ActionManager.extend({
ir_actions_act_close_wizard_and_refresh_view: function (action, options) {
if (!this.dialog) {
options.on_close();
}
this.dialog_stop();
this.inner_widget.views[this.inner_widget.active_view].controller.reload();
return $.when();
},
});
}
关闭向导视图时调用操作:
return { 'type' : 'ir.actions.act_close_wizard_and_refresh_view' }