summaryrefslogtreecommitdiff
path: root/addons/website_crm/models
diff options
context:
space:
mode:
authorMansi Gandhi <mag@odoo.com>2016-06-15 11:21:54 +0530
committerYannick Tivisse <yti@odoo.com>2016-10-25 13:56:00 +0200
commitba6a5ddc8dec971f8b810dfad3d9934e7b581c91 (patch)
treed7330901e333d133f0bbb40f04d9c9f8b159e826 /addons/website_crm/models
parent500b73323d3bdd4eb59649d2db8864f8c2e8b9fa (diff)
[IMP] website_crm: add 'Default Sales Team' and 'Default Salesperson'
To leads created from the 'contact_us' form from the website.
Diffstat (limited to 'addons/website_crm/models')
-rw-r--r--addons/website_crm/models/__init__.py1
-rw-r--r--addons/website_crm/models/crm_lead.py33
-rw-r--r--addons/website_crm/models/website_crm_config_settings.py21
3 files changed, 49 insertions, 6 deletions
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.')