From: Quentin (OpenERP) Date: Tue, 15 Jan 2013 10:03:53 +0000 (+0100) Subject: [FIX] crm: at lead creation, take into account the type given in vals to find the... X-Git-Tag: 7.0-server~18 X-Git-Url: http://git.inspyration.org/?a=commitdiff_plain;h=7ec52bb84b8f461185cf8ccd5f5b9184f99f066e;p=odoo%2Fodoo.git [FIX] crm: at lead creation, take into account the type given in vals to find the stage_id (if not provided) + refactoring of create() of tasks, project issues and leads bzr revid: qdp-launchpad@openerp.com-20130115100353-z35mqrwij936n54s --- diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index ab6770a..4455663 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -87,12 +87,13 @@ class crm_lead(base_stage, format_address, osv.osv): def create(self, cr, uid, vals, context=None): if context is None: context = {} - if not vals.get('stage_id') and vals.get('section_id'): + if not vals.get('stage_id'): ctx = context.copy() - ctx['default_section_id'] = vals['section_id'] + if vals.get('section_id'): + ctx['default_section_id'] = vals['section_id'] + if vals.get('type'): + ctx['default_type'] = vals['type'] 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): diff --git a/addons/project/project.py b/addons/project/project.py index 95f7771..f89ce83 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -1091,12 +1091,11 @@ class task(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): if context is None: context = {} - if not vals.get('stage_id') and vals.get('project_id'): + if not vals.get('stage_id'): ctx = context.copy() - ctx['default_project_id'] = vals['project_id'] + if vals.get('project_id'): + 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 7b7b6f8..b0b7193 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -67,12 +67,11 @@ class project_issue(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): if context is None: context = {} - if not vals.get('stage_id') and vals.get('project_id'): + if not vals.get('stage_id'): ctx = context.copy() - ctx['default_project_id'] = vals['project_id'] + if vals.get('project_id'): + 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):