summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@openerp.com>2018-06-09 20:45:09 +0200
committerFabien Pinckaers <fp@openerp.com>2018-06-09 20:45:09 +0200
commit9690685d652e854e6f8420c5f752509c0af3d380 (patch)
treeab86f48e2c622c4a7a29c9b2d4590422bb6eaea1
parent27c9705c00efad000d9ea6a130a3aa3457a51dbc (diff)
[IMP] crm: removing object crm.opportunity.report
Use crm.lead instead of a the crm.opportunity.report object for reporting. This allows to show more fields (e.g. tags_ids). The only field not accessible in the report is #activities, but there is a deicated report dedicated to activities. Improved the default search. Example: when reporting on leads, you want leads+opps by creation date (and not only leads) as an opportunity has been a lead created too.
-rw-r--r--addons/crm/data/crm_data.xml2
-rw-r--r--addons/crm/data/crm_demo.xml2
-rw-r--r--addons/crm/models/crm_lead.py6
-rw-r--r--addons/crm/models/crm_team.py22
-rw-r--r--addons/crm/report/__init__.py1
-rw-r--r--addons/crm/report/crm_opportunity_report.py123
-rw-r--r--addons/crm/report/crm_opportunity_report_views.xml55
-rw-r--r--addons/crm/security/crm_security.xml20
-rw-r--r--addons/crm/security/ir.model.access.csv2
-rw-r--r--addons/crm/views/crm_lead_views.xml22
-rw-r--r--addons/crm/views/crm_team_views.xml18
11 files changed, 58 insertions, 215 deletions
diff --git a/addons/crm/data/crm_data.xml b/addons/crm/data/crm_data.xml
index cea07019442..2fd9989146f 100644
--- a/addons/crm/data/crm_data.xml
+++ b/addons/crm/data/crm_data.xml
@@ -5,7 +5,7 @@
<field name="use_opportunities">True</field>
<field name="use_leads">True</field>
<field name="alias_name">sales</field>
- <field name="dashboard_graph_model">crm.opportunity.report</field>
+ <field name="dashboard_graph_model">crm.lead</field>
<field name="company_id" eval="False"/>
</record>
diff --git a/addons/crm/data/crm_demo.xml b/addons/crm/data/crm_demo.xml
index 2b9aed9a324..e9b058eeb93 100644
--- a/addons/crm/data/crm_demo.xml
+++ b/addons/crm/data/crm_demo.xml
@@ -11,7 +11,7 @@
<record id="sales_team.crm_team_1" model="crm.team">
<field name="use_opportunities">True</field>
- <field name="dashboard_graph_model">crm.opportunity.report</field>
+ <field name="dashboard_graph_model">crm.lead</field>
</record>
</data>
</odoo>
diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py
index 63b71edea4f..26f6629158d 100644
--- a/addons/crm/models/crm_lead.py
+++ b/addons/crm/models/crm_lead.py
@@ -107,6 +107,7 @@ class Lead(models.Model):
# Only used for type opportunity
probability = fields.Float('Probability', group_operator="avg", default=lambda self: self._default_probability())
planned_revenue = fields.Monetary('Expected Revenue', currency_field='company_currency', track_visibility='always')
+ expected_revenue = fields.Monetary('Prorated Revenue', currency_field='company_currency', store=True, compute="_compute_expected_revenue")
date_deadline = fields.Date('Expected Closing', help="Estimate of the date on which the opportunity will be won.")
color = fields.Integer('Color Index', default=0)
partner_address_name = fields.Char('Partner Contact Name', related='partner_id.name', readonly=True)
@@ -164,6 +165,11 @@ class Lead(models.Model):
kanban_state = 'red'
lead.kanban_state = kanban_state
+ @api.depends('planned_revenue', 'probability')
+ def _compute_expected_revenue(self):
+ for lead in self:
+ lead.expected_revenue = round((lead.planned_revenue or 0.0) * (lead.probability or 0) / 100.0, 2)
+
@api.depends('date_open')
def _compute_day_open(self):
""" Compute difference between create date and open date """
diff --git a/addons/crm/models/crm_team.py b/addons/crm/models/crm_team.py
index e63eee4850e..d37d72544bc 100644
--- a/addons/crm/models/crm_team.py
+++ b/addons/crm/models/crm_team.py
@@ -24,7 +24,7 @@ class Team(models.Model):
opportunities_amount = fields.Integer(
compute='_compute_opportunities',
string='Opportunities Revenues', readonly=True)
- dashboard_graph_model = fields.Selection(selection_add=[('crm.opportunity.report', 'Pipeline')])
+ dashboard_graph_model = fields.Selection(selection_add=[('crm.lead', 'Pipeline')])
dashboard_graph_period_pipeline = fields.Selection([
('week', 'Within a Week'),
('month', 'Within a Month'),
@@ -66,7 +66,7 @@ class Team(models.Model):
channel.dashboard_graph_period_pipeline = channel.dashboard_graph_period
def _inverse_dashboard_graph_period_pipeline(self):
- for channel in self.filtered(lambda ch: ch.dashboard_graph_model == 'crm.opportunity.report'):
+ for channel in self.filtered(lambda ch: ch.dashboard_graph_model == 'crm.lead'):
channel.dashboard_graph_period = channel.dashboard_graph_period_pipeline
def get_alias_model_name(self, vals):
@@ -92,7 +92,7 @@ class Team(models.Model):
if self.team_type == 'sales':
self.use_opportunities = True
self.use_leads = lambda self: self.user_has_groups('crm.group_use_lead')
- self.dashboard_graph_model = 'crm.opportunity.report'
+ self.dashboard_graph_model = 'crm.lead'
else:
self.use_opportunities = False
self.use_leads = False
@@ -100,7 +100,7 @@ class Team(models.Model):
@api.onchange('dashboard_graph_model')
def _onchange_dashboard_graph_model(self):
- if self.dashboard_graph_model == 'crm.opportunity.report':
+ if self.dashboard_graph_model == 'crm.lead':
self.dashboard_graph_period_pipeline = self.dashboard_graph_period
self.dashboard_graph_group_pipeline = self.dashboard_graph_group
else:
@@ -117,7 +117,7 @@ class Team(models.Model):
@api.constrains('dashboard_graph_model', 'use_opportunities')
def _check_graph_model(self):
- if not self.use_opportunities and self.dashboard_graph_model == 'crm.opportunity.report':
+ if not self.use_opportunities and self.dashboard_graph_model == 'crm.lead':
raise ValidationError(_("You have to enable the Pipeline on your sales channel to be able to set it as a content for the graph"))
@api.multi
@@ -174,7 +174,7 @@ class Team(models.Model):
def _graph_get_dates(self, today):
""" return a coherent start and end date for the dashboard graph according to the graph settings.
"""
- if self.dashboard_graph_model == 'crm.opportunity.report':
+ if self.dashboard_graph_model == 'crm.lead':
if self.dashboard_graph_group == 'month':
start_date = today.replace(day=1)
elif self.dashboard_graph_group == 'week':
@@ -203,7 +203,7 @@ class Team(models.Model):
def _get_graph(self):
graph_datas = super(Team, self)._get_graph()
- if self.dashboard_graph_model == 'crm.opportunity.report' and self.dashboard_graph_group_pipeline == 'stage':
+ if self.dashboard_graph_model == 'crm.lead' and self.dashboard_graph_group_pipeline == 'stage':
stage_ids = [d['label'] for d in graph_datas[0]['values'] if d['label'] is not None]
stage_data = self.env['crm.stage'].browse(stage_ids).read(['sequence', 'name'])
stage_data = {d['id']: {'name': d['name'], 'sequence': d['sequence']} for d in stage_data}
@@ -215,21 +215,21 @@ class Team(models.Model):
return graph_datas
def _graph_date_column(self):
- if self.dashboard_graph_model == 'crm.opportunity.report':
+ if self.dashboard_graph_model == 'crm.lead':
return 'date_deadline'
return super(Team, self)._graph_date_column()
def _graph_x_query(self):
- if self.dashboard_graph_model == 'crm.opportunity.report' and self.dashboard_graph_group_pipeline == 'stage':
+ if self.dashboard_graph_model == 'crm.lead' and self.dashboard_graph_group_pipeline == 'stage':
return 'stage_id'
return super(Team, self)._graph_x_query()
def _graph_y_query(self):
- if self.dashboard_graph_model == 'crm.opportunity.report':
+ if self.dashboard_graph_model == 'crm.lead':
return 'SUM(expected_revenue)'
return super(Team, self)._graph_y_query()
def _graph_title_and_key(self):
- if self.dashboard_graph_model == 'crm.opportunity.report':
+ if self.dashboard_graph_model == 'crm.lead':
return ['', _('Pipeline: Expected Revenue')] # no more title
return super(Team, self)._graph_title_and_key()
diff --git a/addons/crm/report/__init__.py b/addons/crm/report/__init__.py
index b1492d0bd20..4b9eb202396 100644
--- a/addons/crm/report/__init__.py
+++ b/addons/crm/report/__init__.py
@@ -2,4 +2,3 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import crm_activity_report
-from . import crm_opportunity_report
diff --git a/addons/crm/report/crm_opportunity_report.py b/addons/crm/report/crm_opportunity_report.py
deleted file mode 100644
index 6338da7ae92..00000000000
--- a/addons/crm/report/crm_opportunity_report.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from odoo import fields, models, tools, api
-
-from ..models import crm_stage
-
-class OpportunityReport(models.Model):
- """ CRM Opportunity Analysis """
-
- _name = "crm.opportunity.report"
- _auto = False
- _description = "CRM Opportunity Analysis"
- _rec_name = 'date_deadline'
-
- date_deadline = fields.Date('Expected Closing', readonly=True)
- create_date = fields.Datetime('Creation Date', readonly=True)
- opening_date = fields.Datetime('Assignation Date', readonly=True)
- date_closed = fields.Datetime('Close Date', readonly=True)
- date_last_stage_update = fields.Datetime('Last Stage Update', readonly=True)
- active = fields.Boolean('Active', readonly=True)
-
- # durations
- delay_open = fields.Float('Days to Assign', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to open the case")
- delay_close = fields.Float('Days to Close', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to close the case")
- delay_expected = fields.Float('Overpassed Deadline', digits=(16, 2), readonly=True, group_operator="avg")
-
- user_id = fields.Many2one('res.users', string='Salesperson', readonly=True)
- team_id = fields.Many2one('crm.team', 'Sales Channel', oldname='section_id', readonly=True)
- nbr_activities = fields.Integer('# of Activities', readonly=True)
- city = fields.Char('City')
- country_id = fields.Many2one('res.country', string='Country', readonly=True)
- probability = fields.Float(string='Probability', digits=(16, 2), readonly=True, group_operator="avg")
- total_revenue = fields.Float(string='Total Revenue', digits=(16, 2), readonly=True)
- expected_revenue = fields.Float(string='Probable Turnover', digits=(16, 2), readonly=True)
- stage_id = fields.Many2one('crm.stage', string='Stage', readonly=True, domain="['|', ('team_id', '=', False), ('team_id', '=', team_id)]")
- stage_name = fields.Char(string='Stage Name', readonly=True)
- partner_id = fields.Many2one('res.partner', string='Customer', readonly=True)
- company_id = fields.Many2one('res.company', string='Company', readonly=True)
- priority = fields.Selection(crm_stage.AVAILABLE_PRIORITIES, string='Priority', group_operator="avg")
- type = fields.Selection([
- ('lead', 'Lead'),
- ('opportunity', 'Opportunity'),
- ], help="Type is used to separate Leads and Opportunities")
- lost_reason = fields.Many2one('crm.lost.reason', string='Lost Reason', readonly=True)
- date_conversion = fields.Datetime(string='Conversion Date', readonly=True)
- campaign_id = fields.Many2one('utm.campaign', string='Campaign', readonly=True)
- source_id = fields.Many2one('utm.source', string='Source', readonly=True)
- medium_id = fields.Many2one('utm.medium', string='Medium', readonly=True)
-
- def _select(self):
- select_str = """
- SELECT
- c.id,
- c.date_deadline,
-
- c.date_open as opening_date,
- c.date_closed as date_closed,
- c.date_last_stage_update as date_last_stage_update,
-
- c.user_id,
- c.probability,
- c.stage_id,
- stage.name as stage_name,
- c.type,
- c.company_id,
- c.priority,
- c.team_id,
- (SELECT COUNT(*)
- FROM mail_message m
- WHERE m.model = 'crm.lead' and m.res_id = c.id) as nbr_activities,
- c.active,
- c.campaign_id,
- c.source_id,
- c.medium_id,
- c.partner_id,
- c.city,
- c.country_id,
- c.planned_revenue as total_revenue,
- c.planned_revenue*(c.probability/100) as expected_revenue,
- c.create_date as create_date,
- extract('epoch' from (c.date_closed-c.create_date))/(3600*24) as delay_close,
- abs(extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24)) as delay_expected,
- extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open,
- c.lost_reason,
- c.date_conversion as date_conversion
- """
- return select_str
-
- def _from(self):
- from_str = """
- FROM
- "crm_lead" c
- """
- return from_str
-
- def _join(self):
- join_str = """
- LEFT JOIN "crm_stage" stage ON stage.id = c.stage_id
- """
- return join_str
-
- def _where(self):
- where_str = """
- """
- return where_str
-
- def _group_by(self):
- group_by_str = """
- GROUP BY c.id, stage.name
- """
- return group_by_str
-
- @api.model_cr
- def init(self):
- tools.drop_view_if_exists(self.env.cr, self._table)
- self.env.cr.execute("""CREATE VIEW %s AS (
- %s
- %s
- %s
- %s
- %s
- )""" % (self._table, self._select(), self._from(), self._join(), self._where(), self._group_by()))
diff --git a/addons/crm/report/crm_opportunity_report_views.xml b/addons/crm/report/crm_opportunity_report_views.xml
index e798d5fd1eb..2744cea7260 100644
--- a/addons/crm/report/crm_opportunity_report_views.xml
+++ b/addons/crm/report/crm_opportunity_report_views.xml
@@ -4,7 +4,8 @@
<!-- Opportunities by user and team pivot View -->
<record id="crm_opportunity_report_view_pivot" model="ir.ui.view">
<field name="name">crm.opportunity.report.pivot</field>
- <field name="model">crm.opportunity.report</field>
+ <field name="model">crm.lead</field>
+ <field name="priority">60</field>
<field name="arch" type="xml">
<pivot string="Pipeline Analysis" disable_linking="True">
<field name="create_date" interval="month" type="col"/>
@@ -16,7 +17,8 @@
<record id="crm_opportunity_report_view_pivot_lead" model="ir.ui.view">
<field name="name">crm.opportunity.report.view.pivot.lead</field>
- <field name="model">crm.opportunity.report</field>
+ <field name="model">crm.lead</field>
+ <field name="priority">60</field>
<field name="arch" type="xml">
<pivot string="Leads Analysis" disable_linking="True">
<field name="create_date" interval="month" type="row"/>
@@ -28,7 +30,7 @@
<!-- Opportunities by user and team Graph View -->
<record id="crm_opportunity_report_view_graph" model="ir.ui.view">
<field name="name">crm.opportunity.report.graph</field>
- <field name="model">crm.opportunity.report</field>
+ <field name="model">crm.lead</field>
<field name="arch" type="xml">
<graph string="Pipeline Analysis" stacked="True">
<field name="stage_id" type="row"/>
@@ -40,7 +42,8 @@
<record id="crm_opportunity_report_view_graph_lead" model="ir.ui.view">
<field name="name">crm.opportunity.report.graph.lead</field>
- <field name="model">crm.opportunity.report</field>
+ <field name="model">crm.lead</field>
+ <field name="priority">20</field>
<field name="arch" type="xml">
<graph string="Leads Analysis" stacked="True">
<field name="create_date" interval="month" type="col"/>
@@ -52,36 +55,37 @@
<!-- Custom reports (aka filters) -->
<record id="filter_opportunity_opportunities_cohort" model="ir.filters">
<field name="name">Opportunities Cohort</field>
- <field name="model_id">crm.opportunity.report</field>
+ <field name="model_id">crm.lead</field>
<field name="domain">[('probability', '=', 100)]</field>
<field name="user_id" eval="False"/>
<field name="context">{'group_by': ['date_closed:month'],'col_group_by': ['create_date:month'], 'measures': ['__count__']}</field>
</record>
<record id="filter_opportunity_opportunities_won_per_team" model="ir.filters">
<field name="name">Won by Channel</field>
- <field name="model_id">crm.opportunity.report</field>
+ <field name="model_id">crm.lead</field>
<field name="domain">[('probability', '=', 100)]</field>
<field name="user_id" eval="False"/>
<field name="context">{'group_by': ['team_id'], 'col_group_by': ['date_last_stage_update:month'], 'measures': ['expected_revenue']}</field>
</record>
<record id="filter_opportunity_country" model="ir.filters">
<field name="name">Won by Country</field>
- <field name="model_id">crm.opportunity.report</field>
+ <field name="model_id">crm.lead</field>
<field name="user_id" eval="False"/>
<field name="domain">[('probability', '=', 100)]</field>
<field name="context">{'col_group_by': ['create_date:month'], 'group_by': ['country_id']}</field>
</record>
<record id="filter_opportunity_expected_revenue" model="ir.filters">
<field name="name">Expected Revenue by Channel</field>
- <field name="model_id">crm.opportunity.report</field>
+ <field name="model_id">crm.lead</field>
<field name="user_id" eval="False"/>
<field name="context">{'group_by': ['create_date:month', 'team_id'], 'measures': ['expected_revenue', '__count__']}</field>
</record>
<!-- Opportunities by user and team Search View -->
<record id="crm_opportunity_report_view_search" model="ir.ui.view">
- <field name="name">crm.opportunity.report.select</field>
- <field name="model">crm.opportunity.report</field>
+ <field name="name">crm.lead.search</field>
+ <field name="model">crm.lead</field>
+ <field name="priority">32</field>
<field name="arch" type="xml">
<search string="Opportunities Analysis">
<filter string="My Opportunities" name="my"
@@ -111,7 +115,7 @@
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
<newline/>
<field name="create_date"/>
- <field name="opening_date"/>
+ <field name="date_open"/>
<field name="date_closed"/>
</group>
<group expand="1" string="Group By">
@@ -132,11 +136,12 @@
</record>
<record id="crm_opportunity_report_action" model="ir.actions.act_window">
- <field name="name">Pipeline Analysis</field>
- <field name="res_model">crm.opportunity.report</field>
- <field name="view_type">form</field>
- <field name="view_mode">pivot,graph</field>
- <field name="context">{'search_default_opportunity': True, 'search_default_current': True, 'active_test': True, 'search_default_my': True, 'search_default_archived': True}</field>
+ <field name="name">Pipeline Analysis</field>
+ <field name="res_model">crm.lead</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">pivot,graph,tree,form</field>
+ <field name="search_view_id" ref="crm.crm_opportunity_report_view_search"/>
+ <field name="context">{'search_default_opportunity': True, 'search_default_current': True}</field>
<field name="view_ids"
eval="[(5, 0, 0),
(0, 0, {'view_mode': 'graph', 'view_id': ref('crm_opportunity_report_view_graph')}),
@@ -151,11 +156,12 @@ teams of the sales pipeline.</field>
parent="crm_menu_report" action="crm_opportunity_report_action" sequence="5"/>
<record id="crm_opportunity_report_action_graph" model="ir.actions.act_window">
- <field name="name">Pipeline Analysis</field>
- <field name="res_model">crm.opportunity.report</field>
- <field name="view_type">form</field>
- <field name="view_mode">graph,pivot</field>
- <field name="context">{'search_default_opportunity': True, 'search_default_current': True, 'active_test': True, 'search_default_my': True}</field>
+ <field name="name">Pipeline Analysis</field>
+ <field name="res_model">crm.lead</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">graph,pivot,tree,form</field>
+ <field name="search_view_id" ref="crm.crm_opportunity_report_view_search"/>
+ <field name="context">{'search_default_opportunity': True, 'search_default_current': True}</field>
<field name="view_ids"
eval="[(5, 0, 0),
(0, 0, {'view_mode': 'graph', 'view_id': ref('crm_opportunity_report_view_graph')}),
@@ -169,10 +175,11 @@ with the the sales channel.</field>
<record id="crm_opportunity_report_action_lead" model="ir.actions.act_window">
<field name="name">Leads Analysis</field>
- <field name="res_model">crm.opportunity.report</field>
+ <field name="res_model">crm.lead</field>
<field name="view_type">form</field>
- <field name="view_mode">pivot,graph</field>
- <field name="context">{'search_default_current': True, 'active_test': True, 'search_default_lead': True}</field>
+ <field name="view_mode">pivot,graph,tree,form</field>
+ <field name="search_view_id" ref="crm.crm_opportunity_report_view_search"/>
+ <field name="context">{'search_default_current': True, 'search_default_archived': True}</field>
<field name="view_ids"
eval="[(5, 0, 0),
(0, 0, {'view_mode': 'graph', 'view_id': ref('crm_opportunity_report_view_graph_lead')}),
diff --git a/addons/crm/security/crm_security.xml b/addons/crm/security/crm_security.xml
index 5a0fa127698..13f854c9be6 100644
--- a/addons/crm/security/crm_security.xml
+++ b/addons/crm/security/crm_security.xml
@@ -47,26 +47,6 @@
<field name="domain_force">['|',('user_id','=',user.id),('show_as','=','busy')]</field>
</record>
- <record id="crm_rule_personal_lead_report" model="ir.rule">
- <field name="name">Personal Leads Analysis</field>
- <field ref="model_crm_opportunity_report" name="model_id"/>
- <field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
- <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/>
- </record>
-
- <record id="crm_rule_all_lead_report" model="ir.rule">
- <field name="name">All Leads Analysis</field>
- <field ref="model_crm_opportunity_report" name="model_id"/>
- <field name="domain_force">[(1,'=',1)]</field>
- <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/>
- </record>
-
- <record model="ir.rule" id="opp_report_multi_company">
- <field name="name">Opportunity Analysis multi-company</field>
- <field name="model_id" ref="model_crm_opportunity_report"/>
- <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
- </record>
-
<record id="crm_activity_report_rule_all_activities" model="ir.rule">
<field name="name">All Activities</field>
<field ref="model_crm_activity_report" name="model_id"/>
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index 4a443e581c5..a5da8f8fa02 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -3,8 +3,6 @@ access_crm_lead_manager,crm.lead.manager,model_crm_lead,sales_team.group_sale_ma
access_crm_lead,crm.lead,model_crm_lead,sales_team.group_sale_salesman,1,1,1,0
access_crm_stage,crm.stage,model_crm_stage,,1,0,0,0
access_crm_stage_manager,crm.stage,model_crm_stage,sales_team.group_sale_manager,1,1,1,1
-access_crm_opportunity_report_user,crm.opportunity.report,model_crm_opportunity_report,sales_team.group_sale_salesman,1,0,0,0
-access_crm_opportunity_report_manager,crm.opportunity.report,model_crm_opportunity_report,sales_team.group_sale_manager,1,1,1,1
access_res_partner_manager,res.partner.crm.manager,base.model_res_partner,sales_team.group_sale_manager,1,0,0,0
access_res_partner_category_manager,res.partner.category.crm.manager,base.model_res_partner_category,sales_team.group_sale_manager,1,0,0,0
access_res_partner,res.partner.crm.user,base.model_res_partner,sales_team.group_sale_salesman,1,1,1,0
diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml
index ddaa57c01f6..d7b3d538e63 100644
--- a/addons/crm/views/crm_lead_views.xml
+++ b/addons/crm/views/crm_lead_views.xml
@@ -133,28 +133,6 @@
</field>
</record>
- <record id="crm_case_pivot_view_leads" model="ir.ui.view">
- <field name="name">crm.lead.pivot.lead</field>
- <field name="model">crm.lead</field>
- <field name="arch" type="xml">
- <pivot string="Opportunities" display_quantity="true">
- <field name="stage_id" type="row"/>
- <field name="planned_revenue" type="measure"/>
- </pivot>
- </field>
- </record>
-
- <record id="crm_case_graph_view_leads" model="ir.ui.view">
- <field name="name">crm.lead.graph.lead</field>
- <field name="model">crm.lead</field>
- <field name="arch" type="xml">
- <graph string="Opportunities" type="bar">
- <field name="stage_id" type="row"/>
- <field name="planned_revenue" type="measure"/>
- </graph>
- </field>
- </record>
-
<record id="crm_case_tree_view_leads" model="ir.ui.view">
<field name="name">crm.lead.tree.lead</field>
<field name="model">crm.lead</field>
diff --git a/addons/crm/views/crm_team_views.xml b/addons/crm/views/crm_team_views.xml
index 1d9607eef47..8b421716c98 100644
--- a/addons/crm/views/crm_team_views.xml
+++ b/addons/crm/views/crm_team_views.xml
@@ -61,10 +61,9 @@
<record id="action_report_crm_lead_salesteam" model="ir.actions.act_window">
<field name="name">Leads Analysis</field>
- <field name="res_model">crm.opportunity.report</field>
+ <field name="res_model">crm.lead</field>
<field name="context">{"search_default_month":1}</field>
- <field name="view_mode">graph,pivot</field>
- <field name="view_id" ref="crm.crm_opportunity_report_view_pivot_lead"/>
+ <field name="view_mode">graph,pivot,tree,form</field>
<field name="domain">[('type', '=', 'lead'),('team_id', '=', active_id)]</field>
<field name="context">{'active_test': True}</field>
<field name="help">Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.</field>
@@ -72,9 +71,8 @@
<record id="action_report_crm_opportunity_salesteam" model="ir.actions.act_window">
<field name="name">Pipeline Analysis</field>
- <field name="res_model">crm.opportunity.report</field>
- <field name="view_mode">graph,pivot</field>
- <field name="view_id" ref="crm.crm_opportunity_report_view_pivot"/>
+ <field name="res_model">crm.lead</field>
+ <field name="view_mode">graph,pivot,tree,form</field>
<field name="domain">[('type', '=', 'opportunity'), ('team_id', '=', active_id)]</field>
<field name="context">{'active_test': True}</field>
<field name="help">Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the channels of the sales pipeline.</field>
@@ -113,16 +111,16 @@
attrs="{'invisible': [('use_leads', '=', False), ('use_opportunities', '=', False)]}"/>
</xpath>
<field name="dashboard_graph_period" position="attributes">
- <attribute name="attrs">{'invisible': [('dashboard_graph_model', '=', 'crm.opportunity.report')]}</attribute>
+ <attribute name="attrs">{'invisible': [('dashboard_graph_model', '=', 'crm.lead')]}</attribute>
</field>
<field name="dashboard_graph_period" position="after">
- <field name="dashboard_graph_period_pipeline" attrs="{'invisible': [('dashboard_graph_model', '!=', 'crm.opportunity.report')]}"/>
+ <field name="dashboard_graph_period_pipeline" attrs="{'invisible': [('dashboard_graph_model', '!=', 'crm.lead')]}"/>
</field>
<field name="dashboard_graph_group" position="attributes">
- <attribute name="attrs">{'invisible': [('dashboard_graph_model', '=', 'crm.opportunity.report')]}</attribute>
+ <attribute name="attrs">{'invisible': [('dashboard_graph_model', '=', 'crm.lead')]}</attribute>
</field>
<field name="dashboard_graph_group" position="after">
- <field name="dashboard_graph_group_pipeline" attrs="{'invisible': [('dashboard_graph_model', '!=', 'crm.opportunity.report')]}"/>
+ <field name="dashboard_graph_group_pipeline" attrs="{'invisible': [('dashboard_graph_model', '!=', 'crm.lead')]}"/>
</field>
</field>
</record>