如果表单是通过OPENERP中的特定按钮定向的,则显示表单按钮

时间:2014-08-15 05:10:22

标签: python xml forms openerp

我想知道,如果可以根据调用此表单的方式设置表单按钮的可见性。喜欢有两种形式' A'和' B'。现在表格上的按钮' A'打电话给表格' B'。我只想展示表格' B'按钮只有在通过特定形式通过“A'按钮。我不知道这将如何实现,但我想我必须在表单B的按钮上设置属性。但是如何检查是否单击了表单A按钮。多数民众赞成在哪里我卡住了。我需要一些指导。非常感谢。  调用表单的代码' b':

def edits(self,cr,uid,ids,context=None):
    for id in ids:
        deg_obj=self.pool.get('deg.form').browse(cr,uid,id)
        my_id=int(deg_obj.my_products)

    return{
          'view_type': 'form',
          'view_mode': 'form',  
          'res_model': 'product.product',
          'res_id':my_id,
          'type': 'ir.actions.act_window',
          'nodestroy':False,
          'target': 'inline',          
          }

我想要表格' b'只有当我通过“编辑”打开按钮才能看到按钮。按钮。

2 个答案:

答案 0 :(得分:0)

打开表格' B'从表单' A'中,您需要在对象中定义一个方法来调用表单' B'。在此方法上,您可以设置上下文,例如,放置

def edits(self,cr,uid,ids,context=None):
    if context is None:
        context = {}

    for id in ids:
        deg_obj=self.pool.get('deg.form').browse(cr,uid,id)
        my_id=int(deg_obj.my_products)

    context['from_edits'] = True

    return{
      'view_type': 'form',
      'view_mode': 'form',  
      'res_model': 'product.product',
      'res_id':my_id,
      'type': 'ir.actions.act_window',
      'nodestroy':False,
      'target': 'inline',       
      'context': context,   
      }

并在表单B的XML声明中,您可以尝试

<button string="To form A" type="object" name="to_form_a" invisible="context.get('from_edits')" />

答案 1 :(得分:0)

只需在按钮声明中更改小内容

<button name="saves" string="SAVE" type="object" invisible="context.get('product_product',False)" />

并确保在上下文中设置了适当的值

context['product_product'] = True

希望这有帮助。