如何在CRM机会表单视图中添加新字段?

时间:2013-12-23 11:04:32

标签: openerp

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

1)我想为Stages添加Picklist字段。

2)我想添加float(系数)类型的新字段,ReadOnly并且它取决于机会在创建时间方面的顺从性:

                If probability <50% then coefficient == 1  
                Else if probability >50% then coefficient == 0.1
                Else coefficient == 0.5

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

2 个答案:

答案 0 :(得分:1)

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

有关继承的更多信息,请访问Object Inheritance

并查看Inheritance in Views

中的继承

答案 1 :(得分:0)

我添加了这个方法:

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

并且在crm_lead.py上创建方法时,我添加了一行:

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)

但是当我创造新机会时,无论机会阶段如何,系数字段== 0。

我希望在您保存新机会时执行_get_coefficient_value,我的字段系数应根据阶段自动计算。