[FIX] crm, project, project_issue: default stage_id at creation should not overwrite values given in create values if any.

bzr revid: tde@openerp.com-20130103150653-nlwp0u8bt2ljs3uc
This commit is contained in:
Thibault Delavallée 2013-01-03 16:06:53 +01:00
parent 97fe37685b
commit 8a89312742
3 changed files with 10 additions and 4 deletions

View File

@ -87,15 +87,17 @@ class crm_lead(base_stage, format_address, osv.osv):
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
if not context.get('default_section_id', False) and vals.get('section_id', False):
if not vals.get('stage_id') and vals.get('section_id'):
ctx = context.copy()
ctx['default_section_id'] = vals['section_id']
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
elif not vals.get('stage_id') and context.get('default_section_id'):
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=context)
return super(crm_lead, self).create(cr, uid, vals, context=context)
def _get_default_section_id(self, cr, uid, context=None):
""" Gives default section by checking if present in the context """
return (self._resolve_section_id_from_context(cr, uid, context=context) or False)
return self._resolve_section_id_from_context(cr, uid, context=context) or False
def _get_default_stage_id(self, cr, uid, context=None):
""" Gives default stage_id """

View File

@ -1091,10 +1091,12 @@ class task(base_stage, osv.osv):
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
if not context.get('default_project_id', False) and vals.get('project_id', False):
if not vals.get('stage_id') and vals.get('project_id'):
ctx = context.copy()
ctx['default_project_id'] = vals['project_id']
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
elif not vals.get('stage_id') and context.get('default_project_id'):
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=context)
task_id = super(task, self).create(cr, uid, vals, context=context)
self._store_history(cr, uid, [task_id], context=context)
return task_id

View File

@ -67,10 +67,12 @@ class project_issue(base_stage, osv.osv):
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
if not context.get('default_project_id', False) and vals.get('project_id', False):
if not vals.get('stage_id') and vals.get('project_id'):
ctx = context.copy()
ctx['default_project_id'] = vals['project_id']
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx)
elif not vals.get('stage_id') and context.get('default_project_id'):
vals['stage_id'] = self._get_default_stage_id(cr, uid, context=context)
return super(project_issue, self).create(cr, uid, vals, context=context)
def _get_default_project_id(self, cr, uid, context=None):