From 9c6489d9a4badeb6e68a041b947089658cf8d69d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 3 Jan 2013 11:10:36 +0100 Subject: [PATCH] [FIX] crm, project, project_issue: fixed default_stage_id assignment, not overriding values in vals when writing. bzr revid: tde@openerp.com-20130103101036-eroa3fd31dcqly8i --- addons/crm/crm_lead.py | 6 ++++-- addons/project/project.py | 4 +++- addons/project_issue/project_issue.py | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 87624699ff9..982235ad511 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -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 """ diff --git a/addons/project/project.py b/addons/project/project.py index 41b41a3dfc9..e98254d2fa1 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -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 diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index a01e0266f90..8b2afb130e1 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -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):