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):