odoo添加多个弹框表单2018-07-24

很多时候,我们想为同一个model添加多个form表单,这时候可以为不同的表单添加不同的优先级,默认的优先级是16,优先级的数字越小,表示优先级越高。

如下,我设该表单的优先级为15

  
        loan.count.view.from
        loan.record
        15
        

在该表单中,添加几个button,通过点击button弹出制定的表单,这些表单同时对应loan.record,编辑后保存即可,其作用在于使view_loan_after_form只具有显示作用,view_loan_after_form中的字段全部设置为readonly="1",编辑的表单与显示的表单分开。如下

例如name="action_edit_finance"的按钮,点击该按钮时触发model中对应的函数,这里只做简单的演示,没有传入上下文及其他参数,这里选择multi装饰器,这里不解释装饰器的作用,self.ensure_one()保证是一个单条记录,有防止连续点击的影响(个人猜测),这里可不用src_model属性,当改变前后model不一致时,需要使用src_model属性,指向操作前的model,view_id属性指定视图,后面为视图id,可以为form视图,也可以为列表视图,这里指向form视图,target=new为弹框显示,其原理和HTML中a标签target=_blank类似,封装解释不同,效果也不同。id为当前操作任务id,这里没有多条id操作,以后应该会补。

    @api.multi
    def action_edit_finance(self):
        self.ensure_one()
        return {
            'name': '财务资料补充',
            'res_model': 'loan.record',
            'type': 'ir.actions.act_window',
            'src_model' :'loan.record',
            'res_id': self.id,
            'view_id': self.env.ref('loan_after.edit_loan_record_finance_form').id,
            'view_mode': 'form',
            'view_type': 'form',
            'target': 'new',
        }

在loan_after目录下创建form表单

  
        Loan Edit Finance
        loan.record
        
            
                
                    
                        
                            
                            
                            
                        
                        
                            
                            
                            
                            
                        
                        
                            
                            
                            
                        
                    
                    
                        
                            
                            
                            
                            
                            
                            
                            
                        
                        

                            
                            
                            
                        
                    
                
            
        
    

你可能感兴趣的:(odoo添加多个弹框表单2018-07-24)