OpenERP 6.1 - 按钮单击时不应关闭向导

时间:2014-07-01 01:19:40

标签: button popup openerp popupwindow

您好我在我的向导表单上添加了一个按钮以打开另一个向导,但我不想关闭现有向导,另一个向导的原因只是在用户过滤后传递一些值并选择少量数据。

在我的向导表单上,我添加了一个带有以下代码的按钮

>   def action_process_pickings(self, cr, uid, ids, context=None):
>         if context is None: context = {}
>         context = dict(context, active_ids=ids, active_model=self._name)
>         
>         return {
>             'name':_("Picking to Process"),
>             'view_mode': 'form',
>             'view_id': False,
>             'view_type': 'form',
>             'res_model': 'packing.wizard',
>             'res_id': ids[0],
>             'type': 'ir.actions.act_window',
>             'nodestroy': True,
>             'target': 'new',
>             'domain': '[]',
>             'context': context,
>         }

我认为解决方案是将“nodestroy”设置为等于True,它适用于OpenERP 6.0& 7.0但不是6.1,任何解决方案?

2 个答案:

答案 0 :(得分:0)

从内存开始,但是如果你有按钮方法返回None而不是窗口动作,如果会记录警告但是保持窗口就位。很确定这适用于6.1

答案 1 :(得分:0)

回答我自己的问题, 而不是使现有的窗口保持打开状态,最好从第二个弹出窗口返回到第一个窗口的窗口操作。这是我在6.1中找到的最佳方式

例如:

  • 我有一个带模型A
  • 的osv内存弹出窗口
  • 我添加了一个按钮,用模型B
  • 打开另一个osv内存弹出窗口
  • 然后在模型B上,我将返回一些模型A

模型A上的按钮代码为:

  

def buttonA(self,cr,uid,id,context = None):           如果context是None:context = {}           context = dict(context,active_ids = ids,active_model = self._name)

    return {
        'name':_("Picking to Process"),
        'view_mode': 'form',
        'view_id': False,
        'view_type': 'form',
        'res_model': 'b',
        'type': 'ir.actions.act_window',
        'nodestroy': True,
        'target': 'new',
        'domain': '[]',
        'context': context,
    }

然后,模型B上按钮的代码只是更新数据A,它应该是什么,并返回到带有Windows动作的模型A

   def buttonB(self, cr, uid, ids, context=None):
         if context is None: context = {}         
         self.pool.get('a').write(cr, uid, { [the value u want to update] })
         return {
             'name':_("Picking to Process"),
             'view_mode': 'form',
             'view_id': False,
             'view_type': 'form',
             'res_model': 'a,
             'res_id': context.get('active_ids')[0],
             'type': 'ir.actions.act_window',
             'nodestroy': True,
             'target': 'new',
             'domain': '[]',
             'context': context,
         }