diff options
| author | Thibault Delavallée <tde@openerp.com> | 2015-07-29 16:39:31 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2015-07-30 10:19:15 +0200 |
| commit | 5a4053a504f50c6cbbc68f37af29ebf7016996bc (patch) | |
| tree | 3ada725af5ce0fa65277419b6f3ddd706fe6327e | |
| parent | 369db198d3aff6c5c5fc21e3b2381f16dde8c471 (diff) | |
[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.
| -rw-r--r-- | addons/crm/__openerp__.py | 1 | ||||
| -rw-r--r-- | addons/crm/data/sales_config_settings_data.xml | 8 | ||||
| -rw-r--r-- | addons/crm/res_config.py | 11 | ||||
| -rw-r--r-- | addons/crm/res_config_view.xml | 20 | ||||
| -rw-r--r-- | addons/crm/sales_team.py | 9 | ||||
| -rw-r--r-- | addons/crm/sales_team_view.xml | 35 |
6 files changed, 59 insertions, 25 deletions
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 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + + <function id="default_generate_sales_team_alias" + model="ir.values" name="set_default" + eval="('sales.config.settings', 'generate_sales_team_alias', True)"/> + +</odoo> 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,20 +29,24 @@ <group> <label for="id" string="Leads Email Alias"/> <div> + <div attrs="{'invisible': [('alias_domain', 'not in', ['localhost', '', False])]}"> + <p> + <label string="To be able to set your Leads Email Alias, you need to fill your alias domain first."/><br /> + <button type="action" name="base_setup.action_general_configuration" + string="Configure your email alias domain" class="oe_inline oe_link"/> + </p> + </div> <div> - <label string="Each sales team has an email alias that can be defined on the sales team form view" class="oe_inline oe_form_label_help oe_align_right"/> <span class="oe_inline"> - <label string="Automatically create new leads when an email is sent to the following alias :" class="oe_inline oe_form_label_help oe_align_right"/> + <label string="Create new leads when an email is sent to the following alias:" class="oe_inline oe_form_label_help oe_align_right"/> <field name="alias_prefix" class="oe_inline"/> <span>@</span> - <field name="alias_domain" class="oe_inline" readonly="1"/> + <field name="alias_domain" class="oe_inline" readonly="1"/> </span> </div> - <div attrs="{'invisible': [('alias_domain', 'not in', ['localhost', '', False])]}"> - <p> - <label string="To be able to set your Leads Email Alias, you need to fill your alias domain first."/> - <button type="action" name="base_setup.action_general_configuration" string="Configure your domain alias" icon="gtk-execute" class="oe_inline oe_link"/> - </p> + <div> + <field name="generate_sales_team_alias"/> + <label for="generate_sales_team_alias"/> </div> </div> </group> 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 @@ <field name="inherit_id" ref="sales_team.crm_team_view_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='options_active']" position="inside"> - <field name="use_leads"/><label for="use_leads" string="Leads"/> - <field name="use_opportunities" class="oe_inline"/><label for="use_opportunities"/> + <field name="use_leads" onchange="onchange_use_leads(use_leads)"/> + <label for="use_leads" string="Leads"/> + <field name="use_opportunities" class="oe_inline"/> + <label for="use_opportunities"/> </xpath> <xpath expr="//page[@name='members']" position="after"> <page string="Stages" groups="base.group_no_one"> @@ -96,21 +98,22 @@ <field name="stage_ids"/> </page> </xpath> - <xpath expr="//group[@name='sales_team_more_info']" position="inside"> - <group name="alias_info" string="Leads Email Alias" class="oe_inline" attrs="{'invisible': [('alias_domain', '=', False)]}"> - <label for="alias_name" string="Email Alias" - attrs="{'invisible': [('alias_domain', '=', False)]}"/> - <div name="alias_def" - attrs="{'invisible': [('alias_domain', '=', False)]}"> - <field name="alias_id" class="oe_read_only oe_inline" - string="Email Alias" required="0"/> - <div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;" > - <field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/> - </div> + <xpath expr="//field[@name='code']" position="after"> + <label for="alias_name" string="Email Alias" + groups="base.group_no_one" + attrs="{'invisible': [('use_leads', '=', False)]}"/> + <div name="alias_def" + groups="base.group_no_one" + attrs="{'invisible': [('use_leads', '=', False)]}"> + <field name="alias_id" class="oe_read_only oe_inline" + string="Email Alias" required="0"/> + <div class="oe_edit_only oe_inline" name="edit_alias" style="display: inline;" > + <field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline" readonly="1"/> </div> - <field name="alias_contact" class="oe_inline" - string="Accept Emails From"/> - </group> + </div> + <field name="alias_contact" class="oe_inline" + string="Accept Emails From" + attrs="{'invisible': [('use_leads', '=', False)]}"/> </xpath> </field> </record> |
