您的位置:首页 > 其它

Odoo8.0根据资料的条件来控制画面上的修改、删除按钮显示

2016-03-31 10:42 295 查看
今天有网友在问,当达到某个条件的时候,资料的所有字段都变为只读,传统的方法是在view或model中,逐一对每个字段进行属性设置,这样比较麻烦。后来我在考虑,如果是把所有字段都变为只读,是不是只要屏蔽form界面上的修改按钮就可以了呢?只要用户不能点修改按钮,那相当于就是所有字段为只读了。

经过测试和阅读源码,我们通过如下方法来实现。

在自己的model中,重载框架函数fields_view_get,实例如下:

[python]
view plain
copy

def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):  
        if context is None:context = {}  
        res = super(rhwl_gene, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)  
        if res['type']=="form":  
            id = res['id']  
            //根据id去取得资料,并进行判断  
            if 条件成立:  
                doc = etree.XML(res['arch'])  
                doc.xpath("//form")[0].set("edit","false")  
                res['arch']=etree.tostring(doc)  
        return res  

set中的edit表示修改按钮,如果要控制其它按钮,可以用其它值,create表示新增,delete表示删除。

助顶:http://blog.csdn.net/vnsoft/article/details/47133847
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  odoo