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 @@ - - -