diff --git a/addons/report_crm/__terp__.py b/addons/report_crm/__terp__.py
index 9d9dae37390..6e0870fa24e 100644
--- a/addons/report_crm/__terp__.py
+++ b/addons/report_crm/__terp__.py
@@ -30,7 +30,7 @@
'website': 'http://www.openerp.com',
'depends': ['crm'],
'init_xml': [],
- 'update_xml': ['security/ir.model.access.csv',
+ 'update_xml': [#'security/ir.model.access.csv',
'report_crm_view.xml',
'report_crm_lead_view.xml',
'report_crm_claim_view.xml',
diff --git a/addons/report_crm/report_crm_lead.py b/addons/report_crm/report_crm_lead.py
index 479b93445c4..91404427a08 100644
--- a/addons/report_crm/report_crm_lead.py
+++ b/addons/report_crm/report_crm_lead.py
@@ -1,273 +1,267 @@
from osv import fields,osv
import tools
-class report_crm_lead_user(osv.osv):
- _name = "report.crm.lead.user"
+class report_crm_lead(osv.osv):
+ _name = "report.crm.lead"
_description = "Leads by user and section"
_auto = False
_inherit = "report.crm.case.user"
_columns = {
- 'probability': fields.float('Avg. Probability', readonly=True),
- 'amount_revenue': fields.float('Est.Revenue', readonly=True),
- 'amount_costs': fields.float('Est.Cost', readonly=True),
- 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True),
'delay_close': fields.char('Delay to close', size=20, readonly=True),
- }
- def init(self, cr):
- tools.drop_view_if_exists(cr, 'report_crm_lead_user')
- cr.execute("""
- create or replace view report_crm_lead_user as (
- select
- min(c.id) as id,
- to_char(c.create_date, 'YYYY') as name,
- to_char(c.create_date, 'MM') as month,
- c.state,
- c.user_id,
- c.section_id,
- count(*) as nbr,
- sum(planned_revenue) as amount_revenue,
- sum(planned_cost) as amount_costs,
- sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob,
- avg(probability)::decimal(16,2) as probability,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
- from
- crm_lead c
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state, c.user_id,c.section_id
- )""")
-report_crm_lead_user()
-
-class report_crm_lead_categ(osv.osv):
- _name = "report.crm.lead.categ"
- _description = "Leads by section and category"
- _auto = False
- _inherit = "report.crm.case.categ"
- _columns = {
- 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"),
- 'amount_revenue': fields.float('Est.Revenue', readonly=True),
- 'amount_costs': fields.float('Est.Cost', readonly=True),
- 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True),
- 'probability': fields.float('Avg. Probability', readonly=True),
- 'delay_close': fields.char('Delay Close', size=20, readonly=True),
- }
-
- def init(self, cr):
- tools.drop_view_if_exists(cr, 'report_crm_lead_categ')
- cr.execute("""
- create or replace view report_crm_lead_categ as (
- select
- min(c.id) as id,
- to_char(c.create_date, 'YYYY') as name,
- to_char(c.create_date, 'MM') as month,
- c.categ_id,
- c.state,
- c.section_id,
- count(*) as nbr,
- sum(planned_revenue) as amount_revenue,
- sum(planned_cost) as amount_costs,
- sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob,
- avg(probability)::decimal(16,2) as probability,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
- from
- crm_lead c
- group by c.categ_id,to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state,c.section_id
- )""")
-report_crm_lead_categ()
-
-class report_crm_lead_section(osv.osv):
- _name = "report.crm.lead.section"
- _description = "Leads by Section"
- _auto = False
- _inherit = "report.crm.case.section"
-
- def _get_data(self, cr, uid, ids, field_name, arg, context={}):
- res = {}
- state_perc = 0.0
- avg_ans = 0.0
-
- for case in self.browse(cr, uid, ids, context):
- if field_name != 'avg_answers':
- state = field_name[5:]
- cr.execute("select count(*) from crm_lead where section_id =%s and state='%s'"%(case.section_id.id,state))
- state_cases = cr.fetchone()[0]
- perc_state = (state_cases / float(case.nbr_cases) ) * 100
-
- res[case.id] = perc_state
- else:
- cr.execute('select count(*) from crm_case_log l where l.section_id=%s'%(case.section_id.id))
- logs = cr.fetchone()[0]
-
- avg_ans = logs / case.nbr_cases
- res[case.id] = avg_ans
-
- return res
-
- _columns = {
- 'avg_answers': fields.function(_get_data,string='Avg. Answers', method=True,type="integer"),
- 'perc_done': fields.function(_get_data,string='%Done', method=True,type="float"),
- 'perc_cancel': fields.function(_get_data,string='%Cancel', method=True,type="float"),
- 'delay_close': fields.char('Delay to close', size=20, readonly=True),
- }
- _order = 'name desc, section_id'
- def init(self, cr):
- tools.drop_view_if_exists(cr, 'report_crm_lead_section')
- cr.execute("""
- create or replace view report_crm_lead_section as (
- select
- min(c.id) as id,
- to_char(c.create_date, 'YYYY') as name,
- to_char(c.create_date, 'MM') as month,
- count(*) as nbr_cases,
- c.section_id as section_id,
- 0 as avg_answers,
- 0.0 as perc_done,
- 0.0 as perc_cancel,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
- from
- crm_lead c
- group by to_char(c.create_date, 'YYYY'),to_char(c.create_date, 'MM'),c.section_id
- )""")
-report_crm_lead_section()
-
-class report_crm_lead_section_stage(osv.osv):
- _name = "report.crm.lead.section.stage"
- _description = "Leads by section and stage"
- _auto = False
- _inherit = "report.crm.case.section.stage"
- _columns = {
- 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'amount_revenue': fields.float('Est.Revenue', readonly=True),
- 'delay_close': fields.char('Delay Close', size=20, readonly=True),
- }
- _order = 'stage_id, section_id'
-
- def init(self, cr):
- tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_stage")
- cr.execute("""
- create view report_crm_lead_section_stage as (
- select
- min(c.id) as id,
- to_char(c.create_date,'YYYY') as name,
- to_char(c.create_date, 'MM') as month,
- c.user_id,
- c.state,
- c.stage_id,
- c.section_id,
- c.categ_id,
- count(*) as nbr,
- sum(planned_revenue) as amount_revenue,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
- from
- crm_lead c
- where c.stage_id is not null
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.categ_id, c.section_id)""")
-
-report_crm_lead_section_stage()
-
-class report_crm_lead_section_type(osv.osv):
- _name = "report.crm.lead.section.type"
- _inherit = "report.crm.case.section.type"
- _description = "Leads by section and type"
- _auto = False
- _columns = {
- 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'amount_revenue': fields.float('Est.Revenue', readonly=True),
- 'delay_close': fields.char('Delay Close', size=20, readonly=True),
}
- _order = 'type_id'
-
def init(self, cr):
- tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_type")
+ tools.drop_view_if_exists(cr, 'report_crm_lead')
cr.execute("""
- create view report_crm_lead_section_type as (
- select
- min(c.id) as id,
- to_char(c.create_date,'YYYY') as name,
- to_char(c.create_date, 'MM') as month,
- c.user_id,
- c.state,
- c.type_id,
- c.stage_id,
- c.section_id,
- count(*) as nbr,
- sum(planned_revenue) as amount_revenue,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
- from
- crm_lead c
- where c.type_id is not null
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""")
-
-report_crm_lead_section_type()
-
-class report_crm_lead_section_categ_stage(osv.osv):
- _name = "report.crm.lead.section.categ.stage"
- _inherit = "report.crm.case.section.categ.stage"
- _description = "Leads by Section, Category and Stage"
- _auto = False
- _columns = {
- 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'delay_close': fields.char('Delay Close', size=20, readonly=True),
- }
- _order = 'stage_id, categ_id'
-
- def init(self, cr):
- tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_stage")
- cr.execute("""
- create view report_crm_lead_section_categ_stage as (
- select
- min(c.id) as id,
- to_char(c.create_date,'YYYY') as name,
- to_char(c.create_date, 'MM') as month,
- c.user_id,
- c.categ_id,
- c.state,
- c.stage_id,
- c.section_id,
- count(*) as nbr,
- to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
- from
- crm_lead c
- where c.categ_id is not null AND c.stage_id is not null
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""")
-
-report_crm_lead_section_categ_stage()
-
-class report_crm_lead_section_categ_type(osv.osv):
- _name = "report.crm.lead.section.categ.type"
- _inherit = "report.crm.case.section.categ.type"
- _description = "Leads by Section, Category and Type"
- _auto = False
- _columns = {
- 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
- 'delay_close': fields.char('Delay Close', size=20, readonly=True),
- }
- _order = 'categ_id, type_id'
-
- def init(self, cr):
- tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_type")
- cr.execute("""
- create view report_crm_lead_section_categ_type as (
+ create or replace view report_crm_lead as (
select
min(c.id) as id,
to_char(c.create_date, 'YYYY') as name,
to_char(c.create_date, 'MM') as month,
- c.user_id,
- c.categ_id,
- c.type_id,
c.state,
+ c.user_id,
c.stage_id,
c.section_id,
count(*) as nbr,
to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
from
crm_lead c
- where c.categ_id is not null AND c.type_id is not null
- group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""")
+ group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state, c.user_id,c.section_id,c.stage_id
+ )""")
+report_crm_lead()
-report_crm_lead_section_categ_type()
+#class report_crm_lead_categ(osv.osv):
+# _name = "report.crm.lead.categ"
+# _description = "Leads by section and category"
+# _auto = False
+# _inherit = "report.crm.case.categ"
+# _columns = {
+# 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]"),
+# 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+# 'amount_costs': fields.float('Est.Cost', readonly=True),
+# 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True),
+# 'probability': fields.float('Avg. Probability', readonly=True),
+# 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+# }
+#
+# def init(self, cr):
+# tools.drop_view_if_exists(cr, 'report_crm_lead_categ')
+# cr.execute("""
+# create or replace view report_crm_lead_categ as (
+# select
+# min(c.id) as id,
+# to_char(c.create_date, 'YYYY') as name,
+# to_char(c.create_date, 'MM') as month,
+# c.categ_id,
+# c.state,
+# c.section_id,
+# count(*) as nbr,
+# sum(planned_revenue) as amount_revenue,
+# sum(planned_cost) as amount_costs,
+# sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob,
+# avg(probability)::decimal(16,2) as probability,
+# to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+# from
+# crm_lead c
+# group by c.categ_id,to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state,c.section_id
+# )""")
+#report_crm_lead_categ()
+#
+#class report_crm_lead_section(osv.osv):
+# _name = "report.crm.lead.section"
+# _description = "Leads by Section"
+# _auto = False
+# _inherit = "report.crm.case.section"
+#
+# def _get_data(self, cr, uid, ids, field_name, arg, context={}):
+# res = {}
+# state_perc = 0.0
+# avg_ans = 0.0
+#
+# for case in self.browse(cr, uid, ids, context):
+# if field_name != 'avg_answers':
+# state = field_name[5:]
+# cr.execute("select count(*) from crm_lead where section_id =%s and state='%s'"%(case.section_id.id,state))
+# state_cases = cr.fetchone()[0]
+# perc_state = (state_cases / float(case.nbr_cases) ) * 100
+#
+# res[case.id] = perc_state
+# else:
+# cr.execute('select count(*) from crm_case_log l where l.section_id=%s'%(case.section_id.id))
+# logs = cr.fetchone()[0]
+#
+# avg_ans = logs / case.nbr_cases
+# res[case.id] = avg_ans
+#
+# return res
+#
+# _columns = {
+# 'avg_answers': fields.function(_get_data,string='Avg. Answers', method=True,type="integer"),
+# 'perc_done': fields.function(_get_data,string='%Done', method=True,type="float"),
+# 'perc_cancel': fields.function(_get_data,string='%Cancel', method=True,type="float"),
+# 'delay_close': fields.char('Delay to close', size=20, readonly=True),
+# }
+# _order = 'name desc, section_id'
+# def init(self, cr):
+# tools.drop_view_if_exists(cr, 'report_crm_lead_section')
+# cr.execute("""
+# create or replace view report_crm_lead_section as (
+# select
+# min(c.id) as id,
+# to_char(c.create_date, 'YYYY') as name,
+# to_char(c.create_date, 'MM') as month,
+# count(*) as nbr_cases,
+# c.section_id as section_id,
+# 0 as avg_answers,
+# 0.0 as perc_done,
+# 0.0 as perc_cancel,
+# to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+# from
+# crm_lead c
+# group by to_char(c.create_date, 'YYYY'),to_char(c.create_date, 'MM'),c.section_id
+# )""")
+#report_crm_lead_section()
+#
+#class report_crm_lead_section_stage(osv.osv):
+# _name = "report.crm.lead.section.stage"
+# _description = "Leads by section and stage"
+# _auto = False
+# _inherit = "report.crm.case.section.stage"
+# _columns = {
+# 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+# 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+# }
+# _order = 'stage_id, section_id'
+#
+# def init(self, cr):
+# tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_stage")
+# cr.execute("""
+# create view report_crm_lead_section_stage as (
+# select
+# min(c.id) as id,
+# to_char(c.create_date,'YYYY') as name,
+# to_char(c.create_date, 'MM') as month,
+# c.user_id,
+# c.state,
+# c.stage_id,
+# c.section_id,
+# c.categ_id,
+# count(*) as nbr,
+# sum(planned_revenue) as amount_revenue,
+# to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+# from
+# crm_lead c
+# where c.stage_id is not null
+# group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.categ_id, c.section_id)""")
+#
+#report_crm_lead_section_stage()
+#
+#class report_crm_lead_section_type(osv.osv):
+# _name = "report.crm.lead.section.type"
+# _inherit = "report.crm.case.section.type"
+# _description = "Leads by section and type"
+# _auto = False
+# _columns = {
+# 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'amount_revenue': fields.float('Est.Revenue', readonly=True),
+# 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+# }
+# _order = 'type_id'
+#
+# def init(self, cr):
+# tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_type")
+# cr.execute("""
+# create view report_crm_lead_section_type as (
+# select
+# min(c.id) as id,
+# to_char(c.create_date,'YYYY') as name,
+# to_char(c.create_date, 'MM') as month,
+# c.user_id,
+# c.state,
+# c.type_id,
+# c.stage_id,
+# c.section_id,
+# count(*) as nbr,
+# sum(planned_revenue) as amount_revenue,
+# to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+# from
+# crm_lead c
+# where c.type_id is not null
+# group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.user_id, c.state, c.stage_id, c.type_id, c.section_id)""")
+#
+#report_crm_lead_section_type()
+#
+#class report_crm_lead_section_categ_stage(osv.osv):
+# _name = "report.crm.lead.section.categ.stage"
+# _inherit = "report.crm.case.section.categ.stage"
+# _description = "Leads by Section, Category and Stage"
+# _auto = False
+# _columns = {
+# 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+# }
+# _order = 'stage_id, categ_id'
+#
+# def init(self, cr):
+# tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_stage")
+# cr.execute("""
+# create view report_crm_lead_section_categ_stage as (
+# select
+# min(c.id) as id,
+# to_char(c.create_date,'YYYY') as name,
+# to_char(c.create_date, 'MM') as month,
+# c.user_id,
+# c.categ_id,
+# c.state,
+# c.stage_id,
+# c.section_id,
+# count(*) as nbr,
+# to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+# from
+# crm_lead c
+# where c.categ_id is not null AND c.stage_id is not null
+# group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.state, c.stage_id, c.section_id)""")
+#
+#report_crm_lead_section_categ_stage()
+#
+#class report_crm_lead_section_categ_type(osv.osv):
+# _name = "report.crm.lead.section.categ.type"
+# _inherit = "report.crm.case.section.categ.type"
+# _description = "Leads by Section, Category and Type"
+# _auto = False
+# _columns = {
+# 'categ_id':fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'type_id': fields.many2one('crm.case.resource.type', 'Lead Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'stage_id':fields.many2one('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.lead')]", readonly=True),
+# 'delay_close': fields.char('Delay Close', size=20, readonly=True),
+# }
+# _order = 'categ_id, type_id'
+#
+# def init(self, cr):
+# tools.sql.drop_view_if_exists(cr, "report_crm_lead_section_categ_type")
+# cr.execute("""
+# create view report_crm_lead_section_categ_type as (
+# select
+# min(c.id) as id,
+# to_char(c.create_date, 'YYYY') as name,
+# to_char(c.create_date, 'MM') as month,
+# c.user_id,
+# c.categ_id,
+# c.type_id,
+# c.state,
+# c.stage_id,
+# c.section_id,
+# count(*) as nbr,
+# to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
+# from
+# crm_lead c
+# where c.categ_id is not null AND c.type_id is not null
+# group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'),c.user_id, c.categ_id, c.type_id, c.state, c.stage_id, c.section_id)""")
+#
+#report_crm_lead_section_categ_type()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
diff --git a/addons/report_crm/report_crm_lead_view.xml b/addons/report_crm/report_crm_lead_view.xml
index 8dbec663dd2..429bff2b2d0 100644
--- a/addons/report_crm/report_crm_lead_view.xml
+++ b/addons/report_crm/report_crm_lead_view.xml
@@ -6,39 +6,34 @@
-->
- report.crm.lead.user.tree
- report.crm.lead.user
-
+ report.crm.lead.tree
+ report.crm.lead
tree
-
-
-
-
-
-
-
+
+
+
+
+
+
report.crm.lead.user.form
- report.crm.lead.user
+ report.crm.lead
form
-
-
-
-
+
report.crm.lead.user.graph
- report.crm.lead.user
+ report.crm.lead
graph
@@ -51,27 +46,38 @@
report.crm.lead.user.select
- report.crm.lead.user
+ report.crm.lead
search
-
-
+
+
+
-
+
+
Leads by User and Section
- report.crm.lead.user
+ report.crm.lead
form
- graph,tree
+ graph,tree,from
+
+
+
+ tree
+
+
+
+
+
-
-
+
+ Leads by Section
report.crm.lead.section.tree
@@ -189,7 +195,7 @@
-
+ Cases by section and stage
Leads Report - Sections and Stage(Tree)
report.crm.lead.section.stage
@@ -481,5 +487,6 @@
+ -->
diff --git a/addons/report_crm/report_crm_view.xml b/addons/report_crm/report_crm_view.xml
index 7b46928cb6b..49a46162db6 100644
--- a/addons/report_crm/report_crm_view.xml
+++ b/addons/report_crm/report_crm_view.xml
@@ -56,11 +56,13 @@
search
-
+
+
+
@@ -69,6 +71,15 @@
+
+
+
+
+
+
+
+
+