Openerp 如何在CRM opportunity form视图中添加新字段?

Openerp 如何在CRM opportunity form视图中添加新字段?,openerp,Openerp,我是OpenERP开发的新手,我想在Opportunity表单视图中添加一些字段 1) 我想为阶段添加选择列表字段 2) 我想添加类型为float(coefficient)的新字段,只读,它取决于opportunity的概率和创建时间: If probability <50% then coefficient == 1 Else if probability >50% then coefficient == 0.1

我是OpenERP开发的新手,我想在Opportunity表单视图中添加一些字段

1) 我想为阶段添加选择列表字段

2) 我想添加类型为float(coefficient)的新字段,只读,它取决于opportunity的概率和创建时间:

                If probability <50% then coefficient == 1  
                Else if probability >50% then coefficient == 0.1
                Else coefficient == 0.5
如果概率为50%,则系数==0.1
其他系数==0.5

第一次计算系数后,不应更改系数。

您需要先继承模型以添加自定义字段,然后继承视图并在视图中添加字段(树、表单、搜索等)。创建自己的自定义模块来实现这一点是实现它的最佳方式

有关继承的更多信息,请参见此处

中查看继承我添加了该方法:

def _get_coefficient_value(self, cr, uid, context=None):
    stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context)
    if stage.probability > 50:
        x_coefficient = 0.1
    elif value < 50:
        x_coefficient = 1
    else:
        x_coefficient = 0.5
    return x_coefficient
但当我创建新的opportunity时,无论opportunity处于哪个阶段,系数字段==0

我想在保存新opportunity时,执行_get_cofficient_value,我的字段系数应根据阶段自动计算

vals['x_coefficient'] = self._get_coefficient_value(cr, uid, context=ctx)

def create(self, cr, uid, vals, context=None):
        if context is None:
            context = {}
        if not vals.get('stage_id'):
            ctx = context.copy()
            vals['x_coefficient'] = self._get_coefficient_value(cr, uid, context=ctx)
            if vals.get('section_id'):
                ctx['default_section_id'] = vals['section_id']
            if vals.get('type'):
                ctx['default_type'] = vals['type']
            vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
        return super(crm_lead, self).create(cr, uid, vals, context=context)