diff --git a/addons/website_crm_score/__openerp__.py b/addons/website_crm_score/__openerp__.py index 5e363a35f1b..4fafd89b242 100644 --- a/addons/website_crm_score/__openerp__.py +++ b/addons/website_crm_score/__openerp__.py @@ -5,7 +5,15 @@ 'depends': ['base', 'sales_team', 'marketing', 'website_crm'], 'author': "Odoo S.A.", 'description': """\ - Lead scoring""", + Lead Scoring +=================== + +This module allows you to... + - Track specific page view on your website. + - Assign score on lead: sort your lead automatically and consider the more important at first. + - Assign lead to salesteams: define your own filters and sort automatically your leads by saleteam. + - Assign lead to salesmen: define filter by saleman and dispatch automatically your leads to the right saleman. +""", 'data': [ 'views/website_crm_score.xml', 'views/reporting.xml', @@ -17,4 +25,5 @@ 'demo/website_crm_score_demo.xml', ], 'installable': True, + 'application': True, } diff --git a/addons/website_crm_score/models/leads_dry_run.py b/addons/website_crm_score/models/leads_dry_run.py index 3e4071e2f2f..c26df8a3135 100644 --- a/addons/website_crm_score/models/leads_dry_run.py +++ b/addons/website_crm_score/models/leads_dry_run.py @@ -2,8 +2,8 @@ from openerp import fields, models, api -class leads_dry_run(models.TransientModel): - _name = "leads.dry.run" +class crm_leads_dry_run(models.TransientModel): + _name = "crm.leads.dry.run" lead_id = fields.Many2one('crm.lead', string='Lead', required=True) team_id = fields.Many2one('crm.team', string='SaleTeam', required=True, oldname='section_id') @@ -28,5 +28,5 @@ class leads_dry_run(models.TransientModel): # Avoid to re-assign the same leads for nothing self._cr.execute(""" - TRUNCATE TABLE leads_dry_run; + TRUNCATE TABLE crm_leads_dry_run; """) diff --git a/addons/website_crm_score/models/sales_team.py b/addons/website_crm_score/models/sales_team.py index feab22d89db..26acb79206d 100644 --- a/addons/website_crm_score/models/sales_team.py +++ b/addons/website_crm_score/models/sales_team.py @@ -69,7 +69,8 @@ class team_user(models.Model): @api.one def toggle_active(self): - self.running = not self.running + if isinstance(self.id, int): # if already saved + self.running = not self.running class crm_team(osv.osv): @@ -150,7 +151,7 @@ class crm_team(osv.osv): if dry: for lead in leads: values = {'lead_id': lead.id, 'team_id': salesteam['id']} - self.env['leads.dry.run'].create(values) + self.env['crm.leads.dry.run'].create(values) else: leads.write({'team_id': salesteam['id']}) @@ -188,7 +189,7 @@ class crm_team(osv.osv): limit = int(math.ceil(su.maximum_user_leads / 15.0)) if dry: - dry_leads = self.env["leads.dry.run"].search([('team_id', '=', su.team_id.id)]) + dry_leads = self.env["crm.leads.dry.run"].search([('team_id', '=', su.team_id.id)]) domain.append(['id', 'in', dry_leads.mapped('lead_id.id')]) else: domain.append(('team_id', '=', su.team_id.id)) @@ -219,12 +220,12 @@ class crm_team(osv.osv): del users[i] continue - #lead convert for this user + # lead convert for this user lead = user['leads'][0] assigned.add(lead) if dry: values = {'lead_id': lead.id, 'team_id': user['su'].team_id.id, 'user_id': user['su'].user_id.id} - self.env['leads.dry.run'].create(values) + self.env['crm.leads.dry.run'].create(values) else: # Assign date will be setted by write function data = {'user_id': user['su'].user_id.id} @@ -241,7 +242,7 @@ class crm_team(osv.osv): def _assign_leads(self, dry=False): # Emptying the table self._cr.execute(""" - TRUNCATE TABLE leads_dry_run; + TRUNCATE TABLE crm_leads_dry_run; """) all_salesteams = self.search_read(fields=['score_team_domain'], domain=[('score_team_domain', '!=', False)]) diff --git a/addons/website_crm_score/tests/common.py b/addons/website_crm_score/tests/common.py index fcd4a313289..5bdfecc95e6 100644 --- a/addons/website_crm_score/tests/common.py +++ b/addons/website_crm_score/tests/common.py @@ -36,7 +36,7 @@ class TestScoring(common.TransactionCase): # Usefull models self.crm_lead = self.registry('crm.lead') - self.leads_dry_run = self.registry('leads.dry.run') + self.crm_leads_dry_run = self.registry('crm.leads.dry.run') self.pageview = self.registry('website.crm.pageview') self.website_crm_score = self.registry('website.crm.score') self.team = self.registry('crm.team') diff --git a/addons/website_crm_score/tests/test_dry_run.py b/addons/website_crm_score/tests/test_dry_run.py index 42587ac5cc0..d4e7a59eb4d 100644 --- a/addons/website_crm_score/tests/test_dry_run.py +++ b/addons/website_crm_score/tests/test_dry_run.py @@ -25,13 +25,13 @@ class test_dry_run(TestScoring): fields = ['team_id', 'user_id', 'lead_id'] - dr0_sect = self.leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead0), ('user_id', '=', False)], fields)[0] - dr0_user = self.leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead0), ('user_id', '!=', False)], fields)[0] + dr0_sect = self.crm_leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead0), ('user_id', '=', False)], fields)[0] + dr0_user = self.crm_leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead0), ('user_id', '!=', False)], fields)[0] - dr1_sect = self.leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead1), ('user_id', '=', False)], fields)[0] - dr1_user = self.leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead1), ('user_id', '!=', False)], fields)[0] + dr1_sect = self.crm_leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead1), ('user_id', '=', False)], fields)[0] + dr1_user = self.crm_leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead1), ('user_id', '!=', False)], fields)[0] - dr2 = self.leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead2)], fields) + dr2 = self.crm_leads_dry_run.search_read(cr, uid, [('lead_id', '=', self.lead2)], fields) self.assertEqual(dr0_sect['team_id'][0], self.team0, 'dry run failed') self.assertEqual(dr0_user['team_id'][0], self.team0, 'dry run failed') @@ -43,11 +43,11 @@ class test_dry_run(TestScoring): self.assertEqual(dr2, [], 'dry run failed') - ldr = self.leads_dry_run.search_count(cr, uid, [], None) + ldr = self.crm_leads_dry_run.search_count(cr, uid, [], None) self.assertEqual(ldr, 4, 'wrong number of dry run created') # assignement after dry run - self.leads_dry_run.assign_leads(cr, uid, None) + self.crm_leads_dry_run.assign_leads(cr, uid, None) l0 = self.crm_lead.read(cr, uid, self.lead0, ['team_id', 'user_id'], None) l1 = self.crm_lead.read(cr, uid, self.lead1, ['team_id', 'user_id'], None) @@ -61,6 +61,6 @@ class test_dry_run(TestScoring): self.assertEqual(l1['user_id'][0], self.salesmen1, 'assignation failed') self.assertEqual(l2['user_id'], False, 'assignation failed') - ldr = self.leads_dry_run.search_count(cr, uid, [], None) + ldr = self.crm_leads_dry_run.search_count(cr, uid, [], None) self.assertEqual(ldr, 0, 'dry run not removed correctly') diff --git a/addons/website_crm_score/views/marketing.xml b/addons/website_crm_score/views/marketing.xml index c04771cdea1..fa8b554d2ab 100644 --- a/addons/website_crm_score/views/marketing.xml +++ b/addons/website_crm_score/views/marketing.xml @@ -262,7 +262,7 @@ Assignation Dry Run Form - leads.dry.run + crm.leads.dry.run
@@ -272,7 +272,6 @@ -