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 @@
-
+