diff --git a/addons/crm/crm.py b/addons/crm/crm.py index c809857de66..d54f82af52c 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -201,7 +201,7 @@ class crm_case(object): if stage.on_change: data.update({'probability': stage.probability}) self.write(cr, uid, [case.id], data, context=context) - return True + return prev_stage def onchange_partner_id(self, cr, uid, ids, part, email=False): """This function returns value of partner address based on partner diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index acc2eb8dbec..68dac281c82 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -286,7 +286,13 @@ class crm_lead(crm_case, osv.osv): stage = super(crm_lead, self).stage_next(cr, uid, ids, context) if stage: stage_obj = self.pool.get('crm.case.stage').browse(cr, uid, stage, context=context) - self.onchange_stage_id(cr, uid, ids, stage) + self.history(cr, uid, ids, _('Stage'), details=stage_obj.name) + for case in self.browse(cr, uid, ids): + if case.type == 'lead': + message = _("The stage of lead '%s' has been changed to '%s'.") % (case.name, case.stage_id.name) + elif case.type == 'opportunity': + message = _("The stage of opportunity '%s' has been changed to '%s'.") % (case.name, case.stage_id.name) + self.log(cr, uid, case.id, message) if stage_obj.on_change: data = {'probability': stage_obj.probability} self.write(cr, uid, ids, data) @@ -295,8 +301,14 @@ class crm_lead(crm_case, osv.osv): def stage_previous(self, cr, uid, ids, context=None): stage = super(crm_lead, self).stage_previous(cr, uid, ids, context) if stage: + stage_obj = self.pool.get('crm.case.stage').browse(cr, uid, stage, context=context) + self.history(cr, uid, ids, _('Stage'), details=stage_obj.name) for case in self.browse(cr, uid, ids): - self.onchange_stage_id(cr, uid, [case.id], case.stage_id.id) + if case.type == 'lead': + message = _("The stage of lead '%s' has been changed to '%s'.") % (case.name, case.stage_id.name) + elif case.type == 'opportunity': + message = _("The stage of opportunity '%s' has been changed to '%s'.") % (case.name, case.stage_id.name) + self.log(cr, uid, case.id, message) return stage def message_new(self, cr, uid, msg, context): diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index d54cb363509..dff880c7fce 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -57,8 +57,7 @@ - +