From 5a4053a504f50c6cbbc68f37af29ebf7016996bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 29 Jul 2015 16:39:31 +0200 Subject: [PATCH] [IMP] crm: sales team: cleaned res_config about email aliases explanation and redirection to the general settings. Added an option to automatically generate an alias for sales teams, like what is done in projects. Some cleaning has been done in the form view. Aliases are valable only for sales team managing leads. --- addons/crm/__openerp__.py | 1 + .../crm/data/sales_config_settings_data.xml | 8 +++++ addons/crm/res_config.py | 11 ++++++ addons/crm/res_config_view.xml | 26 ++++++++------ addons/crm/sales_team.py | 9 ++++- addons/crm/sales_team_view.xml | 35 ++++++++++--------- 6 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 addons/crm/data/sales_config_settings_data.xml diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index a5b045f8182..b790f9bc233 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -47,6 +47,7 @@ Dashboard for CRM will include: 'data/crm_action_data.xml', 'crm_data.xml', 'data/crm_stage_data.xml', + 'data/sales_config_settings_data.xml', 'crm_lead_data.xml', 'crm_tip_data.xml', diff --git a/addons/crm/data/sales_config_settings_data.xml b/addons/crm/data/sales_config_settings_data.xml new file mode 100644 index 00000000000..61bda872c46 --- /dev/null +++ b/addons/crm/data/sales_config_settings_data.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/addons/crm/res_config.py b/addons/crm/res_config.py index 45c1420d87e..25f42195e1a 100644 --- a/addons/crm/res_config.py +++ b/addons/crm/res_config.py @@ -16,6 +16,9 @@ class crm_configuration(osv.TransientModel): 'module_crm_claim': fields.boolean("Manage Customer Claims", help='Allows you to track your customers/vendors claims and grievances.\n' '-This installs the module crm_claim.'), + 'generate_sales_team_alias': fields.boolean( + "Automatically generate an email alias at the sales team creation", + help="Odoo will generate an email alias based on the sales team name"), 'alias_prefix': fields.char('Default Alias Name for Leads'), 'alias_domain' : fields.char('Alias Domain') } @@ -38,6 +41,14 @@ class crm_configuration(osv.TransientModel): alias_id = alias_ids and alias_ids[0] or False return alias_id + def get_default_generate_sales_team_alias(self, cr, uid, ids, context=None): + return {'generate_sales_team_alias': self.pool['ir.values'].get_default( + cr, uid, 'sales.config.settings', 'generate_sales_team_alias')} + + def set_default_generate_sales_team_alias(self, cr, uid, ids, context=None): + config_value = self.browse(cr, uid, ids, context=context).generate_sales_team_alias + self.pool['ir.values'].set_default(cr, uid, 'sales.config.settings', 'generate_sales_team_alias', config_value) + def get_default_alias_prefix(self, cr, uid, ids, context=None): alias_name = False alias_id = self._find_default_lead_alias_id(cr, uid, context=context) diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml index f08c8e128ea..bf3917709bb 100644 --- a/addons/crm/res_config_view.xml +++ b/addons/crm/res_config_view.xml @@ -29,21 +29,25 @@ diff --git a/addons/crm/sales_team.py b/addons/crm/sales_team.py index dac4726e3ca..47bfc32769d 100644 --- a/addons/crm/sales_team.py +++ b/addons/crm/sales_team.py @@ -43,14 +43,21 @@ class crm_team(osv.Model): _defaults = { 'stage_ids': _get_default_stage_ids, - 'use_leads': True, 'use_opportunities': True, } + def onchange_use_leads(self, cr, uid, ids, use_leads, context=None): + if not use_leads: + return {'values': {'alias_name': False}} + return {'values': {}} + def create(self, cr, uid, vals, context=None): if context is None: context = {} create_context = dict(context, alias_model_name='crm.lead', alias_parent_model_name=self._name) + generate_alias_name = self.pool['ir.values'].get_default(cr, uid, 'sales.config.settings', 'generate_sales_team_alias') + if generate_alias_name and not vals.get('alias_name'): + vals['alias_name'] = vals.get('name') team_id = super(crm_team, self).create(cr, uid, vals, context=create_context) team = self.browse(cr, uid, team_id, context=context) self.pool.get('mail.alias').write(cr, uid, [team.alias_id.id], {'alias_parent_thread_id': team_id, 'alias_defaults': {'team_id': team_id, 'type': 'lead'}}, context=context) diff --git a/addons/crm/sales_team_view.xml b/addons/crm/sales_team_view.xml index ae4b4fe4e2b..683afec1393 100644 --- a/addons/crm/sales_team_view.xml +++ b/addons/crm/sales_team_view.xml @@ -87,8 +87,10 @@ - @@ -96,21 +98,22 @@ - - -