[FIX] crm, project, project_issue: fixed default_stage_id assignment, not overriding values in vals when writing.

bzr revid: tde@openerp.com-20130103101036-eroa3fd31dcqly8i
This commit is contained in:
Thibault Delavallée
2013-01-03 11:10:36 +01:00
parent 1bbb44915b
commit 9c6489d9a4
3 changed files with 10 additions and 4 deletions
+4 -2
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 """
+3 -1
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
+3 -1
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):