diff options
| author | Mansi Gandhi <mag@odoo.com> | 2016-06-15 11:21:54 +0530 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2016-10-25 13:56:00 +0200 |
| commit | ba6a5ddc8dec971f8b810dfad3d9934e7b581c91 (patch) | |
| tree | d7330901e333d133f0bbb40f04d9c9f8b159e826 | |
| parent | 500b73323d3bdd4eb59649d2db8864f8c2e8b9fa (diff) | |
[IMP] website_crm: add 'Default Sales Team' and 'Default Salesperson'
To leads created from the 'contact_us' form from the website.
| -rw-r--r-- | addons/website/views/res_config_views.xml | 4 | ||||
| -rw-r--r-- | addons/website_crm/__manifest__.py | 1 | ||||
| -rw-r--r-- | addons/website_crm/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/website_crm/models/crm_lead.py | 33 | ||||
| -rw-r--r-- | addons/website_crm/models/website_crm_config_settings.py | 21 | ||||
| -rw-r--r-- | addons/website_crm/views/website_crm_config_settings_views.xml | 22 |
6 files changed, 74 insertions, 8 deletions
diff --git a/addons/website/views/res_config_views.xml b/addons/website/views/res_config_views.xml index 0741079037a..3fb0085eb76 100644 --- a/addons/website/views/res_config_views.xml +++ b/addons/website/views/res_config_views.xml @@ -13,8 +13,8 @@ </header> <div> <field name="website_id" invisible="1"/> - <group string="Domain"> - <field name="website_name" /> + <group name="google_analytics" string="Domain"> + <field name="website_name"/> <label for="google_analytics_key"/> <div name="google_analytics_key"> <div> diff --git a/addons/website_crm/__manifest__.py b/addons/website_crm/__manifest__.py index 30685c639f7..53d16e58db9 100644 --- a/addons/website_crm/__manifest__.py +++ b/addons/website_crm/__manifest__.py @@ -13,6 +13,7 @@ Odoo Contact Form 'data': [ 'data/website_crm_data.xml', 'views/website_crm_templates.xml', + 'views/website_crm_config_settings_views.xml', ], 'qweb': ['static/src/xml/*.xml'], 'installable': True, diff --git a/addons/website_crm/models/__init__.py b/addons/website_crm/models/__init__.py index f1e958daae0..ecd6026e024 100644 --- a/addons/website_crm/models/__init__.py +++ b/addons/website_crm/models/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import crm_lead +import website_crm_config_settings diff --git a/addons/website_crm/models/crm_lead.py b/addons/website_crm/models/crm_lead.py index 54cfd76f361..1cdc6bcd8fb 100644 --- a/addons/website_crm/models/crm_lead.py +++ b/addons/website_crm/models/crm_lead.py @@ -1,16 +1,37 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import models +from odoo import fields, models class Lead(models.Model): _inherit = 'crm.lead' def website_form_input_filter(self, request, values): - values['medium_id'] = ( - values.get('medium_id') or - self.default_get(['medium_id']).get('medium_id') or - self.sudo().env['ir.model.data'].xmlid_to_res_id('utm.utm_medium_website') - ) + values['medium_id'] = values.get('medium_id') or \ + self.default_get(['medium_id']).get('medium_id') or \ + self.sudo().env.ref('utm.utm_medium_website').id + values['team_id'] = values.get('team_id') or \ + request.website.crm_default_team_id.id + values['user_id'] = values.get('user_id') or \ + request.website.crm_default_user_id.id return values + + +class Website(models.Model): + _inherit = 'website' + + def _get_crm_default_team_domain(self): + if self.env.user.has_group('crm.group_use_lead'): + return [('use_leads', '=', True)] + else: + return [('use_opportunities', '=', True)] + + crm_default_team_id = fields.Many2one( + 'crm.team', string='Default Sales Team', + default=lambda self: self.env['crm.team'].search([], limit=1), + domain=lambda self: self._get_crm_default_team_domain(), + help='Default sales team for new leads created through the Contact Us form.') + crm_default_user_id = fields.Many2one( + 'res.users', string='Default Salesperson', domain=[('share', '=', False)], + help='Default salesperson for new leads created through the Contact Us form.') diff --git a/addons/website_crm/models/website_crm_config_settings.py b/addons/website_crm/models/website_crm_config_settings.py new file mode 100644 index 00000000000..01dd3862501 --- /dev/null +++ b/addons/website_crm/models/website_crm_config_settings.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import fields, models + + +class WebsiteCrmConfigSettings(models.TransientModel): + _inherit = 'website.config.settings' + + def _get_crm_default_team_domain(self): + if self.env.user.has_group('crm.group_use_lead'): + return [('use_leads', '=', True)] + else: + return [('use_opportunities', '=', True)] + + crm_default_team_id = fields.Many2one( + 'crm.team', string='Default Sales Team', related='website_id.crm_default_team_id', + domain=lambda self: self._get_crm_default_team_domain(), + help='Default sales team for new leads created through the Contact Us form.') + crm_default_user_id = fields.Many2one( + 'res.users', string='Default Salesperson', related='website_id.crm_default_user_id', domain=[('share', '=', False)], + help='Default salesperson for new leads created through the Contact Us form.') diff --git a/addons/website_crm/views/website_crm_config_settings_views.xml b/addons/website_crm/views/website_crm_config_settings_views.xml new file mode 100644 index 00000000000..5bd32948ae9 --- /dev/null +++ b/addons/website_crm/views/website_crm_config_settings_views.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <record id="view_website_config_settings_form_inherit_website_crm" model="ir.ui.view"> + <field name="name">website.config.settings.form.inherit</field> + <field name="model">website.config.settings</field> + <field name="inherit_id" ref="website.view_website_config_settings"/> + <field name="arch" type="xml"> + <group name="google_analytics" position="after"> + <group string="CRM" groups="base.group_no_one"> + <label string="Default Sales Team" for="crm_default_team_id"/> + <div class="oe_inline"> + <field name="crm_default_team_id"/> + </div> + <label string="Default Salesperson" for="crm_default_user_id"/> + <div class="oe_inline"> + <field name="crm_default_user_id"/> + </div> + </group> + </group> + </field> + </record> +</odoo> |
